2013-05-09 11 views
12

私は支払い処理プログラムでAPIを設定しようとしています。以下は、彼らが私に提供したコードです。 $ result変数にはいくつかの情報がありますが、私が理解していないのは、どのような変数の型が '$ result'なのか、どうすればそのデータを取り出すことができるのかです。 $結果を表示すると、「トランザクションIDは:xxxxステータスはACCEPTEDです」と表示されます。私が基本的に望むのは、トランザクションIDだけを取り出して変数に格納することです。PHP、CURL。 curl_execは何を返しますか?

foreach($_POST as $k=>$v) $$k=urldecode($v); 
$urladdress = "https://example.com/accapi/process.php"; 
$api_id = "dddd"; 
$api_pwd = "yyyyy"; 
$api_pwd = md5($api_pwd.'s+E_a*'); 
$data = "user=".$user. "&testmode=".$testmode."&api_id=".$api_id. "&api_pwd=".$api_pwd."&amount=".$amount."&paycurrency=".$currency."&comments=".$comments."&fee=".$fee."&udf1=".$udf1; 
// Call STP API 

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"$urladdress"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); //use this to suppress output 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);// tell cURL to graciously accept an SSL certificate 
$result = curl_exec ($ch) or die(curl_error($ch)); 
echo $result; 
echo curl_error($ch); 
curl_close ($ch); 

manualからあなたの助け

+12

*重要*投稿したパスワードは変更する必要があります。 –

答えて

40

ありがとう:

成功した場合にTRUEを、失敗した場合にFALSEを返します。ただし、CURLOPT_RETURNTRANSFERオプションが設定されている場合は、成功した場合は結果を返し、失敗した場合はFALSEを返します。あなたのコードのよう

実際に行が含まれています

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

CURLOPT_RETURNTRANSFERオプションISSETこと、それはエラー時に文字列またはfalseのいずれかを返します何を意味するのか。したがって、エラーチェックコードは次のようになります。

$result = curl_exec ($ch); 
if($result === FALSE) { 
    die(curl_error($ch)); 
} 
+1

ああ、私はそれが成功すると文字列を返すので参照してください。ありがとうございました!だから、トランザクションIDを分離するために文字列関数を使用するだけです。 – shadyhossin

+1

"PHP 5.1.3以降、このオプションは効果がありません.CURLOPT_RETURNTRANSFERを使用すると、生の出力は常に返されます。" – Mawg