iOS 微信、支付寶H5支付返回APP趟過(guò)的坑

本文旨在提醒接入微信、支付寶支付后返回APP可能會(huì)出現(xiàn)的問(wèn)題, 至于如何接入, 可以百度, 網(wǎng)上的接入代碼大同小異, 基本上沒(méi)什么差別, 可以說(shuō)是從一個(gè)源碼復(fù)制粘貼出來(lái)的, 邏輯沒(méi)問(wèn)題, 問(wèn)題就在于寫(xiě)文章的人只復(fù)制粘貼發(fā)出來(lái)沒(méi)有驗(yàn)證過(guò), 如果運(yùn)氣好的話剛好會(huì)沒(méi)問(wèn)題

進(jìn)入主題

微信支付

基本原理是在webView里邊攔截微信支付請(qǐng)求, 在請(qǐng)求連接上增加redirect_url=xxx.com://

注意

這里有個(gè)坑, 基本上網(wǎng)上的所有文章在這里都會(huì)告訴你把自定義的schemes拼到xxx處, 運(yùn)氣好的話可能你就成功了
其實(shí)這里拼的不只是schemes, 簡(jiǎn)單的說(shuō)這里應(yīng)該是xxx.xxx.com://,頭一個(gè)xxx可能是你以前定義過(guò)得APPschemes, 后邊的xxx.com是公司注冊(cè)微信支付的一級(jí)域名(一級(jí)域名 例如xxx.abc.com), 如果你只拼了schemes, 就會(huì)一直報(bào)"商戶參數(shù)異常,請(qǐng)聯(lián)系商家", 此處必須有支付的域名在后邊, 這也是所有的文章走到這一步都是以.com結(jié)尾拼接url的原因
這樣就可以做到跳轉(zhuǎn)微信支付, 但是會(huì)在支付完成之后停留在微信界面, 什么原因

注意

這里是微信回跳的坑, 剛才是把schemes跟域名拼在一起形成的xxx.xxx.com, 這個(gè)時(shí)候支付沒(méi)問(wèn)題, 但是拼接后的url是無(wú)法從中截取到schemes的, 所以也就不會(huì)回跳到APP, 所以我們要做的就是把這個(gè)拼接了支付域名的url即xxx.xxx.com來(lái)替換以前自定義的schemes, 現(xiàn)在的schemes就變成了xxx.xxx.com, 然后這個(gè)時(shí)候再拼接url的時(shí)候就可以直接用schemes了, 不需要再拼接域名, 這也是所有文章在拼接是只是告訴你需要把schemes拼在這里, 然而你拼了也達(dá)不到想要效果的原因

微信支付結(jié)語(yǔ)

避免了上邊的坑的話, 剩下的支付返回后出現(xiàn)白屏或者支付參數(shù)問(wèn)題都是小問(wèn)題, 網(wǎng)上的文章中對(duì)于這些錯(cuò)誤的處理可以使用,都一樣

支付寶支付

支付寶支付原理, 主要是把支付URL中schemes默認(rèn)的參數(shù)"alipays"換成我們自己的schemes就可以了, 然后經(jīng)過(guò)edcoding和encoding的操作基本就沒(méi)什么問(wèn)題, 支付寶的支付總體來(lái)說(shuō)比微信好得多, 所以一般沒(méi)什么問(wèn)題, 網(wǎng)上的例子可以直接抄就行
這里我建議先做微信支付回跳, 因?yàn)檫@個(gè)時(shí)候原先定義的schemes已經(jīng)改變了, 再做支付寶的就可以直接用, 不會(huì)造成做完支付寶的以后做微信,會(huì)礙于schemes不想輕易改變的思想而耽誤時(shí)間(純屬個(gè)人建議)

請(qǐng)關(guān)注我的專(zhuān)題 iOS - Developer - OC 進(jìn)階大全

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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