【问题标题】:in-app purchase Object {message: "Billing is not initialized", code: -3, errorCode: -3}in-app purchase Object {message: "Billing is not initialized", code: -3, errorCode: -3}
【发布时间】:2016-08-24 13:52:02
【问题描述】:
我正在使用应用内购买插件“cordova-plugin-inapppurchase”(https://github.com/AlexDisler/cordova-plugin-inapppurchase) 开发离子流星。
当我请求 'inAppPurchase.buy(productId)' 时,我收到一个错误“Object {message: "Billing is not initialized", code: -3, errorCode: -3}"
我的代码是:
inAppPurchase
.buy('com.myapp.prod1')
.then(function (data) {
console.log(data);
})
.catch(function (err) {
console.log(err);
});
【问题讨论】:
标签:
in-app-purchase
cordova-plugins
in-app-billing
【解决方案1】:
Ionic Information
对于 ios,这很简单,但对于 android,您需要转到 Google playstore、开发工具、服务和 api,然后复制 base 64 许可密钥。
在 ionic 项目的 src 目录中创建一个名为 manifest.json 的文件,然后按以下格式在文件中添加密钥。
{ "play_store_key": "<Base64-encoded public key from the Google Play Store>" }
通过将路径添加到项目根文件夹中的 angular.json 文件的路径,将文件添加到 ionic 项目的 www 文件夹,如下所示。
Sample of angular.json file
在购买或订阅前调用 getproducts 方法初始化商店。
inAppPurchase
.getProducts([
'product.id'
])
.then(function (products) {
$log.debug(products);
})
.catch(function (err) {
$log.error(err);
});
按照此处 (https://github.com/AlexDisler/cordova-plugin-inapppurchase) 的其余说明进行操作,它应该可以完美运行。谢谢。
【解决方案2】:
遇到同样的错误,但我可以看到这样做有帮助:
inAppPurchase
.getProducts([
'product.id'
])
.then(function (products) {
$log.debug(products);
})
.catch(function (err) {
$log.error(err);
});
即使您从 dbs 获取产品。
【解决方案3】:
在我先调用“恢复购买”后,错误(未初始化计费)消息消失了。
我现在可以看到 Google Play“购买”弹出屏幕。