2017-02-14 31 views
0

我想驗證某人是否擁有有效的ISIC卡,我已經爲此Rest API(http://nakoduj.to/_upload/project_files/2015-08-18-12-51-20_DM%20-%20Integration%20Manual.pdf)編寫了以下代碼,但它不起作用,我不知道爲什麼它沒有。PHP curl和ISIC驗證(REST API)。我如何完成這項工作?

$data = array( "cardNumber" => "S123456789000A", 
         "cardholderName" => "John Doe"); 

$data = json_encode($data); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://gts-dm.orchitech.net/api/verifications'); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "testdm:testdm"); 

$result = curl_exec($ch); 

if ($result === false) { 
    $info = curl_getinfo($ch); 
    curl_close($ch); 
    die('error occured during curl exec. Additioanl info: ' . var_export($info)); 
} 

curl_close($ch); 

我總是爲$結果做假。 $ info中沒有附加信息。

預先感謝您的幫助

回答

0
<?php 

$data = [ 
     "cardNumber" => "S123456789000A", 
     "cardholderName" => "John Doe", 
     ]; 
$data = json_encode($data); 
$header = $request_headers = [ 
       "Content-Type: application/json" 
      ]; 
$curl_options = [ 
     CURLOPT_URL =>'https://gts-dm.orchitech.net/api/verifications', 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_FOLLOWLOCATION => true, 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => $data, 
     CURLOPT_HTTPHEADER => $header, 
     CURLOPT_SSL_VERIFYHOST => false, 
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_AUTOREFERER => true, 
     CURLOPT_COOKIESESSION => true, 
     CURLOPT_FILETIME => true, 
     CURLOPT_FRESH_CONNECT => true, 
     CURLOPT_USERPWD => "testdm:testdm" 
]; 
$ch = curl_init(); 
curl_setopt_array($ch, $curl_options); 
$result = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
var_dump($result); 

請求頭未發送造成HTTP錯誤代碼415 UnsupportedMediaTypeHttpException因此需要添加請求頭,也許做工精細

+0

我在這裏做錯了什麼。首先我試圖完成我的代碼,然後我試圖複製你的代碼,但它不適合我。當我var_dump-$結果時,我只得到bool(false)。 其他信息: 我正在使用xampp運行PHP腳本。 我已刪除Apache的註釋行這是在捲曲DLL(我啓用它) –

+0

共享屏幕拍攝前 –

+0

http://imgur.com/a/CJxgM –

0

我建議你使用Postman。只需安裝它並嘗試使用它提出請求。
你會看到你的請求的結果,而不是簡單地得到請求代碼。
您可以在'save'下方的右上角看到'Code',按下並選擇您的語言。爲了您的目的,它是PHP-> cURL。其結果會是這樣:Postman example
更多郵差here