1,申請公眾號
2,利用公眾號申請微信支付功能
3,登錄微信支付商戶平台(https://pay.weixin.qq.com),查看相應開發文檔
網站的兩種微信支付方式:A,掃碼支付;B,公眾號支付(適用環境:手機端?,公眾號里,微信瀏覽器)
流程:結算購物車---->提交訂單(此處選擇微信支付)---->等待付款(顯示二維碼:即微信服務器返回的code_url)
需要:phpqrcode.php(生成二維碼類)
官方API簽名正確性在線調試工具:https://pay.weixin.qq.com/wiki/tools/signverify/(建議使用火狐瀏覽器)
統一下單接地址:https://api.mch.weixin.qq.com/pay/unifiedorder
注意:
1,post方式傳遞
2,key不算入簽名字典序排序之內,且key拼接在最後
開發流程:
1,下載微信支付官方demo(https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1)
2,導入官方demo至項目根目錄(projectDir/)
3,替換projectDir/SDK/cert文件夾中的證書文件
4,
(A)配置appid,mchid,key,appsecret,
(B)新建const NOTIFY_URL= "http://$_SERVER['SERVER_NAME']/SDK/example/notify.php";(projectDir/SDK/lib/WxPay.Config.php)
(C)$this->GetReturn_code($return_code) == "SUCCESS")改成:$this->GetReturn_code() == "SUCCESS")
5,調用projectDir/SDK/example/native.php生成二維碼
curl出錯,錯誤碼:60,解決辦法:
Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in F:\CHUNRI\SDK\lib\WxPay.Api.php:566 Stack trace: #0 F:\CHUNRI\SDK\lib\WxPay.Api.php(62): WxPayApi::postXmlCurl('<xml><appid><![...', 'https://api.mch...', false, 6) #1 F:\CHUNRI\SDK\example\WxPay.NativePay.php(52): WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 F:\CHUNRI\SDK\example\native.php(44): NativePay->GetPayUrl(Object(WxPayUnifiedOrder)) #3 {main} thrown in F:\CHUNRI\SDK\lib\WxPay.Api.php on line 566
這個錯誤通過修改文件WxPay.Api.php解決,如下:
第537行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
改成:
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//嚴格驗證,修改