2017-07-05 2 views
0

JSON schlecht formatiert ist oder es enthält ungültige Zeichen, versuchte einige Vorschläge, aber immer noch denselben Fehler zu erhalten helfen Sie bitte auf das folgende ist mein json Posting mit curlFehler JSON Empfang schlecht formatiert ist oder es enthält ungültige Zeichen php curl

komplett curl Anfrage

$url='https://sandbox.interswitchng.com/api/v2/quickteller/payments/transfers'; 
    $postdata='{ 
      "mac":"9F4E4F53C57BE63E1F08D8F07A7BC1A9461E4A7D5304043DAA1EF54BD727B6CDE148F4FBFC5E2AD8C4A60F78DFA76304DE671FBEB70657B1628F14B6B6BAA5E1", 
      "beneficiary":{ 
       "firstname":"chi", 
       "lastname":"chi", 
       "othernames":"chi" 
       }, 
      "initiatingEntityCode":"FIB", 
      "initiation":{ 
       "amount":"100000", 
       "channel":"7", 
       "currencyCode":"566", 
       "paymentMethodCode":"CA" 
      }, 
      "sender":{ 
       "email":"[email protected]", 
       "lastname":"Phil colins", 
       "othernames":"Phil colins", 
       "phone":"08124888436" 
      }, 
      "termination":{ 
       "accountReceivable":{ 
        "accountNumber":"0012000887", 
        "accountType":"10" 
       }, 
       "amount":"100000", 
       "countryCode":"NG", 
       "currencyCode":"566", 
       "entityCode":"058", 
       "paymentMethodCode":"AC" 
      }, 
      "transferCode":"1016858652542545" 
    }'; 

    $data=json_encode(json_decode($postdata));  
    $ch = curl_init($url);                  
    curl_setopt($ch, CURLOPT_SSLVERSION, 6); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
     'Content-Type:application/json' 
    ));                             


    $result = curl_exec($ch); 



    echo curl_getinfo($ch) . '<br/>'; 
    echo curl_errno($ch) . '<br/>'; 
    echo curl_error($ch) . '<br/>'; 

    var_dump($result); 

aber immer noch der Fehler JSON Empfang schlecht formatiert ist oder es enthält ungültige Zeichen.

+2

Json Syntax scheint korrekt (mit https://jsonlint.com getestet) zu sein. Gibt es einen "semantischen Fehler", den der empfangende Server nicht lesen kann? Können Sie den PHP-Code der Curl-Anfrage anzeigen? – BenRoob

+0

Ja, ich habe es auch versucht. und es funktioniert gut –

+0

Was Sie eigentlich mit dieser Json-Zeichenfolge versuchen? Wenn Sie diese JSON-Zeichenfolge selbst erstellen, entfernen Sie sie, um einen solchen Fehler zu vermeiden. Anstatt eine eigene JSON-Zeichenfolge zu erstellen, erstellen Sie zuerst ein Array mit den Werten und anschließend json_encode(), um JSensting zu erstellen. – Mukesh

Antwort

0

Der JSON ist gültig.

Sie können es konvertieren wird es zu einem Objekt

print_r(json_decode($postdata)); 

tun.

Wenn Sie nur die Formatierung zu entfernen, und haben eine einzeilige string:

echo json_encode(json_decode($postdata)); 
// output: 
// {"mac":"9F4E4F53C57BE63E1F08D8F07A7BC1A9461E4A7D5304043DAA1EF54BD727B6CDE148F4FBFC5E2AD8C4A60F78DFA76304DE671FBEB70657B1628F14B6B6BAA5E1","beneficiary":{"firstname":"chi","lastname":"chi","othernames":"chi"},"initiatingEntityCode":"FIB","initiation":{"amount":"100000","channel":"7","currencyCode":"566","paymentMethodCode":"CA"},"sender":{"email":"[email protected]","lastname":"Phil colins","othernames":"Phil colins","phone":"08124888436"},"termination":{"accountReceivable":{"accountNumber":"0012000887","accountType":"10"},"amount":"100000","countryCode":"NG","currencyCode":"566","entityCode":"058","paymentMethodCode":"AC"},"transferCode":"1016858652542545"} 
+0

Ich habe versucht, aber immer noch gleiche Problem haben, und aktualisiert und überprüfen Sie bitte –

+0

dann Fehler, es ist kein JSON, es ist ein API-Fehler. Aus irgendeinem Grund mag es diese Eingabe nicht. Verfügen Sie über Informationen zur Interaktion mit der API? Fehlen Felder oder haben sie falsche Werte? –

+0

https://confluence.interswitch.com/confluence/display/QPR/Funds+Transfer überprüfen Sie diese URL eine Methode, die ich versuche zu implementieren –

Verwandte Themen