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

Laravel 11接收Postman请求参数为null/undefined致Stripe支付报错

解决Laravel无法接收POST请求参数对接Stripe的问题

核心问题分析

硬编码参数能成功调用Stripe API,但通过Postman传参时amount和currency为null,说明请求参数未被Laravel正确解析,而非Stripe逻辑问题。

分步解决方案

1. 检查Postman请求格式

  • 确保请求头添加Content-Type: application/json,Laravel默认只会解析带该头的JSON请求体。
  • 确认请求体选择raw -> JSON格式,不要用form-data或x-www-form-urlencoded,否则JSON参数无法被解析。

2. 修正Laravel参数获取方式

替换原代码中的$request->input(),用更明确的JSON参数获取方法:

// 方式1:直接通过属性获取
'amount' => intval($request->amount),
'currency' => $request->currency,

// 方式2:明确从JSON中获取
'amount' => intval($request->json('amount')),
'currency' => $request->json('currency'),

3. 添加参数验证(可选但推荐)

在控制器方法开头加入验证逻辑,快速定位参数是否正确接收:

$validated = $request->validate([
    'amount' => 'required|integer|min:50', // USD最低50分(0.5美元)
    'currency' => 'required|string|size:3',
]);

如果参数未正确传入,Laravel会直接返回422错误,提示缺失的参数。

4. 修正命名空间笔误

控制器中illuminate\Http\Request的首字母需大写,改为Illuminate\Http\Request,符合Laravel规范:

use Illuminate\Http\Request;

5. 调试参数接收情况

在控制器方法开头加入调试代码,查看Laravel实际接收的参数:

dd($request->all()); // 打印所有接收的参数

如果输出为空数组,说明请求格式有问题;如果有参数则证明获取方式需要调整。

测试验证

完成上述调整后,用Postman重新发送JSON格式的POST请求,此时amount和currency应该能被正确解析,成功调用Stripe API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:42:17