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

Gop*_*ath 30 android google-checkout in-app-purchase in-app-billing

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

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

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

在Apple IOS IAP流程中,他们有一个验证Web API @ https://sandbox.itunes.apple.com/verifyReceipt,我们可以通过

req.method = URLRequestMethod.POST;
req.data = "{\"receipt-data\" : \""+ t.receipt +"\"}";
Run Code Online (Sandbox Code Playgroud)

它说收据是否合适.我们有类似Android的东西吗?

Dan*_*n J 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进行的非托管项目的购买.