问题:经常出现在开发和生产模式(应用商店的实时版本(中登录iTunes商店的频繁弹出窗口。弹出窗口每次在应用程序启动开始并询问频繁的频率频率,以下代码每次在应用程序上开始调用以检查订阅状态和特定订阅页面。
使用的插件:https://github.com/alexdisler/cordova-plugin-inapppurchase
代码/复制步骤
在呼叫window.inapppurchase.getReceipt((返回基本64字符串中的收据,然后在节点服务器上验证我调用getLateStreceiptdata((的收据,调用'sandbox.itunes.apple.com/verifyReceipt'用于SANDBOX模式和'购买。iTunes.apple.com/verifyReceipt用于生产模式,然后比较购买以获取主动购买。
window.inAppPurchase.getReceipt().then(function (receipt) {
getlatestReceiptData(receipt).then(function(latest_purchase){
var timeStamp = Date.now();
if (purchase && purchase.expires_date_ms && purchase.expires_date_ms > timeStamp) {
purchased = true;
} else{
purchased = false;
}
});
}).catch(function (error) {
Utils.log(JSON.stringify(error), 'error');
deferred.reject(error);
});
控制台输出
产品类型 - 订阅
系统信息:
Cordova CLI:6.5.0离子CLI版本:2.2.3离子应用LIB版本:2.2.1ios-Deploy版本:1.9.0iOS-SIM版本:5.0.12OS:OS X El Capitan节点版本:v7.0.0Xcode版本:XCode 8.1构建版本8B62
您是否有机会使用SKReceiptRefreshRequest
?这总是会触发凭据检查。
刷新收据向App Store询问收据的最新副本。刷新收据不会创建任何新交易。尽管您应该连续避免多次刷新,但此操作的结果与一次刷新一次相同。
还原购买的提示,请提示用户的应用商店凭据,这打断了您的应用程序的流程:因此,请勿自动恢复购买,尤其是不是每次启动应用程序时。
> https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html