【发布时间】:2020-03-19 09:55:36
【问题描述】:
我正在尝试使用 https://www.npmjs.com/package/react-native-iap/v/4.0.8 在 iOS 上恢复和检测自动续订订阅的结束 通过调用 getAvailablePurchases(),我每次调用此函数时都会获得不同数量的购买(例如 7,下一次是 23,然后是 4..)。这对我来说毫无意义。我知道订阅会在每月订阅的任何 5 分钟内续订。 我的想法是获得最新的购买,只需检查收据中的过期日期即可。 (目前我正在解析所有这些,这不是最佳实践)。另一件事是,即使只有一个活动,我也检测到具有不同 transactionReceipts 的多个活动购买。
RNIap.getAvailablePurchases().then((purchases) => {
if(purchases != undefined && purchases.length > 0){
alert(purchases.length + ' purchases');
purchases.forEach((purchase) => {
const receiptBody = {
'receipt-data': purchase.transactionReceipt,
'password': appSubscriptionId
};
RNIap.validateReceiptIos(receiptBody, true).then((result) => { // false for production
let from, to, lastRenewal = '';
if(result.status == 0){ // 0 means receipt is correct..
result.latest_receipt_info.forEach((info) => {
if(this.dateIsInFuture(info.expires_date)){
to = moment.utc(info.expires_date, "YYYY-MM-DD HH:mm:ss").toString();
from = moment.utc(info.original_purchase_date, "YYYY-MM-DD HH:mm:ss").toString();
lastRenewal = moment.utc(info.purchase_date, "YYYY-MM-DD HH:mm:ss").toString();
this.setState({ premium: true, from: from, to: to, lastRenewal: lastRenewal});
}else{
alert('nicht aktiv');
}
});
}
});
});
}else{
alert('No purchases found');
}
});
【问题讨论】:
-
你能解决这个问题吗?
-
你解决了吗?
标签: ios react-native in-app-purchase react-native-ios in-app-subscription