У меня возникла проблема с API разработчика Google Play для Android. Мне нужно проверить покупку приобретений управляемого продукта и типа подписки и предоставить доступ к контенту на сервере при проверке.Ошибка проверки покупки InApp Android с использованием API Google
Я использую 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/с/подписок/
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();
}
}
Вы можете опубликовать код, который вы используете для совершения этих вызовов? –