Android 集成微信支付過(guò)程以及所遇到的問(wèn)題

1.首先在微信開放平臺(tái)去申請(qǐng)賬號(hào)開通微信支付功能,并創(chuàng)建新應(yīng)用獲取APPID

2.填寫項(xiàng)目包名和正式包簽名(建議使用官方提供的獲取簽名工具)

3.集成sdk

//微信支付

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

4.必須在項(xiàng)目包名下創(chuàng)建wxapi文件和WXPayEntryActivity類,否則無(wú)法調(diào)起微信支付,這里參照demo里面的WXPayEntryActivity類就可以

注意:這里必須是在包名下,而且文件名和類名也要一致,不然支付回調(diào)不起作用

這里有個(gè)小坑,demo里的WXPayEntryActivity類,

api = WXAPIFactory.createWXAPI(this, UrlConstants.WXAPPID);

api.handleIntent(getIntent(), this);

這兩行代碼是放在onCreate()方法的,但是我在測(cè)試支付的時(shí)候,支付成功后沒(méi)調(diào)用回調(diào)方法,

查了一下,解決方案是把這兩行代碼放在onStart()方法里,so解決問(wèn)題

還有一個(gè)關(guān)于支付回調(diào)的細(xì)節(jié),就是在manifest文件注冊(cè)時(shí)最好是文件全路徑,不然支付回調(diào)也可能不起作用

5.獲取prepayid由服務(wù)器調(diào)用統(tǒng)一下單接口獲取

注意:如果服務(wù)端開發(fā)文檔跟客戶端demo里的參數(shù)不一樣,以demo里的參數(shù)為準(zhǔn),

?否則服務(wù)器傳過(guò)來(lái)的參數(shù)無(wú)法調(diào)起微信支付!?。?/p>

6.注冊(cè)appId,在發(fā)起支付的activity的onCreate里面注冊(cè)即可

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

msgApi.registerApp("wxxxxxxxxxxx8f4f");

7.發(fā)起支付

發(fā)起支付根據(jù)req.checkArgs()和api.sendReq(req)的結(jié)果判斷

如果req.checkArgs()為false,說(shuō)明請(qǐng)求參數(shù)有誤,需要檢查請(qǐng)求參數(shù)是否和demo中給出的一致,

再就是sign,可以根據(jù)服務(wù)器返回的參數(shù)去官方的簽名校驗(yàn)工具檢查一下簽名是否正確

一般req.checkArgs()為true,api.sendReq(req)也會(huì)是true,其他情況沒(méi)碰到過(guò)

只有eq.checkArgs()和api.sendReq(req)都為true時(shí)才可以正常發(fā)起支付,進(jìn)行付款.

8.支付回調(diào)

回調(diào)方法根據(jù)code的值進(jìn)行相關(guān)處理就可以了,code=-1時(shí),一般就是簽名問(wèn)題,需檢查簽名是否正確

補(bǔ)充:

1.Android系統(tǒng)是否支持微信雙開

舉例華為和vivo系統(tǒng),如果使用了微信雙開,點(diǎn)擊其中一個(gè)會(huì)出現(xiàn)支付窗口閃一下消失的情況,點(diǎn)另一個(gè)就可以正常調(diào)起支付,具體原因不明

2.服務(wù)端在調(diào)用統(tǒng)一下單接口前后都需要進(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 由于公司運(yùn)營(yíng)需要,Android客戶端要增加微信支付。在看了幾遍官方文檔之后,加上之前有集成微信分享的經(jīng)驗(yàn),所以很...
    Kerry202閱讀 1,499評(píng)論 2 8
  • 在被支付寶、銀聯(lián)坑過(guò)之后,發(fā)現(xiàn)其實(shí)微信支付的集成并沒(méi)有想象中的那么困難,像支付寶那樣簡(jiǎn)單地調(diào)用個(gè)方法就行,重要的難...
    petry閱讀 747評(píng)論 2 2
  • 今日推薦 經(jīng)常閱讀博客是個(gè)好習(xí)慣推薦鴻洋CSDN的博客 微信支付相關(guān)文章 詳細(xì)介紹Android開發(fā)集成微信支付(...
    MrQ_Android閱讀 6,302評(píng)論 9 52
  • 對(duì)于vue來(lái)說(shuō),組件之間的消息傳遞是非常重要的,下面是我對(duì)組件之間消息傳遞的各種方式的總結(jié),總共有8種方式。 pr...
    紫痕藍(lán)羽閱讀 439評(píng)論 0 0
  • 《好好學(xué)習(xí)》共讀第七天。 前一天的共讀提到了做事情的順序是提出假設(shè)——采取行動(dòng)——得到結(jié)果 我們對(duì)同一件事情得出假...
    秋葉_3adc閱讀 167評(píng)論 0 0

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