簡介
關(guān)于iOS蘋果內(nèi)購介紹相信大家已經(jīng)了解得非常清楚了润歉,本篇文章主要根據(jù)我開發(fā)iOS支付過程中遇到的真實(shí)漏單原因和如何解決(需要一定內(nèi)購支付經(jīng)驗(yàn))
Apple Pay容易造成漏單的原因
1,蘋果內(nèi)購與支付寶/微信最大的技術(shù)區(qū)別就是衔沼,蘋果用戶支付成功后需要主動上傳支付憑證到商戶后臺欲芹,再由商戶服務(wù)器后臺去蘋果后臺驗(yàn)證憑證的有效性卿啡。
這是由于這種機(jī)制,稍不留意菱父,就很容易造成漏單的情況颈娜。這個過程中不可控的因素太多了,比如:1浙宜,用戶iPhone網(wǎng)絡(luò)狀態(tài)不佳官辽。2,突然殺掉進(jìn)程APP粟瞬,雖然有補(bǔ)單的功能同仆,但也很容易處理不當(dāng)。3裙品,第一個訂單未結(jié)束便進(jìn)行第二個支付俗批,等等情況都很容易造成不可預(yù)料的bug。
2市怎,蘋果支付后臺會出現(xiàn)“卡單”的情況岁忘,就是明明用戶已經(jīng)付款成功了,但是iPhone遲遲收不到支付成功的憑證区匠,筆者親身經(jīng)歷過幾次這樣的情況干像,這種情況一般直接致電蘋果客服進(jìn)行退款或者其他處理,筆者暫時沒有了解更有效的辦法辱志。
3蝠筑,由于iPhone的服務(wù)器功能很多都位于美國,加上我們對外國網(wǎng)絡(luò)的一定健康過濾揩懒,所以一定程度上會不穩(wěn)定或者出錯。
以上3種情況是我總結(jié)出來的挽封,當(dāng)然還有很多其他的因素已球,總而言之,處理內(nèi)購代碼辅愿,一定要慎重智亮,畢竟關(guān)系到項(xiàng)目的營收。
分享筆者內(nèi)購開發(fā)過程中点待,出現(xiàn)過的問題阔蛉,希望能幫助更多人
正常的支付流程我就不說啦,說一說最容易也是最隱藏出現(xiàn)的bug
1癞埠,一個一個訂單操作
千萬不能讓用戶同時進(jìn)行多個支付訂單状原,不然及其容易造成支付結(jié)果的混亂聋呢,因此應(yīng)該使用一些MBProgress提示框架,不讓用戶誤操作颠区。
2削锰,一定要有補(bǔ)單功能
為了防止收到支付憑證并且傳到商戶服務(wù)器后臺過程的各種報(bào)錯,一定一定一定要將該憑證保存到本地iPhone客戶端中毕莱,并且在APP重啟的時候主動補(bǔ)單,擁有一定的重試機(jī)制,直到商戶服務(wù)器的驗(yàn)證成功后再將其刪除忘衍。
3位他,用戶殺掉App進(jìn)程
由于蘋果支付的網(wǎng)絡(luò)延遲等各種原因,用戶很容易終止殺掉App進(jìn)程部服,這個時候就應(yīng)該注意了稳摄,因?yàn)樵撐覀冮_發(fā)的時候往往喜歡將商家服務(wù)器后臺的用戶ID或者訂單編號僅保存在內(nèi)存中,所以如果在此過程中關(guān)閉App饲宿,再次打開App恰恰此時支付成功來了厦酬,但是卻找不到相應(yīng)的用戶ID或者訂單號了,此時就出現(xiàn)異常了瘫想。因此應(yīng)該將用戶ID或者訂單信息持久化保存在iPhone當(dāng)中仗阅。
如有說錯的地方,敬請指教国夜。