Google Purchase Status API HTTPS请求

时间:2013-10-08 06:27:11

标签: api

我目前正在研究一种仅使用HTTP请求调用来使用Google Purchase Status API的方法,而且我已经遇到了障碍。我有一个使用Google Play的应用设置,以及Google控制台帐户的所有权。

基本上,我只想检查用户在我的服务器上购买的状态。我应该使用的唯一信息是购买令牌,产品ID和产品包。

我已在developer.android.com/google/play/billing/gp-purchase-status-api.html

上按照所有相关文档进行操作

我正在尝试进行的HTTPS请求调用(产品名称和实际字符串替换):

googleapis.com/androidpublisher/v1.1/applications/(com.product.myproduct)/应用程式内/(com.product.myproduct.product1)/购买/(myproductpurchasestring)?ACCESS_TOKEN =(myaccesstokenstring)

我的回答总是这样:

{
 "error": {
  "errors": [
   {
    "domain": "androidpublisher",
    "reason": "developerDoesNotOwnApplication",
    "message": "This developer account does not own the application."
   }
  ],
  "code": 401,
  "message": "This developer account does not own the application."
 }
}

通过此http请求调用轮询我的访问令牌时: googleapis.com/oauth2/v1/tokeninfo?access_token=(myaccesstokenstring)

这是我的回答:

{
 "issued_to": "12345.apps.googleusercontent.com",
 "audience": "12345.apps.googleusercontent.com",
 "scope": "https://www.googleapis.com/auth/androidpublisher",
 "expires_in": 3319,
 "access_type": "offline"
}

所以根据https://developers.google.com/accounts/docs/OAuth2#webserver的文档,我需要:

  1. 授权自己并检索由Google API控制台的API访问部分中的“网络应用程序的客户端ID”生成的可刷新访问令牌。我做到了。

  2. 以两种方式之一利用此访问令牌进行Google API调用:将字符串附加到HTTP标头“授权”,或者作为HTTPS请求本身的一部分,使用属性access_token =(mytokenstring)。这部分对我不起作用,我总是收到未经授权的消息。





  3. 我想我的问题是:是否可以使用简单的HTTPS请求调用(无需外部库支持)来检索所购买商品的状态,而无需在后端服务器上进行用户交互?

    我真的很感激任何帮助,大多数其他线程都是关于如何获得刷新令牌,但我已经涵盖了这一点。

1 个答案:

答案 0 :(得分:1)

好吧,我在同事的帮助下想出了自己的问题。基本上,我的访问令牌是在一个帐户下生成的,该帐户没有以任何方式链接到项目。在生成访问令牌时,最安全的方法是使用项目的Google帐户的所有者。

呼!