我们如何验证服务器端的Android应用内结算收据?

时间:2011-12-05 10:57:36

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

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

据我所知,到目前为止,Android Market将以广播接收器的形式向应用程序返回有关购买状态的回调。但由于我们在服务器上持久保存交易信息,我的应用程序必须发出一些http post请求并更新我的服务器。一些黑客手动模仿这个http发布请求的可能性非常高。如何从我的服务器代码验证Android市场收据信息?

我的服务器有Google Checkout回调吗?或者有没有办法验证http客户端提供的IAB响应是否正版,这只是在我的应用程序中完成的购买!

在Apple 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的东西吗?

3 个答案:

答案 0 :(得分:23)

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

原始答案(现已过时)

不推荐使用Google Checkout API。您现在应该使用Purchase Status API。

如果您打算使用Purchase Status API,上面的链接会提到这些限制:

  • 您可以使用API​​仅检查单个项目的状态 - 目前不支持批量订单状态请求。
  • 您可以查询2013年6月12日或之后下订单的详细信息,但不能查询之前下订单的详细信息。
  • 您可以查询使用应用内结算v3 API制作的任何商品类型的购买,或购买使用应用内结算v1和v2制作的托管商品。您无法使用Purchase Status API查询使用应用内结算v1或v2进行的非托管项目的购买。

答案 1 :(得分:3)

编辑:这个答案已经过时,请参阅Dan J的回答。

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

答案 2 :(得分:1)

这是一篇很老的帖子,但我希望能帮助别人。

有一种方法可以从服务器端验证购买,您必须使用此rest API。

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