gpt4 book ai didi

python - 如何执行身份验证以验证 Google 应用内订阅

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:46 26 4
gpt4 key购买 nike

我想在服务器端验证来自 androidpublisher API 的用户订阅。我们在我们的应用程序中订阅了一个月的产品。我们遵循的循环如下

  • 用户将获得产品列表。如果他已订阅,他将获得完整的产品列表。否则他将只能获得免费产品。
  • 当用户订阅时,他会从 google 那里收到一张购买收据。该收据将保存在我们的数据库中。每当用户需要产品列表时,都会从 Google API 验证该收据。如果有效,他将得到完整的结果。否则部分。

Google 为此提供了以下 API。

GET https://www.googleapis.com/androidpublisher/v2/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}

此 API 需要授权。我为此尝试了以下代码

receipt_json = json.loads(subscription_object.receipt)
service = build(serviceName='androidpublisher', version='v2', developerKey='key')
response = service.purchases().subscriptions().get(
packageName=receipt_json.get('packageName'),
subscriptionId=receipt_json.get('productId'),
token=receipt_json.get('purchaseToken'))

但我得到的回应低于

{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}

请指导我如何在验证收据之前进行授权。重要的一点,我想在服务器端验证收据。不是客户端。因此,用户不会看到或点击任何链接来授权此请求。

最佳答案

看起来您实际上并没有发送任何身份验证 key / token 。您可以尝试使用 OAuth2 凭据(访问 token 或刷新 token )进行身份验证:

import httplib2
from googleapiclient.discovery import build
from oauth2client.client import OAuth2Credentials

credentials = OAuth2Credentials(...)
http = credentials.authorize(http=httplib2.Http())

service = build(serviceName='androidpublisher', version='v2', http=http)

关于python - 如何执行身份验证以验证 Google 应用内订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com