“您请求的项目无法购买”我的离子安卓应用中出错

时间:2016-08-24 11:12:07

标签: android cordova ionic-framework in-app-purchase

我正在尝试将应用内购买与(cordova插件添加cordova-plugin-inapppurchase)整合到我的应用中,但遗憾的是遇到了这个恼人的错误“您请求的项目无法购买”。 我做了这一切:

1.Apk已签名并发布,在开发者控制台上的相同版本和设备上的设备帐户上的内容与开发者控制台上列出的测试相同,并且与我的不同。

2.Product在开发者控制台上处于活动状态。

但仍显示无法购买。

2 个答案:

答案 0 :(得分:0)

  

*****添加Android结算密钥***

应将您的应用内结算的许可密钥手动添加到您的项目中。此密钥位于Google Play开发者控制台的服务和API中。

许可证密钥在安装期间设置:

cordova plugin add cc.fovea.cordova.purchase --variable BILLING_KEY="MIIB...AQAB"

Replace MIIB...AQAB with your own android license key.

要更改它,请删除插件并使用新密钥将其添加回来。**

  

在Android上创建新产品

从开发者控制台添加应用内购买商品 激活它们 无需发布应用程序。 购买类型:

对于消费品,非消费品和非续订订阅选择" managed"。 对于免费和付费订阅,请选择"订阅"。

答案 1 :(得分:0)

这是控制器正确获取商品详情价格,但是当我购买任何商品时,它会给出错误(您要求的商品无法购买)

var productIds = ['com.ionicframework。**** 7.productone','com.ionicframework。*** 7.producttwo']; //   var spinner ='
';

$ scope.loadProducts = function(){     $ ionicLoading.show({template:spinner +'Loading Products ...'});     在应用程序内购买       .getProducts(productIds)       .then(function(products){         $ ionicLoading.hide();         $ scope.products = products;       })       .catch(function(err){         $ ionicLoading.hide();         的console.log(ERR);       });   };

$ scope.buy = function(productId){

$ionicLoading.show({ template: spinner + 'Purchasing...' });
inAppPurchase
  .buy(productId)
  .then(function (data) {
    console.log(JSON.stringify(data));
    console.log('consuming transactionId: ' + data.transactionId);
    return inAppPurchase.consume(data.type, data.receipt, data.signature);
  })
  .then(function () {
    var alertPopup = $ionicPopup.alert({
      title: 'Purchase was successful!',
      template: 'Check your console log for the transaction data'
    });
    alert('consume done!');
    $ionicLoading.hide();
  })
  .catch(function (err) {
    $ionicLoading.hide();
 [enter image description here][1]
    $ionicPopup.alert({
      title: 'Something went wrong',
      template: JSON.stringify(err)
    });
  });

};

$ scope.restore = function(){     $ ionicLoading.show({template:spinner +'恢复购买......'});     在应用程序内购买       。恢复购买()       .then(function(purchases){         $ ionicLoading.hide();

    $ionicPopup.alert({
      title: 'Restore was successful!',
      template: 'Check your console log for the restored purchases data'
    });
  })
  .catch(function (err) {
    $ionicLoading.hide();
    $ionicPopup.alert({
      title: 'Something went wrong',
      template: JSON.stringify(err)
    });
  });

};