You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取回调API返回的JSON数据?$_POST/$_GET取值为空如何解决

问题根因

$_GET仅能读取URL后缀的查询参数,$_POST仅能读取Content-Type为application/x-www-form-urlencoded、multipart/form-data的表单类请求参数。而回调API通常直接将JSON字符串放在HTTP请求体中发送,PHP不会自动解析这类数据到超全局变量中,因此你读取的参数为空。

实现方案

你需要先读取原始请求体的内容,再手动解析为JSON格式后读取对应字段,示例代码如下:

// 读取HTTP请求原始Body内容
$rawRequestBody = file_get_contents('php://input');

// 空请求校验
if (empty($rawRequestBody)) {
    http_response_code(400);
    exit("empty request body");
}

// 解析JSON为关联数组(第二个参数设为true返回数组,默认返回stdClass对象)
$callbackData = json_decode($rawRequestBody, true);

// JSON格式校验
if (json_last_error() !== JSON_ERROR_NONE) {
    http_response_code(400);
    exit("invalid json format");
}

// 读取对应字段
$type = $callbackData['type'];
$orderContent = $callbackData['content'];
$orderId = $orderContent['id'];

注意事项

  • 多数回调API要求服务端处理成功后返回200类状态码,否则会触发重复推送,处理完业务逻辑后请返回符合对接规范的响应。
  • 生产环境使用建议增加签名校验,避免第三方伪造回调请求引发业务异常。

内容的提问来源于stack exchange,提问作者Everton Thomazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:36:02