2016-03-30 4 views
0

私は... PHPでカールし新たなんだと私はPHPにこのcurlコマンドを変換する方法を思っていた。今、私が持っているカールは、配列を使用してPHPにおそらく単純な答え

curl https://ancient-test.chargebee.com/api/v1/portal_sessions \ 
    -u test_rdsfgfgfddsffds: \ 
    -d customer[id]="EXAMPLE" \ 
    -d redirect_url="https://yourdomain.com/users/3490343" 

{ "エラー":[{ "メッセージ":

$post_data['customer']['id'] = "EXAMPLE"; 
$post_data['redirect_url']  = "http://" . SITE_URL . "/myaccount/"; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,"https://ancient-test.chargebee.com/api/v1/portal_sessions"); 
curl_setopt($ch,CURLOPT_USERPWD,"test_rdsfgfgfddsffds:"); 
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data); 
$output = curl_exec($ch); 
curl_close($ch); 

は、しかし、私はエラーメッセージが表示されます "送信中にエラーが発生しました"}、{ "PARAM": "顧客を[ID ] "、" message ":" blaできませんnk "}]}

ありがとうございました!

ここにカールを使用して月

+0

は '$ customer ['id']'空ですか? – Kisaragi

+0

プロジェクトでDoctrineを使用していますか? – Tobias

+0

phpのcurl拡張は、多次元配列(afaik)を処理しません。 'curl_setopt($ ch、CURLOPT_POSTFIELDS、http_build_query($ post_data));'を使うか、一次次元配列キーを手作業で作成する必要があります。ただし、現在のコードで配列から文字列への変換に関する警告が生成されるはずです。表示されたコードがあなたがテストしたコードであると確信していますか? – Rangad

答えて

-1

はおそらく答えPosting with PHP and Curl, deep array

$post_data['customer[id]'] = "EXAMPLE"; 

Guzzleは、あなたの人生は道楽になりますPHPで素晴らしいHTTPクライアントライブラリラッピングカールでいます:)

guzzle v6では、PHPコードは次のようになります。

$client = new GuzzleHttp\Client(); 
$res = $client->request('POST', 'https://ancient-test.chargebee.com/api/v1/portal_sessions', [ 
    'auth' => ['test_rdsfgfgfddsffds', 'password'], 
    'json' => [customer => [id => 'EXAMPLE']] 
]); 
+0

Guzzleを使いたいですが、Composerが必要です。これは共有ホスティング環境にはありません。 –

+0

私は自分の答えを更新しました。試しましたか? – olaurendeau

関連する問題