Stripe集成时出现致命错误 提示需提供source或customer该如何解决?
Stripe 400报错「Must provide source or customer」原因及修复
报错原因
- Stripe API参数对大小写敏感,你代码中传入的
Source、Description参数首字母大写,不符合Stripe要求的全小写参数规范,导致平台无法识别你传入的支付凭证,因此判定缺少必填的source或customer参数。 - 额外排查项:需确认前端提交的
stripeToken为有效值,若$_POST['stripeToken']为空,也会触发同类报错。
修复方案
调整参数名为全小写,同时可增加token非空校验避免无效请求,修复后代码如下:
<?php include('config.php'); $price = 500; $name = "augermates"; // 新增token有效性校验 if (empty($_POST['stripeToken'])) { die("支付凭证获取失败,请检查前端提交逻辑"); } $token = $_POST['stripeToken']; $data = \Stripe\Charge::create(array( "amount" => 500, "currency" => "USD", "description" => "augermates", "source" => $token )); echo "<pre>"; print_r($token); ?>
注:当前Charge接口是Stripe旧版支付接口,新的集成建议使用PaymentIntent接口支持3DS等更多支付校验能力,现有兼容场景下按上述调整参数即可正常运行。
内容的提问来源于stack exchange,提问作者Rasheed Ur Rehman
相关产品推荐
相关产品推荐

