post 请求 php -curl
post request php -curl
我写了这段代码:
$data = array(
'user' => '*****',
'password' => '****',
'terminal' => '******',
'GoodURL' => '********',
'Total' => *******,
);
$jsonData = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gateway20.pelecard.biz/PaymentGW/init");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;','Content-Length: ' . strlen($jsonData)));
if ($call == 'pay') {
$result = curl_exec($ch);
$serverData = json_decode($result, true);
echo $serverData['URL'];
}
参数在data
数组中很好,但我总是得到result = false
。
谁能告诉我我做错了什么?
谢谢
您应该实施错误处理,cURL 本身可以告诉您问题所在。
使用 http://php.net/manual/en/function.curl-error.php,您可以:
print __LINE__;
if ($call == 'pay') {
$err = curl_error($ch);
print __LINE__;
if (!empty($err)) {
throw new Exception($err);
}
$result = curl_exec($ch);
print serialize($result);
$serverData = json_decode($result, true);
print_r($serverDATA);
echo $serverData['URL'];
}
然后你就可以看到失败的原因了。基于代码的其他部分,您可能希望将其打印出来,将其放入日志数据库等,抛出异常并不总是正确的处理方式。
我写了这段代码:
$data = array(
'user' => '*****',
'password' => '****',
'terminal' => '******',
'GoodURL' => '********',
'Total' => *******,
);
$jsonData = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gateway20.pelecard.biz/PaymentGW/init");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;','Content-Length: ' . strlen($jsonData)));
if ($call == 'pay') {
$result = curl_exec($ch);
$serverData = json_decode($result, true);
echo $serverData['URL'];
}
参数在data
数组中很好,但我总是得到result = false
。
谁能告诉我我做错了什么?
谢谢
您应该实施错误处理,cURL 本身可以告诉您问题所在。 使用 http://php.net/manual/en/function.curl-error.php,您可以:
print __LINE__;
if ($call == 'pay') {
$err = curl_error($ch);
print __LINE__;
if (!empty($err)) {
throw new Exception($err);
}
$result = curl_exec($ch);
print serialize($result);
$serverData = json_decode($result, true);
print_r($serverDATA);
echo $serverData['URL'];
}
然后你就可以看到失败的原因了。基于代码的其他部分,您可能希望将其打印出来,将其放入日志数据库等,抛出异常并不总是正确的处理方式。