这是我有的两个脚本
脚本 1:
<?
include('config.php');
$json = $_POST['payload'];
$fine = var_dump($json);
$secret = "78f12668216b562a79d46b170dc59f695070e532";
$obj = json_decode($json, true);
$fp = fopen('data.txt', 'w');
fwrite($fp, $json);
fwrite($fp, $fine);
fclose($fp);
if(sha1($json . $secret) == $_POST['signature']) {
$conversion_id = md5(($obj['amount']));
echo "OK";
echo $conversion_id;
mysql_query("INSERT INTO completed (`id`,`uid`,`completedid`) VALUES ('','".$obj['uid']."','".$conversion_id."')");
} else {
}
?>
脚本 2:
<?
$json = $_POST['payload'];
$secret = "78f12668216b562a79d46b170dc59f695070e532";
$obj = json_decode($json);
if(sha1($json+$secret) == $_POST['signature']) {
print "OK";
} else {
}
?>
这里的问题是它返回所有 NULL 值。我不是 JSON 专家,所以我不知道这里发生了什么。我真的无法测试它,因为信息来自外部网站,发送如下信息:
{
payload: {
uid: "900af657a65e",
amount: 50,
adjusted_amount: 25
},
signature: "4dd0f5da77ecaf88628967bbd91d9506"
}
该站点允许我测试脚本,但由于 json_decode 提供 NULL 值,它不会通过签名块。
根据谷歌浏览器的开发工具,当我尝试从他们的服务器测试脚本时它发送的响应是{"error":"The start uri returned a non-200 response."}
它给我的所有信息,它没有说明正在发送的内容,只是收到
有什么方法可以让我自己测试吗?或者这个脚本中是否有我刚刚查看过的简单错误?
编辑
我设置了一个文件来写入正在传递的信息,这就是他们的服务器发送的信息
{"job_id":1337,"job_title":"CrowdFlower test job","amount":30,"uid":"inspire","adjusted_amount":50}
起初有斜线,所以我添加stripslashes()
到$json
变量中,显然摆脱了斜线,但是一旦它击中json_decode()
它就不会拉信息传递的信息有什么问题吗?