与此相关的文档使这些几乎无关紧要的事情变得令人困惑和奇怪,同时却使实际上重要的文档几乎没有链接,而且很难找到。这在可以运行google api客户端库(包括Java,Python,.Net和NodeJS等)的最流行的服务器平台上应该能很好地工作。注意:我仅测试了Python api客户端,如下所示。
必要步骤:
通过Google Play控制台中的“ API访问”链接创建一个API项目
新建一个服务帐户,保存生成的JSON私钥。您需要将此文件带到服务器。
在Play控制台的服务帐户部分中按完成以刷新,然后授予对该服务帐户的访问权限
从https://developers.google.com/api-client-library获取适用于您的服务器平台的google api客户端库
使用特定平台的客户端库来构建服务接口,并直接读取购买验证的结果。
你不会需要授权范围打扰,使得定制请求调用,刷新访问令牌等的API客户端库完成所有的操作。这是一个验证订阅的python库用法示例:
首先,像这样在您的pipenv中安装google api客户端:
$ pipenv install google-api-python-client
然后,您可以使用私钥json文件设置api客户端凭据,以对服务帐户进行身份验证。
credentials = service_account.Credentials.from_service_account_file("service_account.json")
现在,您可以直接使用该库来验证订购购买或产品购买。
#Build the "service" interface to the API you want
service = googleapiclient.discovery.build("androidpublisher", "v3", credentials=credentials)
#Use the token your API got from the app to verify the purchase
result = service.purchases().subscriptions().get(packageName="your.app.package.id", subscriptionId="sku.name", token="token-from-app").execute()
#result is a python object that looks like this ->
# {'kind': 'androidpublisher#subscriptionPurchase', 'startTimeMillis': '1534326259450', 'expiryTimeMillis': '1534328356187', 'autoRenewing': False, 'priceCurrencyCode': 'INR', 'priceAmountMicros': '70000000', 'countryCode': 'IN', 'developerPayload': '', 'cancelReason': 1, 'orderId': 'GPA.1234-4567-1234-1234..5', 'purchaseType': 0}
Play开发人员API的平台服务接口的文档未以易于查找的方式链接在一起,因为有些链接很难找到。这是我发现的流行平台的链接:
Python | Java | .NET | PHP | NodeJS(Github TS) | 转到(Github JSON)