1. 程式人生 > >PHP.支付寶手機支付介面錯誤 ALI14

PHP.支付寶手機支付介面錯誤 ALI14

  最近在做一個php網站的 支付寶手機端支付時,遇到一個很奇怪的問題。手機支付時 一直顯示 “訂單處理失敗,請稍後再試(ALI14)”。


然後也確認支付介面相關的檔案也沒什麼問題。然後在網上搜索 也搜不出什麼結果。無奈 只能自己一點一點的除錯了。

首先從 支付寶跳轉的連線中,發現request_token的引數是空的,然後順藤摸瓜找到了 支付寶介面中getHttpResponseGET()方法有問題。

然後就簡單了,找到這個方法:

function getHttpResponseGET($url,$cacert_url) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0 ); // 過濾HTTP頭
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);// 顯示輸出結果
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);//SSL證書認證
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);//嚴格認證
curl_setopt($curl, CURLOPT_CAINFO,$cacert_url);//證書地址
$responseText = curl_exec($curl);
//var_dump( curl_error($curl) );//如果執行curl過程中出現異常,可開啟此開關,以便檢視異常內容
curl_close($curl);

return $responseText;
}

開啟除錯後 發現curl有問題:

然後在網上 搜尋這個問題 就找到了解決方法:

在curl_exec()之前新增
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);