私はexpediaのAPIで作業しています。多くのAPIリクエストを正常に処理しましたが、試してみましたが何が問題になるのか無駄です。PHPで配列にJSONのレスポンスを返すことができない関数
global $cid, $apiKey, $sig, $minor_rev;
$url= 'http://api.ean.com/ean-services/rs/hotel/v3/paymentInfo?minorRev='.$minor_rev.'';
$url .= '&cid='.$cid.'';
$url .= '&sig='.$sig.'';
$url .= '&apiKey='.$apiKey.'';
$url .= '&customerUserAgent='.$PaymentTypeData['customerUserAgent'].'';
$url .= '&customerIpAddress='.$PaymentTypeData['customerIpAddress'].'';
$url .= '&customerSessionId='.$PaymentTypeData['customerSessionId'].'';
$url .= '&locale=en_US&_type=json';
$url .= '&currencyCode='.$PaymentTypeData['currencyCode'].'';
$url .= '&hotelId='.$PaymentTypeData['hotelId'].'';
$url .= '&supplierType=E';
$url .= '&rateType=MerchantStandard';
$header[] = "Accept: application/json";
$header[] = "Accept-Encoding: gzip, deflate";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);
$HotelPaymentResponse = array();
$HotelPaymentResponse[] = $result['HotelPaymentResponse'];
echo '<pre>';
echo $url;
print_r($result);
echo '<h1>GET HOTEL PAYMENT TYPES</h1>';
print_r($HotelPaymentResponse);
echo '</pre>';
return $HotelPaymentResponse;
私はURLをエコーし、結果が期待されているなどのブラウザでそれを試して、JSON形式の支払型の配列....しかし、のために:
私の機能は、このようになります返すためにPHP配列にこれを取得私の人生は私を逃す。任意のヘルプは非常に非常に高く評価されるだろうhttp://developer.ean.com/docs/payment-types/
そして、はい、私はJSONをチェックアウトしたことが多いS.Overflowに掲載導く....
...:ここでは
は、APIの仕様へのリンクです
PS:
{
"HotelPaymentResponse": {
"@size": "4",
"@currencyCode": "USD",
"customerSessionId": "0ABAAAC9-9A32-7914-9E32-D7EC7F906769",
"PaymentType": [
{
"code": "AX",
"name": "American Express"
},
{
"code": "DS",
"name": "Discover"
},
{
"code": "CA",
"name": "Master Card"
},
{
"code": "VI",
"name": "Visa"
}
]
}
}
:
APIは安息は次のようになりますと言います
しかし、私の配列を返す:
Array
(
[0] =>
)
が解決:
おかげで、505以下のコメントを通じて作業し、エラーがスローされた研究に - 私はGoogleで検索して、誰かが、彼らがために、浮遊のエラーを持っていたと言いましたURLのスペース。私のエラーは、顧客のユーザーエージェントがPHPのユーザーHTTPエージェントから入力されたためです...削除して手動で入力したので、応答をカールすることができます。
エラーが発生しますか? – Tomahock
エラーはスローされませんが、配列は印刷中です。 ( [0] => ) –
$結果にvar_dump()を実行し、その内容を確認してください。 NULLの場合、配列は空になり、API呼び出しに問題があります – Pazuzu156