Расширение Chrome при покупке приложения всегда возвращает PURCHASE_CANCELED, даже если покупка сработала
Этот вопрос связан с вопросом наРасширение интернет-магазина Chrome при покупке приложения INTERNAL_SERVER_ERROR, Сначала я разместил там свой вопрос в форме комментария, но получил ответ, что это более уместно в качестве отдельного вопроса.
Как и OP, я использую buy.js и придерживаюсь рекомендуемого рабочего процесса для покупок в приложении в расширении Chrome. Но мои результаты несколько иные: когда я завершаю диалог покупки IAP, я получаю PURCHASE_CANCELED, даже если я купил IAP. Если я затем перечисляю SKU покупок через API, он обнаруживается как купленный и активный. Я также получаю квитанцию из магазина Chrome.
Кто-нибудь знает, как сделать покупку IAP и получить точное сообщение о статусе обратно?
Я собрал тестовое расширение и отметил его как бесплатное, купив в приложении «sku1». Вот соответствующий код. Все расширение наhttps://github.com/so-codemonkey/testIAP/tree/master.
var testiap = (function() {
return {
onload: function () {
var logResults = function( results ) {
var str = 'Result: ' + JSON.stringify(results);
console.log(str);
$('<p>' + str + '</p>').appendTo('#log');
};
$(document).on("click","#getskus", function() {
var str = "getting skus";
console.log(str);
$('<p>' + str + '</p>').appendTo('#log');
google.payments.inapp.getSkuDetails({
'parameters': {'env': 'prod'},
'success': logResults,
'failure': logResults
});
});
$(document).on("click","#buysku1", function() {
var str = "buying sku1";
console.log(str);
$('<p>' + str + '</p>').appendTo('#log');
google.payments.inapp.buy({
'parameters': {'env': 'prod'},
'sku': 'sku1',
'success': logResults,
'failure': logResults
});
});
$(document).on("click","#getpurchases", function() {
var str = "getting purchased skus";
console.log(str);
$('<p>' + str + '</p>').appendTo('#log');
google.payments.inapp.getPurchases({
'parameters': {'env': 'prod'},
'success': logResults,
'failure': logResults
});
});
$(document).on("click","#consumesku1", function() {
var str = "consuming sku1";
console.log(str);
$('<p>' + str + '</p>').appendTo('#log');
google.payments.inapp.consumePurchase({
'parameters': {'env': 'prod'},
'sku': 'sku1',
'success': logResults,
'failure': logResults
});
});
}
}
})();
window.onload = testiap.onload;
ТИА!