【发布时间】:2014-01-31 15:52:31
【问题描述】:
我对 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/ 替换为 /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();
}
}
【问题讨论】:
-
你能发布你用来进行这些调用的代码吗?
标签: android api in-app-purchase subscription