使用 laravel + easyWechat 做微信公眾號支付
準備
1.微信服務號 相應的 appId 和 appsecret
2.微信支付商戶號 的 (商戶號的id) mch_id (商戶支付的金鑰) key
商戶的key要到微信支付商戶平臺上檢視
開始開發
1.laravel 安裝 laravel/wechat
參考地址 https://github.com/overtrue/laravel-wechat
composer require "overtrue/laravel-wechat:~4.0"
同時要注意 laravel 的 csrf_token 機制
$officialAccount = EasyWeChat::officialAccount(); // 公眾號例項 $work = EasyWeChat::work(); // 企業微信例項 $payment = EasyWeChat::payment(); // 微信支付例項 $openPlatform = EasyWeChat::openPlatform(); // 開放平臺例項 $miniProgram = EasyWeChat::miniProgram(); // 小程式例項 這此例項的引數是自動從 config/wechat.php 配置檔案中自動獲取的,當然也可以自已指定
config/wechat.php 檔案的格式如下圖
相應的在env檔案中寫入 appid appsecret mch_id key 和 token
前端發起點選支付,發起支付請求
頁面的程式碼 ajax請求 wechat/prepay 地址,後臺返加的config中有 調起支付所須的引數
後臺的wechat/pay的程式碼如下,
這裡的config就是前端的所有引數的陣列
這樣就調起微信支付了
須要注意的是,微信對支付的目錄是有規定的,必須在打定的目錄下的路徑才可以呼叫
如:在微信商戶平臺配置 的支付路徑是 www.xxx.com/wechat/payment/ (注意結尾要有 “/”)
那麼我們的支付程式碼的路徑就應該是 這個路徑下的 子路徑 如:www.xxx.com/wechat/payment/orderpay www.xxx.com/wechat/payment/mondypay 等都可以
但是 www.xxx.com/wechat/payment www.xxx.com/wechat/payment/orderpay/sunpay 等都是不可以的
現在微信的支付路徑配置轉到了商戶平臺上,自已去配置一下