La extensión de Chrome en la compra de aplicaciones siempre devuelve PURCHASE_CANCELED, incluso si la compra funcionó

Esta pregunta está relacionada con la deExtensión de Chrome Webstore en la compra de aplicaciones INTERNAL_SERVER_ERROR. Primero publiqué mi pregunta allí en forma de un comentario, pero recibí comentarios de que esto era más apropiado como una pregunta separada.

Al igual que el OP, estoy usando buy.js y sigo el flujo de trabajo recomendado para compras en la aplicación en la extensión de Chrome. Pero mis resultados son algo diferentes: cuando completo el cuadro de diálogo de compra de IAP, obtengo un PURCHASE_CANCELED, aunque compré el IAP. Si luego enumero las SKU de compras a través de la API, aparece como comprado y activo. También recibo un recibo de la tienda Chrome.

¿Alguien sabe cómo comprar el IAP y recibir un mensaje de estado preciso?

Reuní una extensión de prueba y la marqué como gratuita con una compra en la aplicación de "sku1". Aquí está el código relevante. Toda la extensión está enhttps://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!

Respuestas a la pregunta(0)

Su respuesta a la pregunta