繁体   English   中英

应用内购买的php脚本

[英]php script for in-app purchase

我正在做一个使用应用程序内购买功能的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专家,并且服务器不在我的直接控制之下。 谁能建议我解决问题或测试哪种方法的方法?

谢谢

如果curl_exec()失败,它将返回一个布尔值FALSE。 您盲目地将响应输入json_decode,并假设您会得到一些结果。 解码布尔值false会给您一个空的var。 相反,请尝试以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM