iOS 微信支付/支付寶支付不通過(guò)回調(diào)回到APP

可能標(biāo)題不是明確我在這里解一下,解決的辦法有很多 我只記錄一下我使用的方法:

問(wèn)題是 :

1)當(dāng)用戶支付完成以后 沒(méi)有通過(guò)點(diǎn)擊支付平臺(tái)的 “ ?返回商家?”??按鈕 返回到自己開(kāi)發(fā)的APP。

2)或者是說(shuō) 通過(guò)后臺(tái)直接打開(kāi)APP 。

3)或者點(diǎn)擊左上角的箭頭返回到自己的APP。

以上的情況 是無(wú)法監(jiān)聽(tīng)到第三方平臺(tái)的支付回調(diào)的!所以得想個(gè)辦法監(jiān)聽(tīng)!這個(gè)時(shí)候需要后臺(tái)來(lái)忙了!

1:讓后臺(tái)寫一個(gè)查詢支付狀態(tài)的接口!是通過(guò)訂單號(hào)查詢的,訂單號(hào) 是通過(guò)后臺(tái)生成并且返回的!

2:通過(guò)APP提供系統(tǒng)方法進(jìn)行監(jiān)聽(tīng)!具體如下:

????1)在發(fā)起支付的時(shí)候要先生成訂單號(hào),把這個(gè)訂單號(hào)保存在本地 (NSUserDefaults)調(diào)用?synchronize 保存在本地!

? ? 2)在 ??AppDelegate ? 文件里面監(jiān)聽(tīng) ??applicationWillEnterForeground (即將進(jìn)入前臺(tái))這個(gè)方法 發(fā)送一個(gè)通知,然后到支付頁(yè)面接受這個(gè)通知!

????3)一般來(lái)說(shuō) 都是按可以接受到支付回調(diào)的思路來(lái)判斷的,這個(gè)時(shí)候就需要在 支付回調(diào)的方法里面做支付成功的 ? ? ? ? ? ? ?????????????后續(xù)操作,有一點(diǎn)就是 在收到支付回調(diào)之后一定要把保存在本的訂單號(hào)置為空!

? ? 4)以上都完成之后 ,就到接受到回到前臺(tái)的通知了 ?我延遲了3秒 調(diào)用后臺(tái)的查詢訂單號(hào)的接口,并且是 當(dāng)本地的訂單號(hào)不為空的情況下去查詢的!這就是為什么上面要把訂單號(hào)置為空的原因了!如果是按正常邏輯走的!就不會(huì)去查詢訂單號(hào)的!

????5)還有一點(diǎn)就是 當(dāng)退出當(dāng)前控制器的時(shí)候,記得把通知移除掉,避免多次支付的時(shí)候,有多個(gè)通知!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容