56 lines
2.4 KiB
Python
56 lines
2.4 KiB
Python
import requests
|
|
import argparse
|
|
url = "https://accounts.google.com/o/oauth2/token"
|
|
refresh_token = "1//0eiQ5XRXC4xXDCgYIARAAGA4SNwF-L9IrILsdLbWp3ZLLqCZepI5P5lCQBT4SWalnZjCdc5qvNtHHPlqKiPXqtAWr127UInVmtXY"
|
|
PACKAGE_NAME = "com.DefaultCompany.PetHomeMergeStory"
|
|
CLIENT_ID = "757279522891-nrfqc345ng13d92br5cd579e1k7f2jsj.apps.googleusercontent.com"
|
|
CLIENT_SECRET = "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"
|
|
|
|
def getAccessToken():
|
|
data = {
|
|
"grant_type": "refresh_token",
|
|
"refresh_token": refresh_token,
|
|
"client_id": CLIENT_ID,
|
|
"client_secret": CLIENT_SECRET
|
|
}
|
|
headers = {
|
|
"Accept-Encoding": "gzip, deflate, br",
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
"Accept": "*/*",
|
|
"User-Agent": "PostmanRuntime/7.26.8",
|
|
"Connection": "keep-alive"
|
|
}
|
|
|
|
# 创建一个请求对象
|
|
req = requests.Request("POST", url, data=data, headers=headers)
|
|
prepared = req.prepare()
|
|
# 发送请求
|
|
with requests.Session() as session:
|
|
response = session.send(prepared)
|
|
result = response.json()
|
|
return result.get("access_token")
|
|
|
|
def verify_order(product_id, token, access_token):
|
|
url = f"https://www.googleapis.com/androidpublisher/v3/applications/{PACKAGE_NAME}/purchases/products/{product_id}/tokens/{token}?access_token={access_token}"
|
|
|
|
# 发送 GET 请求
|
|
response = requests.get(url)
|
|
|
|
if response.status_code != 200:
|
|
print(f"url: {url}")
|
|
raise Exception(f"GetOrder err: {response.status_code} {response.text}")
|
|
|
|
# 解析 JSON 响应
|
|
order_info = response.json()
|
|
return order_info
|
|
|
|
parser = argparse.ArgumentParser(description="Verify Google Play order")
|
|
parser.add_argument("product_id", help="Product ID")
|
|
parser.add_argument("token", help="Purchase token")
|
|
# args = parser.parse_args()
|
|
accessToken = getAccessToken()
|
|
order = verify_order("diamond_001_1.99", "ipdmanofmimckinooopehnnm.AO-J1OyP6x7gWu-hzaGlGJAeWEQMoqPC0TgQDCXeqz6QGMy4J8ZlDgZllTqSuAIX6uWJJ9QHS5KYnY-4Y6dr6B3T_td7n9ohLqm26WxNw4oBS0dL3GSYKYM", accessToken)
|
|
print(order)
|
|
|
|
# python script/verifyOrder.py diamond_001_1.99 ipdmanofmimckinooopehnnm.AO-J1OyP6x7gWu-hzaGlGJAeWEQMoqPC0TgQDCXeqz6QGMy4J8ZlDgZllTqSuAIX6uWJJ9QHS5KYnY-4Y6dr6B3T_td7n9ohLqm26WxNw4oBS0dL3GSYKYM
|
|
# ./verifyOrder shopspecialtwonew_001_0.99 dipjdchagdecheahmfmmhoep.AO-J1Ozl2Fmx55383f8zimKDr2vsBpu-86KjOYzCa2KjBt10u-G2-S-L9SOG0aokMMfwpiVsFDkxx87nLIhVl4jQPKO7cISj5ZLjLlI11MFQP_w6QQ4tEqo |