《PHP支付接口教程,詳解微信支付(二)》要點:
本文介紹了PHP支付接口教程,詳解微信支付(二),希望對您有用。如果有疑問,可以聯系我們。
掃碼付出首先是要分清楚兩種模式:
【模式一】:商戶后臺系統根據微信支付規則鏈接生成二維碼,鏈接中帶固定參數productid(可定義為產物標識或訂單號).
【模式二】:商戶后臺系統調用微信支付【統一下單API】生成預付交易,將接口返回的鏈接生成二維碼,用戶掃碼后輸入暗碼完成支付交易.
上面是官方的說法,簡單來說便是模式一多用于線下,而模式二用于線上.我們所說的掃碼支付都是指模式二,它算是4種常用的微信支付方式里面最簡單的了.說它簡單主要體現在兩個地方:
不必要像微信JS支付一樣,獲取網頁授權,獲取OPENID
不必要組裝JS,只用把接口返回的code_url轉成二維碼然后放到頁面上
只要在微信公眾申請了微信支付的,JS支付和掃碼支付就都可以集成.如何申請不會講的太詳細,只必要注意下面幾點即可:
成為"大眾號的臨時管理員
把公眾號和微信商戶的賬號暗碼都拿到手
微信商戶需要本身去配置一下秘鑰,這個過程會有兩次短信驗證
會發現,如果只是做掃碼支付的話,我們并不必要用到APPSECRET.原因是使用微信掃碼的這個過程會驗證付款者的身份,所以統一下單時是不必要去獲取OPENID的,自然也用不到公眾號的接口,也就不必要SECRET.
當然這種只有PC站點的情況很少,所以建議還是把四個參數都拿其,具體的獲取地位可以看之前的(一).
PHP付出接口教程,詳解微信付出(一)
付出授權目錄
關于授權目錄的配置方式在上一篇中有詳細描述.這里要注意的是上圖里面的掃碼支付回調URL,和我們所做的掃碼支付并沒有任何關系,如果支付呈現問題,千萬不要認為是這里出了錯.
把你的參數放到項目中并確保他們正確
測試統一下單接口能否正常獲取到預付出訂單
測試支付回調數據是否正常,這里有個小技巧,便是可以直接把code_url發送到你的微信打開,同樣是可以完成支付的
找一個穩定的二維碼生成庫(例如phpqrcode),把code_url轉化成二維碼
到這里基本支付就可以驗收了,但是體驗不太好,和支付寶的掃碼相比,微信掃碼支付要把二維碼放到我們本身的頁面上,這就需要我們本身設計一個放二維碼的地方.
還有微信掃碼支付并不存在前臺回調頁面一說(其他支付方式都有),意思也便是你掃碼支付明明成功了,可是如果不處理的話支付頁面將不會有任何反應.給大家兩個建議:
放一個支付成功的按鈕到頁面上讓用戶本身確認已付款成功,你只需要在下一個頁面驗證是否真的付款成功.聽起來有點蠢,可是這種方式曾經也被很多大網站使用過.
在支付頁寫一個AJAX用輪詢的方式不斷的向后臺詢問訂單支付的情況,如果返回成功則跳像成功頁面.這樣會讓用戶覺得PC和手機似乎是同步的,體驗比擬好.
作為比擬簡單的支付方式,掃碼支付集成起來不會有太多困難,更多的是對于支付頁面的處理.
這里必要提一下我們最終的目的,寫一個通用的支付類,讓支付接口開發變得輕松愉快.目前為止,我們在微信支付上已經遇到了兩種不同返回情況:
通過支付類獲得一個按鈕,按鈕觸發微信JSSDK
通過支付類獲得一張二維碼圖片和一個輪尋頁面的JS
第二種情況,即便是把輪尋的JS也封裝到支付類中,還是需要自己寫一個被輪詢的頁面,這似乎不是一個很好的設計,因為這樣一來,支付發起的流程和頁面邏輯之間將產生很強的耦合.具體的解決方法,將在分析完所有的常用支付方式之后再討論.
希望能對大家有贊助!
以上內容屬于作者原創,特此申明,如需轉載,請取得批準
維易PHP培訓學院每天發布《PHP支付接口教程,詳解微信支付(二)》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。