1

我写了这段代码:

 $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. 谁能告诉我我做错了什么?
谢谢

4

1 回答 1

0

您应实施错误处理,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'];
}

然后您将能够看到失败的原因。根据代码的其他部分,您可能希望将其打印出来,将其放入日志数据库中,等等,抛出异常并不总是正确的处理方式。

于 2015-09-10T08:40:11.807 回答