即使购买有效,应用购买中的Chrome扩展程序也会返回PURCHASE_CANCELED

时间:2016-06-06 22:28:28

标签: javascript google-chrome google-chrome-extension google-chrome-app chrome-web-store

此问题与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!

0 个答案:

没有答案