gpt4 book ai didi

安卓 : inApp purchase receipt validation google play

转载 作者:IT老高 更新时间:2023-10-28 13:14:23 24 4
gpt4 key购买 nike

我正在使用谷歌钱包作为我的支付网关,在购买产品后谷歌给了我以下回复

{ 
"orderId":"12999763169054705758.1371079406387615",
"packageName":"com.example.app",
"productId":"exampleSku",
"purchaseTime":1345678900000,
"purchaseState":0,
"developerPayload":"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ",
"purchaseToken":"rojeslcdyyiapnqcynkjyyjh"
}

我正在尝试使用google play新引入的 收据验证。在Google Developer控制台中,我在权限中通过服务帐户制作了 证书 key 。但我很困惑如何在从 Google Play 商店购买产品后使用收据验证。

所以任何人都可以帮我如何做 InApp购买的 收据验证

最佳答案

Google 通过 Google Play Developer API 提供收据验证,API 中有两个您最感兴趣的端点:Purchases.products: getPurchases.subscriptions: get .
Purchases.products: get可用于验证非自动续订产品购买,其中 Purchases.subscriptions: get用于验证和重新验证自动续订产品订阅。

要使用任一端点,您必须知道 packageName , productId , purchaseToken所有这些都可以在您购买时收到的有效载荷中找到。您还需要一个 access_token您可以通过创建 Google API 服务帐户获得。

要开始使用服务帐户,请先访问 Google Play 开发者控制台 API access settings page并单击创建新项目按钮:

Create a new Google API Project

您现在应该会看到一个新的链接项目和几个新部分,在“服务帐户”部分中,单击“创建服务帐户”按钮。

Create a new Service Account

您将看到一个信息框,其中包含创建服务帐户的说明。单击指向 Google Developers Console 的链接,将生成一个新选项卡。

Open the Google Developers Console

现在单击 Create new Client ID,从选项中选择 Service account,然后单击 Create Client ID。

Create a new Client ID

将下载一个 JSON 文件,这是您用于交换 access_token 的 JSON Web token 所以保持安全。

接下来,将选项卡切换回 Google Play 开发者控制台,然后在信息框中单击完成。您应该会在列表中看到您的新服务帐户。单击服务帐户电子邮件旁边的授予访问权限。

Grant access

接下来在为该用户选择角色下,选择财务并单击添加用户。

Set the role to Finance

您现在已经设置了您的服务帐户,并且它具有执行收据验证所需的所有权限。接下来是将您的 JWT 交换为 access_token。
access_token交换一小时后过期,因此您需要一些服务器代码来处理此问题,Google 提供了多种语言的多个库来处理此问题(列表并不详尽):

  • ruby :https://github.com/google/google-api-ruby-client
  • Node.js:https://github.com/google/google-api-nodejs-client
  • java :https://github.com/google/google-api-java-client
  • python :https://github.com/google/google-api-python-client

  • 我不会详细介绍,因为有很多关于如何使用这些库的文档,但我会提到你想使用 https://www.googleapis.com/auth/androidpublisher作为 OAuth2 范围, client_email来自 JWT 的 issuer以及您可以从 private_key 获得的公钥和密码 notasecret将用于 signing_key .

    一旦您拥有 access_token你很高兴(至少在接下来的一个小时内,您将希望按照上一段中的相同过程请求一个新的)。

    要检查消耗品(非自动续订)购买的状态,请访问 http get请求: https://www.googleapis.com/androidpublisher/v2/applications/com.example.app/purchases/products/exampleSku/tokens/rojeslcdyyiapnqcynkjyyjh?access_token=your_access_token
    如果您收到 200 http 响应代码,则一切都按计划进行并且您的购买是有效的。 404 表示您的 token 无效,因此购买很可能是欺诈企图。 401 表示您的访问 token 无效,403 表示您的服务帐户访问权限不足,请检查您是否启用了 财务用于 Google Play 开发者控制台中的访问帐户。

    来自 200 的响应将类似于以下内容:
    {
    "kind": "androidpublisher#productPurchase",
    "purchaseTimeMillis": long,
    "purchaseState": integer,
    "consumptionState": integer,
    "developerPayload": string
    }

    有关每个属性的说明,请参阅 https://developers.google.com/android-publisher/api-ref/purchases/products .

    订阅类似,但端点如下所示:
    https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token?access_token=you_access_token
    响应应包含以下属性:
    {
    "kind": "androidpublisher#subscriptionPurchase",
    "startTimeMillis": long,
    "expiryTimeMillis": long,
    "autoRenewing": boolean
    }

    https://developers.google.com/android-publisher/api-ref/purchases/subscriptions对于属性描述并注意 startTimeMillisexpiryTimeMillis将根据订阅的持续时间进行更改。

    验证愉快!

    关于安卓 : inApp purchase receipt validation google play,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35127086/

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