首页 > 解决方案 > 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) 方法,该方法应该以批准的事件结束,但这不起作用。我的代码有什么问题?

标签: androidcordovasubscription

解决方案


我解决了这个问题。我添加了 cordova-plugin-purchase 插件,它是必要的 cc.fovea.cordova.purchase。现在批准的作品。但我仍然收到错误消息:您的订单正在处理中。该产品将在几分钟内上市


推荐阅读