Frage

Kann jemand bitte sagen Sie mir, wo ist der Fehler in diesem Code ?, ich eine mobile iPhone-Anwendung eine PHP-Skript tha nennen Informationen an Apple senden. Apple dann wird ein JSON-Objekt enthält mehrere Werte in einem assoziativen Array zurück.

Ich möchte den ‚Status‘ Wert erreichen, aber jedesmal, wenn ich den Code in das Telefon laufen, das PHP-Skript sendet mir die komplette Apple zurückgegebene Zeichenfolge. Im XCode Debugger den empfangenen String aussieht wie:

  

[DEBUG] ... responseString:   { "Quittung": { "ITEM_ID": "328348691",   "Original_transaction_id": "1000000000081203",   "BVRS": "1,0", "product_id": "julia_01",   "PURCHASE_DATE": "2009-10-05 23.47.00   Etc / GMT“, "Menge": "1",   "Bid": "com.latin3g.chicasexy1",   "Original_purchase_date": "2009-10-05   23.47.00 Etc / GMT“,   "TRANSACTION_ID": "1000000000081203"},   "Status": 0}

, aber das einzige Stück, das ich in der Zeichenfolge Pflege ist der „Status“ Wert. Ich habe bereits in der Dokumentation gesucht, aber die Lösung nicht finden. Ich bin neu in PHP aber zu lange zu bekommen. Hier ist das Skript:

<?php
//The script takes arguments from phone's GET call
$receipt = json_encode(array("receipt-data" => $_GET["receipt"]));

//Apple's url
$url = "https://sandbox.itunes.apple.com/verifyReceipt";

//USe cURL to create a post request
//initialize cURL
$ch = curl_init();

// set the target url
curl_setopt($ch, CURLOPT_URL,$url);

// howmany parameter to post
curl_setopt($ch, CURLOPT_POST, 1);

// the receipt as parameter
curl_setopt($ch, CURLOPT_POSTFIELDS,$receipt);

$result = curl_exec ($ch);
//Here the code "breaks" and return the complete string (i've tested that)
//and apparently doesn't get to the json_decode function (i think something's wrong there, so code breaks here)
curl_close ($ch);

$response = json_decode($result);   

echo $response->{'status'};


?>

Auch wenn ich stelle kein Echo am Ende, gibt das Skript noch eine vollständige Zeichenfolge (ungerade mich)

Danken im Voraus und apollogies wenn ich wieder darauf bestehen, von einer anderen Frage

War es hilfreich?

Lösung

Versuchen Sie, die RETURNTRANSFER Option auf 1, so dass Sie Einstellung erfassen kann als String die Ausgabe von der angeforderten URL. Es scheint, dass das Standardverhalten von cURL ist das Ergebnis direkt an den Browser ausgegeben:

...
$ch = curl_init();

// set the target url
curl_setopt($ch, CURLOPT_URL,$url);

// howmany parameter to post
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // <---- Add this


// the receipt as parameter
curl_setopt($ch, CURLOPT_POSTFIELDS,$receipt);
...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top