搭建一个可以接收回调数据的服务器!
如果还没有服务器,可以购买一台按量计费的服务器测试使用,使用完成后,销毁即可,如果已经拥有一台,进行下一步即可。
官网购买 - 按量计费参考文档:
https://cloud.tencent.com/document/product/213/506#.E6.8C.89.E9.87.8F.E8.AE.A1.E8.B4.B9
注:我这里就随意选的一个lnmp的镜像,可以使用其他的镜像,原理都是一样的。
(如果你使用镜像和我使用的这个镜像是一个,就按照下面一步步操作就行了;
如果使用的不是这个镜像,在网站的根目录下创建下面第4、5步的文件,原理都是一样的!)
注:重装系统会清除原有系统中所有数据,谨慎操作
我这里就选择下面截图中的镜像《LNMP环境(50G)》,如果你对lnmp不是很了解的话,建议可以使用和我使用的这个一样的镜像,完全模仿即可。
镜像使用说明,参考此文档:
https://market.cloud.tencent.com/products/9943?productId=9943&_ga=1.30065021.352166134.1560440081
选择镜像、设置密码后,然后开始重装系统,重装系统过程需要一些时间,耐心等待完成:
<!DOCTYPE HTML>
<html>
<body>
<?php
$callback_file = fopen("callback.log", "a+") or die("open_file_error!");
$json = file_get_contents("php://input");
$data = json_decode($json, true);
fwrite($callback_file,var_export($data,true));
fwrite($callback_file, "\n================================================\n");
fclose($callback_file);
echo '
{
"msg": "OK"
}
';
?>
</body>
</html>
===================================================================================
上方代码仅能获取到body体,下面的代码是把body和URI都拿到
===================================================================================
<!DOCTYPE HTML>
<html>
<body>
<?php
// 获取请求的URL
// 如: http://127.0.0.1//callback.php?identifier=admin1&random=99999999
function getUrl()
{
$url = $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['HTTP_HOST'] . "/" . $_SERVER['REQUEST_URI'] . "\n";
return $url;
}
// 获取post请求的body体
function getPostData()
{
$body = file_get_contents("php://input");
return $body;
}
// 获取请求的Header
function getHeader() {
$headers = array();
foreach ($_SERVER as $key => $value) {
if ('HTTP_' == substr($key, 0, 5)) {
$headers[str_replace('_', '-', substr($key, 5))] = $value;
}
if (isset($_SERVER['PHP_AUTH_DIGEST'])) {
$header['AUTHORIZATION'] = $_SERVER['PHP_AUTH_DIGEST'];
} elseif (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$header['AUTHORIZATION'] = base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW']);
}
if (isset($_SERVER['CONTENT_LENGTH'])) {
$header['CONTENT-LENGTH'] = $_SERVER['CONTENT_LENGTH'];
}
if (isset($_SERVER['CONTENT_TYPE'])) {
$header['CONTENT-TYPE'] = $_SERVER['CONTENT_TYPE'];
}
}
return $headers;
}
// 写入文件中
$callback_file = fopen("callback.log", "a+") or die("open_file_error!");
fwrite($callback_file, "\n ============== start ================================== \n");
fwrite($callback_file, "请求的时间:");
fwrite($callback_file, date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']));
fwrite($callback_file, "\n请求的url:");
fwrite($callback_file, getUrl());
fwrite($callback_file, "请求的header:\n");
foreach (getHeader() as $key => $value) {
// echo $key . ":" . $value . "\n";
$header = " " . $key . ":" . $value . "\n";
echo $header;
fwrite($callback_file, $header);
}
fwrite($callback_file, "请求的body体:\n");
fwrite($callback_file, getPostData());
fwrite($callback_file, "\n ============== end ================================== \n");
fclose($callback_file);
// 响应的json内容
echo '
{
"msg": "OK"
}
';
?>
</body>
</html>
[root@VM_1_15_centos ~]# touch /home/wwwroot/default/callback.log
[root@VM_1_15_centos ~]# ll /home/wwwroot/default/callback.log
-rw-r--r-- 1 root root 0 Jun 29 21:51 /home/wwwroot/default/callback.log
[root@VM_1_15_centos ~]# chown www.www /home/wwwroot/default/callback.log
-rw-r--r-- 1 root root 0 Jun 29 21:58 /home/wwwroot/default/callback.log
[root@VM_1_15_centos ~]# ll /home/wwwroot/default/callback.log
-rw-r--r-- 1 www www 0 Jun 29 21:58 /home/wwwroot/default/callback.log
回调url为:http://服务器ip地址/callback.php
回调数据保存的文件:/home/wwwroot/default/callback.log
获取服务器ip地址:
注:如果文章内容存在错误,请指出,以便及时更改,谢谢。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。