1.登錄微信商戶平臺(tái)
復(fù)制這兩個(gè)簽名文件,準(zhǔn)備替換DEMO中去
微信官網(wǎng)下載PHP微信支付DEMO
替換掉原來微信支付DEMO里sdk cert文件夾中的兩個(gè)證書文件
設(shè)置API密鑰,用來填寫配置文件
在API下方設(shè)置次數(shù)為100次(最高是100次)
修改lib下的配置文件
APPID和APPSECRET是在微信公眾號(hào)查看
MCHID為商戶號(hào),KEY為前面步驟設(shè)置的API密鑰
復(fù)制4個(gè)文件到項(xiàng)目中去
設(shè)置支付授權(quán)目錄,JSAPI所在的路徑
首次運(yùn)行官方Demo可能會(huì)出現(xiàn)下面的錯(cuò)誤
Fatalerror: Uncaught exception ‘WxPayException‘ with message ‘curl出錯(cuò),錯(cuò)誤碼:60‘ in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php:564 Stack trace: #0 D:\wwwroot\weixinpaytest\lib\WxPay.Api.php(62):
WxPayApi::postXmlCurl(‘
WxPayApi::unifiedOrder(Object(WxPayUnifiedOrder)) #2 {main} thrown in D:\wwwroot\weixinpaytest\lib\WxPay.Api.php on line 564
這個(gè)錯(cuò)誤通過修改文件WxPay.Api.php 解決,具體如下:
第537行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴(yán)格校驗(yàn)
改成下面的代碼
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//嚴(yán)格校驗(yàn)2
關(guān)于微信執(zhí)行重復(fù)回調(diào)的問題
1.文檔提示,需要在回調(diào)中寫重復(fù)處理機(jī)制,我的做法是查詢充值表中是否是存在訂單號(hào)數(shù)據(jù),如果存在,那么就結(jié)束die()
2.父類有輸出,先前清空
//父類有輸出,先前清空
ob_clean();
//返回微信停止回調(diào)
3.需要返回微信服務(wù)器數(shù)據(jù),成功后微信就會(huì)結(jié)束回調(diào)。
但是在官方V3版本PHP的SDK中需要做以下修改
需要修改 lib->WxPay.Notify.php 的ReplyNotify函數(shù),
$this->GetReturn_code($return_code) == "SUCCESS"
需要改成
$this->GetReturn_code() == "SUCCESS"
微信回調(diào)文件notify.php支付成功邏輯處理完成后,在文件末尾直接echo 'SUCCESS'