微信支付三大支付方式里面,最復(fù)雜也是坑最多
2021-01-31
微信支付
在三種支付方式中,最復(fù)雜,最棘手的非微信支付就是微信支付。讓我們從微信開始。
微信支付有四種常見類型:
微信JS付款,也稱為官方帳戶內(nèi)的付款,使用場景是微信中的H5商城。 WeChat PC付款不能在WeChat之外使用,也稱為掃描代碼付款。使用場景為PC端。請(qǐng)注意,這不是“本機(jī)掃描代碼支付”微信APP支付,使用場景是本機(jī)或混合APP微信WEB支付,該場景是微信外部的觸摸屏網(wǎng)站,此界面一直可用,僅最近開放允許普通公司申請(qǐng),如果有的話,我會(huì)談?wù)?/p>
自從接口應(yīng)用階段以來,這四種方法都有其自身的陷阱。我要感謝騰訊為我們增加了很多工作。
微信JS付款的第一階段:界面應(yīng)用程序
因?yàn)檫@是面向開發(fā)人員的教程,所以具體的應(yīng)用條件以及如何應(yīng)用將不會(huì)太詳細(xì)。請(qǐng)注意以下幾點(diǎn):
請(qǐng)?jiān)O(shè)置您的微信帳號(hào)為官方帳號(hào)的臨時(shí)管理員。獲取官方帳戶和商戶平臺(tái)的帳戶和密碼。您需要在微信平臺(tái)上自行檢查APPSECRET。此過程需要官方帳戶管理員授權(quán)商家平臺(tái)。要配置KEY,在此過程中,兩條驗(yàn)證短信將發(fā)送到領(lǐng)導(dǎo)者的手機(jī)上
簡而言之php微信支付接口開發(fā)教程,這四個(gè)數(shù)據(jù)需要在第一階段結(jié)束時(shí)準(zhǔn)確獲得:
APPID登錄到公共平臺(tái)以查看APPSECRET-登錄公共平臺(tái)以申請(qǐng)重置,然后查看MCHID-商戶平臺(tái)的IDKEY-商戶平臺(tái)本身設(shè)置的KEY
檢查APPID
查看APPSECRET
查看MCHID
設(shè)置密鑰
第二階段:配置
此處的配置是指公共平臺(tái)的配置。該配置需要詳細(xì)說明。如今,各種現(xiàn)成的項(xiàng)目和集成的付款代碼比比皆是,但是您無法使用它?,F(xiàn)在不要花時(shí)間對(duì)其進(jìn)行審查。該代碼與您的配置有關(guān)。讓我們原則上了解它:
企業(yè)域名,JS接口安全域名,網(wǎng)頁授權(quán)域名
PHP支付界面教程,微信支付,支付寶支付,銀聯(lián)支付(一)
的詳細(xì)說明
這三個(gè)參數(shù)在同一頁面上配置,并且配置方法相同。只需直接填寫域名。如果您遇到的問題是REDIRECT_URI錯(cuò)誤,則可能是這里的問題。
付款授權(quán)目錄
PHP支付界面教程,微信支付,支付寶支付,銀聯(lián)支付(一)
的詳細(xì)說明
請(qǐng)務(wù)必填寫實(shí)際開始付款的頁面的網(wǎng)址php微信支付接口開發(fā)教程,并以斜杠結(jié)尾。然后有三個(gè)問題:
1. 我完全沒搞懂實(shí)際發(fā)起支付的是哪個(gè)URL
2. 我并不清楚什么叫斜杠結(jié)尾
3. 我配置對(duì)了為什么沒用
在獲取OPENID的過程中將進(jìn)行重定向,通常會(huì)重定向回該頁面,但是某些項(xiàng)目不會(huì)這樣做。例如,ecshop被重定向到另一個(gè)頁面,因此實(shí)際頁面也被啟動(dòng)成為另一個(gè)頁面。斜線的結(jié)尾是從右邊開始計(jì)算您的URL。當(dāng)遇到第一個(gè)斜杠時(shí),請(qǐng)刪除已計(jì)算的部分,其余部分為正確的配置內(nèi)容。當(dāng)然,也有大量的ThinkPHP3.2用戶。您的參數(shù)以斜杠傳遞,這意味著您只能在付款頁面上輸入一個(gè)參數(shù),否則將不進(jìn)行任何配置。您可能根本沒有配置正確的配置,請(qǐng)參考前兩個(gè)。如果確定配置正確,請(qǐng)去喝杯咖啡,有時(shí)此配置不會(huì)立即生效。第三階段:調(diào)試
倒一杯咖啡,打開您心愛的代碼編輯器,按照以下6個(gè)步驟操作,不要浮躁,您將再次感謝騰訊...
將您在第一步中準(zhǔn)備的參數(shù)放入項(xiàng)目中(如果幸運(yùn)的話,您已經(jīng)完成了開發(fā))
測試是否已獲取CODE測試是否已獲取OPENID測試預(yù)付款指令是否正常測試JS是否正常測試回調(diào)數(shù)據(jù)是否正常
分享您踩過的維修區(qū)或例程:
在官方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ò)誤彈出來
測試回調(diào)的時(shí)候用
$GLOBALS['HTTP_RAW_POST_DATA']
來接收微信的通知,做好是接收到就存到數(shù)據(jù)庫里,先確保接收到了,再去調(diào)簽名和業(yè)務(wù)邏輯。
寫在最后
操作類的內(nèi)容和理論類的內(nèi)容是分開的。例如,本文是關(guān)于操作類的。將來(但不是現(xiàn)在)將會(huì)有文章討論JS支付的原理或公鑰和私鑰的原理,因?yàn)槲也幌肓粝绿嗦┒础?/p>
控制文章的節(jié)奏似乎有點(diǎn)不足,但是我將嘗試避免使用大規(guī)模代碼,分享更多經(jīng)驗(yàn)和干貨,并從初學(xué)者的角度撰寫更多文章。如有任何疑問,請(qǐng)留言討論,希望對(duì)大家有幫助!
以上內(nèi)容均為作者原創(chuàng),特此聲明,如果需要轉(zhuǎn)載,請(qǐng)征得您的同意