Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何在服务器端验证Android应用内账单收据?_Android_In App Purchase_Google Checkout_In App Billing - Fatal编程技术网

我们如何在服务器端验证Android应用内账单收据?

我们如何在服务器端验证Android应用内账单收据?,android,in-app-purchase,google-checkout,in-app-billing,Android,In App Purchase,Google Checkout,In App Billing,我正在Android游戏中实现应用内计费,我们希望使用服务器来存储购买信息 据我目前了解,Android Market将以广播接收器的形式向应用程序返回关于购买状态的回调。但是由于我们在服务器上持久化事务信息,我的应用程序必须发出一些http post请求并更新我的服务器。这个http post请求很有可能被某些黑客手动模仿。如何从我的服务器代码验证Android market收据信息 我的服务器是否有Google checkout回调?或者有没有办法验证http客户端提供的IAB响应是真实的,

我正在Android游戏中实现应用内计费,我们希望使用服务器来存储购买信息

据我目前了解,Android Market将以广播接收器的形式向应用程序返回关于购买状态的回调。但是由于我们在服务器上持久化事务信息,我的应用程序必须发出一些http post请求并更新我的服务器。这个http post请求很有可能被某些黑客手动模仿。如何从我的服务器代码验证Android market收据信息

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

在苹果IOS IAP进程中,@我们可以通过

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

上面写着收据是否正确。对于Android,我们有类似的东西吗?

编辑:这个答案已经过时了,请参见Dan J的答案


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

更新:您可以使用
getPurchases()
方法检索“未消费”的购买,如开发人员文档中所述:

原始答案(现已过时)

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

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

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

    • 这是一篇老文章,但我希望能帮助别人

      有一种方法可以验证服务器端的购买,您必须使用这个RESTAPI


      这个答案已经过时了,Dan J是对的。希望OP能接受这一点。链接不存在了,它只是重定向到“谢谢”,我已经更新了答案,希望它能更新一点。