談談iOS接入微信支付遇到的小坑

weixin_33751566發表於2016-04-13

前言

前幾天給我們的app接入微信支付,因為在很久之前我就已經瞭解到我們的app有這方面的需求,因此我早就預習了微信支付的官方文件,自以為成足在胸,躍躍欲試,最後才發現我還是too young too simple!!!以下是我接入的坎坷過程......


過程

因為專案原來就已經有微信分享以及微信登入的功能,所以官網裡以下2個步驟(圖片截於官網)我是直接跳過

1754605-dcb208b34f911dd2.png
1754605-a0f6b464aef6486f.png

於是我直接寫程式碼進入發起支付請求階段

官網上的程式碼如下:

1754605-58a9993b25c2a54c.png

將以上程式碼照葫蘆畫瓢移植到我的app後(資料由我們後臺提供),然後我就充滿憧憬地執行程式,調起微信支付,頓時我就傻眼了!!!一點反應也沒有!!!當時的我還天真無邪地崇尚著官網上的程式碼,開始質疑起自己來,是不是我之前的步驟沒做到位...於是我仔細地核查了好幾遍整合步驟,還是不行!當然在這個過程中我也Google(自從被某度坑過......此處省略萬字)出了好幾篇關於微信支付的坑的博文,以及各位前人大賢們對官方文件的吐槽...當時搜出以下原因:

1.appid錯誤(由於之前已經完成了微信登入和微信分享的功能,排除);

2.第三方分享的SDK整合了微信的SDK,呼叫微信支付時呼叫了第三方分享框架裡的微信SDK接微信支付時,無法開啟微信app,7樓的解答(排除)

當時幾乎是搜遍都找不到原因,直到我看到一篇博文(額,網址忘記了),裡面提到支付請求有兩個方法,其中一個方法不行就試試另一個

1754605-d9f5ce89dfea7011.png

於是我抱著試試的心態把sendReq換成了safeSendReq,曙光就這樣降臨(同時心中萬隻草泥馬奔騰有沒有)......

還有如果想在不同位置響應不同操作(如微信登入,支付,分享)的回撥方法可以在這裡設定

1754605-bd89a2c878b768f3.png

如上我是設定了登入和支付在自己寫的WXApiTool響應回撥,而分享是在DWZShareKit這個框架響應回撥。

另外,在搜尋的過程中發現大家遇到比較多的問題是可呼叫微信支付,但是進入的頁面空白或者只有確定按鈕,這種情況一般是發起支付請求的引數有誤,可參考微信支付的小坑 - Kinoの技術部落格 以及iOS微信支付的那些坑 - 簡書 ,我的引數都是由後臺提供,把上述的坑填好後就直接通過了(後臺也是挺給力的哈)。


總結

這次給了我一個啟發:不要盲目相信官方文件的程式碼(哪怕是某信這樣的大公司),遇到問題多Google(又讓我想起某度給我留下的陰影...),看看前人的答案,最後送上我的座右銘:學習之路,與君共勉。

相關文章