0

問題: 頻繁彈出窗口要求在開發和生產模式(應用商店中的應用的實時版本)上登錄iTunes Store。 Popup每次在應用程序啓動時都會出現並要求密碼頻繁訪問,每次在應用程序啓動時會調用以下代碼以檢查訂閱狀態和特定訂閱頁面。頻繁彈出窗口要求以生產模式登錄iTunes Store

插件使用:https://github.com/AlexDisler/cordova-plugin-inapppurchase

代碼/重現步驟

在調用window.inAppPurchase.getReceipt()以base64字符串返回回執,然後驗證收到我打電話getlatestReceiptData()節點服務器上,在沙盒模式下調用'sandbox.itunes.apple.com/verifyReceipt',在生產模式下調用'buy.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); 
}); 

控制檯輸出

產品類型 - 訂閱

系統信息:

科爾多瓦CLI:6.5.0 離子CLI版本:2.2.3 離子應用Lib版本:2.2.1 ios-deploy版本:1.9.0 ios-s IM版本:5.0.12 OS:OS X埃爾卡皮坦 節點版本:7.0.0 的Xcode版本:Xcode的8.1生成版本8B62

回答

0

您使用SKReceiptRefreshRequest任何機會呢?這總是會觸發憑證檢查。

刷新收據向App Store詢問收據的最新副本。刷新收據不會創建任何新的交易。雖然你應該避免連續刷新多次,但這個動作與刷新一次只會產生相同的結果。

恢復購買會提示用戶的App Store憑據,這會中斷應用程序的流動:因此,不要自動恢復購買,尤其是在每次啓動應用程序時都不要自動恢復購買。

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html