PHP скрипт для покупки в приложении - PullRequest
0 голосов
/ 20 ноября 2010

Я делаю приложение для iPhone / iPad, которое использует функцию покупки в приложении.На стороне сервера я загружаю скрипт php для подтверждения получения.Вот содержимое скрипта:

<?php
$receipt = json_encode(array("receipt-data" => $_GET["receipt"]));
// NOTE: use "buy" vs "sandbox" in production.
$url = "https://sandbox.itunes.apple.com/verifyReceipt";
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_handle, CURLOPT_HEADER, 0);
curl_setopt($curl_handle, CURLOPT_POST, true);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $receipt); 
$response_json = curl_exec($curl_handle);
$response = json_decode($response_json);
curl_close($curl_handle);
print $response->{'status'};
?>

Моя проблема в том, что переменная ответа всегда пуста, я не могу получить ответ.Также response_json пусто, и я не могу понять, в чем проблема.Я думаю, что это что-то на стороне сервера, но я не эксперт php, и сервер не находится под моим непосредственным контролем.Может кто-нибудь предложить мне способ решить проблему или проверить, какой кулод будет?

Спасибо

1 Ответ

1 голос
/ 20 ноября 2010

Если curl_exec() не удастся, он вернет логическое значение ЛОЖЬ. Вы слепо кормите ответ на json_decode и предполагаете, что что-то получите. Расшифровка логического ложного дает вам пустую переменную. Вместо этого попробуйте это:

...
$response_json = curl_exec($curl_handle);
if ($response_json === FALSE) {
    die(curl_error($curl_handle));
}
$response = json_decode($response_json);
...
...