付款成功后,页面将数据发布到我的服务器页面。我只能通过
读取数据foreach($_POST as $key => $value)
{
file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}
这个php代码并写入文本文件 但不要通过普通的变量获得任何数据。
例如,如果我通过$ _POST [' status']调用,则通过发布数据发送的状态密钥我没有通过它获得任何价值。
所以这里发生的事情我是出于想法。 所以请在这里指导我获取发布数据。
文档定义数据发送方法和加密类型在application / x-www-form-urlencoded
我的php文件代码将帖子数据重定向到
<?php
session_start();
echo "post Data:"; print_r($_POST); //Nothing Show
$filename = "webhook_data2.txt";
foreach($_POST as $key => $value)
{
file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}
file_put_contents($filename, "----------\n", FILE_APPEND);
?>
此文件的工作和输出如下:
buyer_name: xxxx xxxxx xxxxx
offer_slug: xxxx xxxxxx xxxxx
currency: INR
custom_fields: {"Field_42842": {"value": "xxxxx@xxxx.org", "required": "on", "type": "char", "label": "Email Mentioned on the Form"}, "Field_85492": {"value": "XXX XXX XXX", "required": "on", "type": "char", "label": "Student Name"}}
status: Credit
quantity: 1
variants: []
payment_id: MXXXXXXXXXXXX
buyer: xxxxx@xxxx.org
amount: xxxx.00
fees: 0.xx
buyer_phone: ############
offer_title: ###### #### #########
mac: ******************
unit_price: ##.00
答案 0 :(得分:0)
检查帖子是否发送
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = '';
foreach($_POST as $key => $value) {
$data .= "$key: $value" . PHP_EOL;
}
//write data
file_put_contents($filename, $data);
} else {
die('POST REQUEST IS NOT SEND');
}
此外,如果您的POST数据是原始的,那么您可以从名为php://input
的流中读取它,其中包含从流中读取的函数
file_get_contents(`php://input`);
阅读RAW帖子并保存,您可以使用下面的代码
file_put_contents($filename, file_get_contents(`php://input`));
如果您的请求是RAW格式,例如JSON / XML,则无法自动映射到$ _POST,您需要自己解码输入,例如,如果是json,则使用json_decode,如果是xml则你可以使用DOM或simplexml。来自手册:
$_POST
当使用application / x-www-form-urlencoded或multipart / form-data作为请求中的HTTP Content-Type时,通过HTTP POST方法传递给当前脚本的关联变量数组。
答案 1 :(得分:0)
实际上,由于各种原因,有时$ _POST是空的。当这种情况发生在我身上时,总是可以阅读php://input
比如$postdata = file_get_contents("php://input");
$ postdata现在是json-string,您可以将其转换为如下数组:
$arr = json_decode($postdata, true);
然后你应该能够做到:
foreach($arr as $key => $value)
{
file_put_contents($filename, "$key: $value\n", FILE_APPEND);
}