《PHP支付接口教程,詳解微信支付(一)》要點(diǎn):
本文介紹了PHP支付接口教程,詳解微信支付(一),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP支付接口教程,詳解微信支付(一)》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
三年夜支付方式里面,最復(fù)雜也是坑最多的非微信支付莫屬,我們從微信開始講.另外兩個(gè)分別是支付寶和銀聯(lián)支付.
常見的微信付出種類有下列四種:
微信JS支付,也稱公眾號(hào)內(nèi)支付,使用場(chǎng)景便是微信里面的H5商城,在微信以外的地方無(wú)法使用
微信PC付出,也稱掃碼付出,使用場(chǎng)景是PC端,注意這里并不是“原生掃碼付出”
微信APP付出,使用場(chǎng)景是原生或者混合APP
微信WEB付出,場(chǎng)景是微信外的觸屏網(wǎng)站,這個(gè)接口一直都有,只是最近才開放出來可以讓普通公司申請(qǐng),這個(gè)如果有機(jī)會(huì)的話也會(huì)講一講
從接口申請(qǐng)階段開始,四種方式就各有各的坑,這里不得不感激一下騰訊,替我們?cè)黾恿撕芏喙ぷ髁?
因?yàn)槭敲嫦蜷_發(fā)人員的教程,所以具體的申請(qǐng)條件、如何申請(qǐng)等內(nèi)容并不會(huì)講的太詳細(xì),只必要注意下面幾點(diǎn)即可:
請(qǐng)領(lǐng)導(dǎo)把你的微信號(hào)設(shè)置為"大眾號(hào)的臨時(shí)管理員
把公眾號(hào)和商戶平臺(tái)的賬號(hào)暗碼拿到手
微信平臺(tái)需要本身去重查看APPSECRET,這個(gè)過程需要公眾號(hào)管理員授權(quán)
商戶平臺(tái)需要本身去配置KEY,這個(gè)過程會(huì)有兩條驗(yàn)證短信發(fā)到領(lǐng)導(dǎo)手機(jī)上
總之第一階段最后必要把這四個(gè)數(shù)據(jù)準(zhǔn)確的拿到手:
APPID——登錄"大眾平臺(tái)查看
APPSECRET——登錄"大眾平臺(tái)申請(qǐng)重置之后查看
MCHID——商戶平臺(tái)的ID
KEY——商戶平臺(tái)本身設(shè)置的KEY
查看APPID
查看APPSECRET
查看MCHID
設(shè)置KEY
這里指的配置是配置公眾平臺(tái),配置有必要詳細(xì)的說一下,現(xiàn)在各種現(xiàn)成的項(xiàng)目和集成支付代碼觸目皆是,可是你就是用不起來,這個(gè)時(shí)候千萬(wàn)不要花時(shí)間去審查代碼,是你的配置出了問題.讓我們從原理上來理解一下:
業(yè)務(wù)域名、 JS接口平安域名、網(wǎng)頁(yè)授權(quán)域名
這三個(gè)參數(shù)在同一個(gè)頁(yè)面進(jìn)行配置,配置辦法也相同,直接填寫域名即可.如果你遇到的問題是REDIRECT_URI錯(cuò)誤,那多半就是這里出現(xiàn)了問題.
付出授權(quán)目錄
這里必定要填寫實(shí)際發(fā)起支付的頁(yè)面的URL,并且以斜杠結(jié)尾.那么就有三個(gè)問題:
我完全沒搞懂實(shí)際提議支付的是哪個(gè)URL
我并不清楚什么叫斜杠結(jié)尾
我設(shè)置裝備擺設(shè)對(duì)了為什么沒用
在獲取OPENID的過程中會(huì)有一次重定向,一般是重定向回本頁(yè)面,但也有部分項(xiàng)目不會(huì)這么做,好比ecshop,就被重定向到了別的頁(yè)面,所以實(shí)際發(fā)起頁(yè)面也就變成了別的頁(yè)面.
斜杠結(jié)尾便是把你的URL從右邊開始數(shù),碰到第一個(gè)斜杠,把你數(shù)過的部分刪掉,剩下的便是正確的配置內(nèi)容.當(dāng)然還有廣大ThinkPHP3.2用戶,你們的參數(shù)用斜杠來傳,就意味著你們?cè)谥Ц俄?yè)面只能帶一個(gè)參數(shù),否則怎么配置都不會(huì)對(duì)的.
有可能你壓根沒配置對(duì),請(qǐng)參考前兩條.如果你確定配置對(duì)了,請(qǐng)去喝一杯咖啡,這個(gè)配置有時(shí)候不會(huì)頓時(shí)生效.
倒一杯咖啡,打開你心愛的代碼編輯器,依照這6個(gè)步驟來,不要浮躁,你將會(huì)再次感謝騰訊……
把你在第一階段準(zhǔn)備的參數(shù)放到項(xiàng)目中(運(yùn)氣好的話此時(shí)你已經(jīng)完成了開發(fā))
測(cè)試CODE有沒有獲取到
測(cè)試OPENID有沒有獲取到
測(cè)試預(yù)付出訂單是否正常
測(cè)試JS是否正常
測(cè)試回調(diào)數(shù)據(jù)是否正常
把踩過的坑或者套路與年夜家分享一下:
在官方DEMO中,JsApiPay類下面GetOpenid辦法中第4行,
$_SERVER['PHP_SELF']
和
$_SERVER['QUERY_STRING']
之間少了一個(gè)問號(hào).導(dǎo)致的問題便是有一些用GET傳參的同學(xué),OPENID死活獲取不到.
訂單名稱里面不克不及含有&,暫時(shí)只發(fā)現(xiàn)這個(gè)符號(hào)會(huì)使得支付發(fā)起失敗
簽名錯(cuò)誤,一般是再去檢查參數(shù),特別是一些看不到的字符可能混在參數(shù)中,最好不要懷疑簽名辦法有問題.流程中有4個(gè)左右的地方會(huì)簽名,或者驗(yàn)證簽名,一定要確保所使用的KEY都是正確的.
在調(diào)試JS的時(shí)候用
alert(res.err_code+res.err_desc+res.err_msg)
把差錯(cuò)彈出來
測(cè)試回調(diào)的時(shí)候用
$GLOBALS['HTTP_RAW_POST_DATA']
來接收微信的關(guān)照,做好是接收到就存到數(shù)據(jù)庫(kù)里,先確保接收到了,再去調(diào)簽名和業(yè)務(wù)邏輯.
操作類的內(nèi)容和理論類的內(nèi)容是分開的,例如本文便是操作類的,今后將會(huì)有探討JS支付原理或者公私鑰原理的文章,但不是現(xiàn)在,因?yàn)椴幌腴_留太多坑.
在文章節(jié)奏的把控上略顯得有些不足,不過我會(huì)盡量不出現(xiàn)大篇幅代碼,多分享經(jīng)驗(yàn)干貨,多以初學(xué)者的角度行文.如果有問題歡迎留言討論,希望能對(duì)大家有贊助!
以上內(nèi)容屬于作者原創(chuàng),特此聲明,如需轉(zhuǎn)載,請(qǐng)取得批準(zhǔn)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/9653.html