【问题标题】:How do we verify Android in-app billing receipt on the server side?我们如何在服务器端验证 Android 应用内计费收据?
【发布时间】:2012-01-13 03:07:42
【问题描述】:

我正在为一款 Android 游戏实施应用内结算,我们希望使用服务器来存储购买信息。

据我目前了解,Android Market会以Broadcast receiver的形式向app返回一个关于购买状态的回调。但是由于我们在服务器上保存交易信息,我的应用程序必须发出一些 http post 请求并更新我的服务器。这个http post请求很有可能被黑客手动模仿。如何通过我的服务器代码验证 Android 市场收据信息?

我的服务器是否有任何可用的 Google 结帐回调?或者有没有办法验证 http 客户端提供的 IAB 响应是真实的,并且它只是在我的应用中完成的购买!

关于苹果IOS IAP流程,they have a validate web API@https://sandbox.itunes.apple.com/verifyReceipt我们可以通过

req.method = URLRequestMethod.POST;
req.data = "{\"receipt-data\" : \""+ t.receipt +"\"}";

它会说明收据是否正确。我们有适用于 Android 的类似功能吗?

【问题讨论】:

    标签: android in-app-purchase google-checkout in-app-billing


    【解决方案1】:

    这是一个旧帖子,但我希望对其他人有所帮助。

    有一种方法可以从服务器端验证购买,你必须使用这个 REST API。

    https://developers.google.com/android-publisher/api-ref/purchases/products/get

    【讨论】:

      【解决方案2】:

      更新:您可以使用getPurchases() 方法来检索“未消费”的购买,如开发者文档中所述:
      http://developer.android.com/google/play/billing/billing_reference.html#getPurchases

      原始答案(现已过时)

      Google Checkout API 已弃用。您现在应该使用购买状态 API。

      如果您打算使用购买状态 API,上面的链接提到了这些限制:

      • 您可以使用 API 仅检查单个商品的状态 - 目前不支持批量请求订单状态。
      • 您可以查询2013年6月12日及之后的订单详情,但不能查询之前的订单。
      • 您可以查询使用 In-app Billing v3 API 进行的任何项目类型的购买,或使用 In-app Billing v1 和 v2 进行的托管项目的购买。您不能使用 Purchase Status API 来查询使用 In-app Billing v1 或 v2 购买的非托管商品。

      【讨论】:

      【解决方案3】:

      编辑:此答案已过时,请参阅 Dan J 的答案。

      没有回调,但 Google Checkout 有一个 API。你的答案是here

      【讨论】:

      • 这个答案已经过时了,Dan J 是对的。愿 OP 接受那个。
      猜你喜欢
      • 2015-01-12
      • 2012-08-12
      • 2019-09-23
      • 2013-01-04
      • 1970-01-01
      • 2023-04-04
      • 2019-03-21
      • 2018-11-30
      • 1970-01-01
      相关资源
      最近更新 更多