Android InApp购买验证无法使用Google API

时间:2014-01-13 00:29:31

标签: android api in-app-purchase subscription

我对Google Play Android Developer API有疑问。 我需要验证购买托管产品和订阅类型购买,并在验证时授予对服务器上内容的访问权限。

我使用Oauth生成一个access_token来授权API调用。 我使用androidpublisher.purchases.get来验证订阅类型购买,这可以按预期工作。

然而,我使用androidpublisher.inapppurchases.get验证购买我返回了一个无用的错误

{
"error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Value"
   }
  ],
  "code": 400,
  "message": "Invalid Value"
 }
}

两个API调用都使用收据中的相同值 - packageName,productID,purchaseToken并使用相同的access_token。

我很难过 - 任何帮助都会受到赞赏。

编辑1。 这是inapp代码。 与工作订阅验证的唯一区别是替换/ inapp / with / subscriptions /

string restAPI = "https://www.googleapis.com/androidpublisher/v1.1/applications/{0}/inapp/{1}/purchases/{2}";
            string url = String.Format(restAPI, APP_PACKAGE, SUBSCRIPTION_ID, PURCHASE_TOKEN);
            string postcontents = string.Format("access_token={0}", HttpUtility.UrlEncode(AUTH_TOKEN));
            string responseFromServer = "";
            url += "?" + postcontents;

            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.Method = "GET";
            request.UserAgent = "RVGP";
            WebResponse response = request.GetResponse();
            using (Stream responseStream = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    responseFromServer = reader.ReadToEnd();
                    reader.Close();
                    responseStream.Close();
                    response.Close();
                }
            }

1 个答案:

答案 0 :(得分:1)

很多用户遇到了同样的问题,似乎有一个错误

https://groups.google.com/forum/#!topic/google-apis-explorer-users/sJ5glcRva_s