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

使用Stripe API与cfhttp绑定PaymentMethod到Customer报错问题

报错原因

该报错是请求接口路径不符合Stripe API规范导致的。
Stripe将已存在的PaymentMethod绑定到客户的操作,要求调用专属的attach端点,你当前直接向/v1/payment_methods/{pm_id}路径发起POST请求并传入customer参数时,Stripe的路由逻辑会将该请求识别为PaymentMethod创建流程的异常操作,因此抛出「不能在创建PaymentMethod时绑定客户」的错误。
你传入不存在的PM ID时返回资源不存在的错误,是因为Stripe会优先校验路径中携带的资源ID有效性,校验不通过直接返回对应错误,不会进入后续的操作类型校验环节,因此该测试结果无法证明你调用的接口路径正确。

修复方法

按以下调整即可完成绑定:

  • 修正请求URL,在原有PaymentMethod ID末尾追加/attach路径段,修正后的接口地址格式为https://api.stripe.com/v1/payment_methods/pm_1LCuutGKxC2502V8WNrkE3Ja/attach
  • 原有Authorization请求头、customer表单参数及其他业务传参保持不变即可
  • 额外校验项:你当前传入的客户ID为cust_admin_1,不符合Stripe原生客户IDcus_开头的格式规则,如果不是自定义映射的ID,需要确认对应客户已在Stripe侧成功创建,否则修正路径后会抛出客户不存在的错误。

代码对比

原错误请求:

<cfhttp method="POST" url="https://api.stripe.com/v1/payment_methods/pm_1LCuutGKxC2502V8WNrkE3Ja" result="result">
    <cfhttpparam type="header" name="Authorization" value="Bearer sk_test_51...."> 
    <cfhttpparam type="FormField" name="customer" value="cust_admin_1">
.....
</cfhttp>

修正后请求:

<cfhttp method="POST" url="https://api.stripe.com/v1/payment_methods/pm_1LCuutGKxC2502V8WNrkE3Ja/attach" result="result">
    <cfhttpparam type="header" name="Authorization" value="Bearer sk_test_51...."> 
    <cfhttpparam type="FormField" name="customer" value="cust_admin_1">
.....
</cfhttp>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:27:18