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