微信支付常見問題
- 發(fā)布時間: 2015-02-12 13:52:55
- 瀏覽次數(shù): 4801
-
相信第一次開發(fā)微信支付的童鞋都是從下載修改微信提供的例子開始,而微信官方提供的“微信公眾號支付接口文檔V3.3.7”中的PHP版本例子,一開始就跟大家開了個玩笑(這里強烈鄙視一下微信開發(fā)團隊!?。?
Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in /wx_pay_test/WxPayPubHelper/WxPayPubHelper.php on line 155 Warning: curl_setopt() expects parameter 2 to be long, string given in wx_pay_test/WxPayPubHelper/WxPayPubHelper.php on line 155
正確的寫法為: curl_setopt($ch, CURLOPT_TIMEOUT, $second);
-
“access_control:not_allow” 可能出現(xiàn)的問題是:
1)如果是未通過審核的微信服務號,確認是否已經(jīng)把測試用的微信普通用戶號加入到“測試白名單(微信支付->開發(fā)配置->測試白名單)”
2)負責發(fā)起支付的php程序所在的目錄,是否已經(jīng)設置被設置成為“支付授權目錄”或“測試目錄”,例如:需要把例子中的http://www.*****.com/WxPayController/ 設置為支付授權目錄或測試目錄
-
“支付金額參數(shù)total_fee問題”,這個金額是提交給微信的扣款金額,單位是分,所以假如扣款:12.98元, 提交的數(shù)據(jù)應該是 1298。
-
別嘗試使用AJAX 方式調(diào)用js_api_call.php,來進行微信支付。
-
“公眾號支付使用了無效的商戶號”,導致這個錯誤出現(xiàn)的原因有很多,下面只能提供一個調(diào)試的方法,可根據(jù)自己的實際情況處理。由于微信支付測試比較困難,只有在微信內(nèi)才可以測試。一些 xml格式的文件無法使用var_dump來輸出,網(wǎng)上搜索找到一個生成log記錄信息的方式:
// 打印log function log_d($word) { $log_name="./logd.log";//log文件路徑 $fp = fopen($log_name,"a"); flock($fp, LOCK_EX) ; fwrite($fp,"執(zhí)行日期:".strftime("%Y-%m-%d-%H:%M:%S",time())."\n".$word."\n\n"); flock($fp, LOCK_UN); fclose($fp); }
在demo里面的 WxPayPubHelper.php 里面 用 $this->log_d(xxx);調(diào)用。
普通的對象輸出可使用:var_dump(××××);
-
支付成功后的 notify_url ,無法接受到數(shù)據(jù)問題:
首先 notify_url 不能使用如 &a=1&b=2 格式 應使用如下 /a/1/b/2 Pathinfo模式 如果是Linux環(huán)境還需要對文件夾有 相應的權限 才能寫入信息。
開發(fā)者可以在 notify_url 中根據(jù) 支付返回的狀態(tài)進行一些相應的操作 例如修改訂單狀態(tài)...發(fā)送模板消息 提醒用戶交易成功等等。