1. 程式人生 > >ThinkPHP5接入微信公眾號支付

ThinkPHP5接入微信公眾號支付

微信在生活中的地位越來越重要。人流量大,資訊大的地方都是商戶營銷必爭之地,在微信公眾號中微信支付使用的場景越來越多。下面樑俊威博主就詳細的講解下ThinkPHP如何接入微信公眾號支付。

1、下載官方demo,並放到根目錄/extend/下面,建議建一個Wxpay資料夾。以後如果想接入支付寶就再建一個Alipay。這樣在多種支付的情況下目錄可能會比較清晰。

下載官方demo放置根目錄extend資料夾下

2、在WxPay.Config.php檔案中修改微信支付相關的引數,並將微信支付商戶平臺下載的證書放到extend/Wxpay/cert/資料夾下。

//開戶郵件中可檢視或者微信支付後商戶平臺
const APPID = '';
//開戶郵件中可檢視或者微信支付商戶平臺
const MCHID = '';
//微信支付商戶平臺自行設定
const KEY = '';
//微信公眾號secert
const APPSECRET = '';
// 證書路徑,注意應該填寫絕對路徑(僅退款、撤銷訂單時需要),可登入商戶平臺下載,API證書下載地址:https://pay.weixin.qq.com/index.php/account/api_cert,下載之前需要安裝商戶操作證書)
const SSLCERT_PATH = 'cert/apiclient_cert.pem';
const SSLKEY_PATH = 'cert/apiclient_key.pem';

3、在微信公眾號中設定支付目錄,具體步驟:微信支付->開發配置->輸入微信支付的地址,須細化到二級目錄,以左斜槓“/”結尾。比如:微信支付的連結為:www.somto.net/wxpay/Cart/weixinpay/o_no/20170622164600。o_no後面的訂單號是隨機的訂單號。那麼微信公眾號中支付目錄則為:www.somto.net/wxpay/Cart/weixinpay/o_no/。

微信支付設定

4、在微信公眾號中設定JS介面安全域名設定和網頁授權域名。具體步驟:公眾號設定->功能設定。

設定微信公眾號安全介面

值得注意的是:在微信支付的時候,首先會獲取openID。獲取openID的過程是首先請求微信,微信會把code迴轉到當前的請求連結。簡單的理解就是微信支付的連結會被請求兩次,第一次是我們請求呼叫微信支付,第二次是微信回撥獲取openID。這樣就可能在第二次執行該微信支付的連結?後面引數會丟失。具體程式碼可以檢視微信WxPay.JsApiPay.php中的GetOpenid方法。

如果把這幾個微信支付的關鍵點都搞懂了,具體的程式碼應該就比較好些寫了。支付和通知都可以參考微信支付中的exmaple資料夾裡的檔案。