2016-03-30 9 views
0

Ich bin neu in PHP zu locken ... und ich frage mich, wie diese curl Befehl in PHP zu transformieren:Locken mit Array PHP, wahrscheinlich einfache Antwort

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" 

Ich habe Gerade jetzt bekam :

{ "Fehler": [{ "message":

$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); 

Aber ich die Fehlermeldung "Es während einreichen Fehler waren"}, { "param": "Kunde [id ] "," message ":" kann nicht bla sein nk "}]}

Vielen Dank für Ihre Hilfe!

Jan

+0

ist '$ customer ['id']' leer? – Kisaragi

+0

Verwenden Sie Doctrine in Ihrem Projekt? – Tobias

+0

php's Curl-Erweiterung behandelt nicht multidimensionale Arrays (afaik). Sie sollten 'curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query ($ post_data)));' verwenden oder den Array-Schlüssel der ersten Dimension von Hand erstellen. Ihr aktueller Code sollte jedoch eine Array-zu-String-Konvertierungswarnung generieren. Sind Sie sicher, dass der angezeigte Code der ist, mit dem Sie testen? – Rangad

Antwort

-1

curl hier verwenden ist wahrscheinlich die Antwort Posting with PHP and Curl, deep array

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

Guzzle ist eine ehrfürchtige HTTP-Client-Bibliothek Verpackung Curl in PHP, die Ihr Leben wird viel einfacher :)

Mit guzzle v6 würde Ihr PHP-Code wie folgt aussehen:

+0

Würde gerne Guzzle verwenden, aber es erfordert Composer ..., die ich nicht in einer Shared Hosting-Umgebung habe. –

+0

Ich habe meine Antwort aktualisiert, hast du es versucht? – olaurendeau