前言
前幾天給我們的app接入微信支付曹洽,因為在很久之前我就已經(jīng)了解到我們的app有這方面的需求,因此我早就預(yù)習(xí)了微信支付的官方文檔识补,自以為成足在胸酪穿,躍躍欲試凳干,最后才發(fā)現(xiàn)我還是too young too simple!1患谩救赐!以下是我接入的坎坷過程......
過程
因為項目原來就已經(jīng)有微信分享以及微信登錄的功能,所以官網(wǎng)里以下2個步驟(圖片截于官網(wǎng))我是直接跳過
于是我直接寫代碼進入發(fā)起支付請求階段
官網(wǎng)上的代碼如下:
將以上代碼照葫蘆畫瓢移植到我的app后(數(shù)據(jù)由我們后臺提供)只磷,然后我就充滿憧憬地運行程序经磅,調(diào)起微信支付,頓時我就傻眼了Eプ贰Tぱ帷!一點反應(yīng)也沒有T摹T础苗沧!當(dāng)時的我還天真無邪地崇尚著官網(wǎng)上的代碼,開始質(zhì)疑起自己來犹芹,是不是我之前的步驟沒做到位...于是我仔細(xì)地核查了好幾遍集成步驟崎页,還是不行鞠绰!當(dāng)然在這個過程中我也Google(自從被某度坑過......此處省略萬字)出了好幾篇關(guān)于微信支付的坑的博文腰埂,以及各位前人大賢們對官方文檔的吐槽...當(dāng)時搜出以下原因:
1.appid錯誤(由于之前已經(jīng)完成了微信登錄和微信分享的功能,排除)蜈膨;
2.第三方分享的SDK集成了微信的SDK屿笼,調(diào)用微信支付時調(diào)用了第三方分享框架里的微信SDK接微信支付時,無法打開微信app翁巍,7樓的解答(排除)
當(dāng)時幾乎是搜遍都找不到原因驴一,直到我看到一篇博文(額,網(wǎng)址忘記了)灶壶,里面提到支付請求有兩個方法肝断,其中一個方法不行就試試另一個
于是我抱著試試的心態(tài)把sendReq換成了safeSendReq,曙光就這樣降臨(同時心中萬只草泥馬奔騰有沒有)......
還有如果想在不同位置響應(yīng)不同操作(如微信登錄驰凛,支付胸懈,分享)的回調(diào)方法可以在這里設(shè)置
如上我是設(shè)置了登錄和支付在自己寫的WXApiTool響應(yīng)回調(diào),而分享是在DWZShareKit這個框架響應(yīng)回調(diào)恰响。
另外趣钱,在搜索的過程中發(fā)現(xiàn)大家遇到比較多的問題是可調(diào)用微信支付,但是進入的頁面空白或者只有確定按鈕胚宦,這種情況一般是發(fā)起支付請求的參數(shù)有誤首有,可參考微信支付的小坑 - Kinoの技術(shù)博客?以及iOS微信支付的那些坑 - 簡書?,我的參數(shù)都是由后臺提供枢劝,把上述的坑填好后就直接通過了(后臺也是挺給力的哈)井联。
總結(jié)
這次給了我一個啟發(fā):不要盲目相信官方文檔的代碼(哪怕是某信這樣的大公司),遇到問題多Google(又讓我想起某度給我留下的陰影...)您旁,看看前人的答案烙常,最后送上我的座右銘:學(xué)習(xí)之路,與君共勉被冒。