本人做內(nèi)購功能時遇到的坑,iOS內(nèi)購支付時,當前賬號如果未綁定任何支付方式,接下來會讓你添加付款方式。


添加完成付款方式后此訂單會支付完成,但是返回app后卻沒有成功交易,出現(xiàn)了漏單的情況,這是我之前的代碼:

也就是說用戶的錢花了但是買的東西不會到賬,最可惡的是這個問題無法調(diào)試,因為調(diào)試模式下支付用的全是沙盒賬號,不會出現(xiàn)未綁定付款方式這樣的情況,所以只能發(fā)布到appstore后才能驗證。最終發(fā)現(xiàn)問題:綁定完付款方式再返回app后此方法返回的狀態(tài)是failed,所以改為在狀態(tài)為failed的case下也向服務(wù)器校驗訂單(正常的支付失敗過程向服務(wù)器發(fā)送下校驗也不會出問題),最終代碼為:

箭頭標記的方法為:向服務(wù)器發(fā)送訂單校驗
最終等版本發(fā)布后,自己試驗了下果然沒問題了,當然這只是漏單處理的一種情況,還有別的漏單情況如果想更完善的話可以做本地的訂單緩存。