最近在做一个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有问题: