android - Cordova 插件购买。批准的事件不会触发
问题描述
我正在使用插件https://github.com/j3k0/cordova-plugin-purchase在应用程序中实现付费订阅。我检查了 Android 5.1.1 上的订阅工作。在我调用 store.refresh() 之后触发了更新事件。但在那之后,批准的事件不会触发。
这是我的代码
function subscriptionIsApproved(product) {
product.verify();
console.log("Is approved: " + JSON.stringify(product));
}
function subscriptionIsVerified(product){
product.finish();
console.log("Is verified: " + JSON.stringify(product));
}
function subscriptionIsUnverified(){
createErrorAlert(app,localDictionary[storage.getItem('language')].VERIFICATION_ERROR,null);
setNotSubscribeMode(app,$$);
console.log("Subscription is unverified");
}
function subscriptionIsUpdated(product){
if (!product.owned) {
store.order(product);
setNotSubscribeMode(app, $$);
}else
setSubscribeMode(app,$$);
console.log("Is updated: " + JSON.stringify(product));
}
function onDeviceReady() {
var sbType;//subscription type
if(Framework7.device.ios)
sbType = store.NON_RENEWING_SUBSCRIPTION;
else
sbType = store.PAID_SUBSCRIPTION;
store.register({
id: subscriptionId,
type: sbType
});
console.log("PRODUCT: " + JSON.stringify(store.get(subscriptionId)));
store.error(function(e){
console.log("ERROR " + e.code + ": " + e.message);
});
if(Framework7.device.ios)
store.validator = app_store_verification;
else if(Framework7.device.android)
store.validator = play_market_verification;
store.when(subscriptionId).approved(subscriptionIsApproved);
store.when(subscriptionId).verified(subscriptionIsVerified);
store.when(subscriptionId).unverified(subscriptionIsUnverified);
store.when(subscriptionId).updated(subscriptionIsUpdated);
store.when(subscriptionId).cancelled(function(product){console.log("Is cancelled: " +
JSON.stringify(product));});
}
//init purchase by button click
$$(document).on('click','#continueBtn',function(){
mainView.router.navigate('/confirmPhone/');
store.refresh();
});
它不起作用。在我按下按钮并调用 store.refresh() 后触发更新事件,在该事件中我调用 store.order(product) 方法,该方法应该以批准的事件结束,但这不起作用。我的代码有什么问题?
解决方案
我解决了这个问题。我添加了 cordova-plugin-purchase 插件,它是必要的 cc.fovea.cordova.purchase。现在批准的作品。但我仍然收到错误消息:您的订单正在处理中。该产品将在几分钟内上市
推荐阅读
- sql - 左连接到可能包含或不包含数据的表
- vaadin - 如何在 Vaadin Flow 中使用 ContextMenu 和网格?
- python - 如何在 Python 中检查 mysql 连接是否空闲?
- php - PDO::ATTR_EMULATE_PREPARES 破坏了一个简单的命令
- java - 如何通过 Selenium 和 Java 处理以下动态 ID?
- javascript - 清除空输入上的数据 - React.js
- python-asyncio - 使用 asyncio 和 aiofiles 异步生成平面文件不能正常工作
- javascript - 在 [innerhtml] 中使用 Angular(离子)绑定(单击)以提及 @ 或 Hashtags #
- jasper-reports - 如何使用 Jasper 库编译包含对 Web 服务数据适配器的引用的 Jasper jrxml 文件
- javascript - 单击我的图标时如何显示和隐藏我的内容