此问题与Chrome Webstore Extension In App Purchase INTERNAL_SERVER_ERROR处的问题有关。我首先以评论的形式在那里发布我的问题,但收到的反馈是,这更适合作为一个单独的问题。
与OP一样,我使用的是buy.js,并遵循推荐的Chrome扩展程序中的应用内购买工作流程。但是我的结果有些不同:当我完成IAP购买对话框时,即使我买了IAP,我还是回到了PURCHASE_CANCELED。如果我然后通过api列出购买的SKU,它显示为已购买并处于活动状态。我还会从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;
TIA!