5+api ios支付

1. 获取appleiap支付通道

var iap = null;  
plus.payment.getChannels(function(channels) {  
    for (var i in channels) {  
        var channel = channels[i];  
            // 获取 id 为 'appleiap' 的 channel  
            if (channel.id === 'appleiap') {  
                iap = channel;  
            }  
        }  
}, function(e) {  
    console.log("获取支付通道失败:" + e.message);  
});

2. 获取订单信息

// ids 为在苹果开发后台配置的应用内购项目的标识集合  
var ids = ['donation', 'donation6'];   
// iap 为刚刚获取的`appleiap`支付通道  
iap.requestOrder(ids, function(e) {  
    // 获取订单信息成功回调方法  
    console.log('requestOrder success: ' + JSON.stringify(e));  
}, function(e) {  
    // 获取订单信息失败回调方法  
    console.log('requestOrder failed: ' + JSON.stringify(e));  
});

3. 进行支付

plus.payment.request(iap, {  
    productid: id,  
    username: "appusername",  
    optimize: true  // 支付时设置 optimize: true  
}, function(result) {  
    // 支付成功,result 为 IAP商品交易信息对象 IAPTransaction 需将返回的支付凭证传给后端进行二次认证  
}, function(e) {  
    // 支付失败,需要调用一下 restoreComplateRequest 方法  
    restoreComplateRequest()  
});

4. 恢复购买方法(获取已购的非消耗性商品和订阅商品)

注意:如果用户在支付过程中退出了App,或其他情况造成的丢单的消耗类型商品在支付完成后,首次调用该接口可返回支付凭证

function restoreComplateRequest() {  
    iap.restoreComplateRequest({}, function(results) {  
        // results 格式为数组存放恢复的IAP商品交易信息对象 IAPTransaction,通用需将返回的支付凭证传给后端进行二次认证  
    });  
}

5. 在支付页面每次显示的时候调用 restoreComplateRequest()恢复购买方法确认是否有未完成或可恢复的订单

document.addEventListener('resume',function(){  
    restoreComplateRequest() // 在支付页面每次显示时调用 `restoreComplateRequest()`方法  
},false);

你可能感兴趣的:(ios)