先簡單介紹說明一下以網(wǎng)站類應(yīng)用對(duì)接微信支付接口需要申請(qǐng)兩個(gè)接口
1:是微信JSAPI支付,JSAPI支付是指商戶通過調(diào)用微信支付提供的JSAPI接口,在支付場景中調(diào)起微信支付模塊完成收款。以PC網(wǎng)站場景為例,在網(wǎng)站付款頁面中展示二維碼,用戶掃描二維碼后在微信瀏覽器中打開頁面后完成支付;(開通申請(qǐng)方法:到微信支付商品平臺(tái)入駐后前往商戶平臺(tái)-產(chǎn)品中心-JSAPI支付-申請(qǐng)開通。)
2:是微信H5支付,H5支付是指商戶在微信客戶端外的移動(dòng)端網(wǎng)頁展示商品或服務(wù),主要用于觸屏版的手機(jī)瀏覽器請(qǐng)求微信支付的場景??梢苑奖愕膹钠渌謾C(jī)瀏覽器喚起微信支付;(開通申請(qǐng)方法:到微信支付商品平臺(tái)入駐后前往商戶平臺(tái)-產(chǎn)品中心-H5支付-申請(qǐng)開通。);
解決方法步驟
1:首選檢查根目錄下的支付接口響應(yīng)文件respond.php,目的是檢查插件文件是否存在,如果存在則驗(yàn)證支付是否成功,否則則返回失敗信息;
2:檢查修改根目錄下微信支付接口本地回調(diào)文件wx_native_callback.php,目的是修正之前php長標(biāo)簽未閉合的問題,還有定義相對(duì)路徑的問題;
3:檢查修復(fù)支付接口的核心兩大文件wx_new_jspay.php和wxpay_h5.php,本次導(dǎo)致錯(cuò)誤的是wx_new_jspay.php文件,所以下面以wx_new_jspay.php文件為例。如果以后遇到普通移動(dòng)端瀏覽器訪問觸屏站支付后訂單狀態(tài)未更新的問題可以檢查wxpay_h5.php文件;
可以先通過其中的這段得知微信接口支付如果出現(xiàn)報(bào)錯(cuò)或失敗等可以在這個(gè)路勁下找到輸出的日志,以方便排查問題!
支付成功后訂單狀態(tài)未更新變化,可以發(fā)現(xiàn)有這兩類日志提示 a:簽名失敗;;b:傳遞過來的XML NULL; 那么通過日志就可以判斷是回調(diào)的問題!
重要步驟:頁面加載時(shí)調(diào)用賦值callpay();方法,具體操作添加上圖中原來沒有的我紅圈標(biāo)注出來的這句??!
添加判斷修復(fù)因環(huán)境使用最新php7版本導(dǎo)致的代碼兼容問題;
至此處理完畢??!