Мне удалось запустить сервер и подтвердить свою учетную запись службы с помощью google apis.
Я читаю эту ссылку: Проверка покупок перед предоставлением прав
Согласно ссылке, я должен сравнить свой PurchaseToken к предыдущим токенам покупки, которые хранились в моей собственной базе данных.
Однако я вижу, что ответ сервера содержит поля AcknowledgementState и ConsumptionState.
< Strong>Я планирую использовать эти два поля для подтверждения покупки. На стороне клиента (приложение для телефона Android) я планирую использовать следующую логику:
Код: Выделить всё
boolean isAcknowledged=false;
boolean hasBeenConsumed=false;
if(acknowledgementstate == 1){
//means Google servers acknowledged the purchase.. so is not a fraud purchaseToken
isAcknowledged=true; }
if(consumptionState != 0){
//according to google api docs.. 0 = yet to be consumed purchase; 1 = consumed(it was
//granted already)
hasBeenConsumed=true;
}
Я могу просто сделать это:< /p>
Код: Выделить всё
if(isAcknowled && consumptionState == 0){
//I should have a legitimate purchaseToken that has been verified by google servers and the
//the purchase has not been consumed!
//I should consume the purchase right in here! How can I use the Google Apis to consume my purchase in my backend server ????
}else{
//something is wrong: it can be a duplicated purchaseToken or some other type of fraud!
}
Ответ моего сервера:
{"acknowledgementState":1 ,"consumptionState":1,"developerPayload":"","kind":"androidpublisher#productPurchase","obfuscatedExternalAccountId":null,"obfuscatedExternalProfileId":null,"orderId":"некоторые # не могу показать","productId" :null,"purchaseState":0,"purchaseTimeMillis":"1718701365611","purchaseToken":null,"purchaseType":0,"quantity":null,"regionCode":"US"
Подробнее здесь: https://stackoverflow.com/questions/786 ... e-and-cons