溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于iap內(nèi)購的問題( 您已經(jīng)購買了此程序內(nèi)購買(In App Purchase)項目,但尚未下載)

發(fā)布時間:2020-06-26 17:24:46 來源:網(wǎng)絡 閱讀:2418 作者:yunsankai 欄目:移動開發(fā)

     在剛開始做內(nèi)購的時候,就聽我們老大說要處理好購買中斷問題,就是用戶已經(jīng)支付過錢但是你們的服務器沒有向蘋果服務器發(fā)送驗證,這個要是不處理好就可能上不了線的。

    當時也是對這個很頭疼,于是就問同學要了個教程,是himi的http://www.himigame.com/iphone-cocos2d/550.html,里面講得很清楚,但是里面還是沒有講到對消耗品的中斷處理問題,后來在測這個的時候,自己模擬中斷的情況,就老是顯示的是您已經(jīng)購買了此程序內(nèi)購買(In App Purchase)項目,但尚未下載問題,有的時候點擊過后還購買了兩次,后來在自己打斷點調(diào)試后發(fā)現(xiàn)了一個很重要的問題就是監(jiān)聽是何時執(zhí)行的。

      添加監(jiān)聽就是這行代碼SKPaymentQueue defaultQueue] addTransactionObserver:self,這行代碼很關鍵,我當時是在點擊購買的按鈕時進行執(zhí)行的這行代碼,點擊購買后從蘋果服務器將產(chǎn)品接收過來直接發(fā)送購買請求,如果這次購買中斷了,下一次再次點擊購買的時候會,再次發(fā)送購買請求,這個時候通常會顯示 “您已經(jīng)購買了此程序內(nèi)購買(In App Purchase)項目,但尚未下載” 這個錯誤。當我購買中斷后蘋果能檢測到這個未完成交易,但是他只返回了個錯誤然后什么也不做嗎?最后發(fā)現(xiàn),蘋果果然進行了處理,就是在添加監(jiān)聽后,蘋果發(fā)現(xiàn)如果有未完成的交易自己會馬上執(zhí)行paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions然后 transaction.transactionState = SKPaymentTransactionStatePurchased;

是一個交易完成時返回的結(jié)果,然后我又發(fā)起了一個購買請求,也就是為什么我模擬中斷后點擊購買會買了兩次的原因了。所以這個SKPaymentQueue defaultQueueaddTransactionObserver:self添加監(jiān)聽的代碼要在只要進入購買界面或者是剛進入應用程序的時候就要寫了

    我是在點擊購買后又發(fā)起了一個購買請求是完全錯誤的。這個只要知道監(jiān)聽是何時進行的和蘋果對中斷所做的處理內(nèi)購是很簡單的,但是我找了很長時間也沒有個教程很明白的,所以就自己研究的。以上都是我自己對蘋果iap內(nèi)購機制的理解,不知道是不是正確的,望大神們多指教。



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI