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

Stripe更新PaymentMethod提示No such PaymentMethod错误如何解决

错误原因
  • Stripe的paymentMethods.update接口第一个入参要求传入PaymentMethod ID(格式为card_开头的字符串),你调用更新方法时传入的是stripeCustomer.id也就是客户ID(格式为cus_开头,即报错信息里的cus_JztknPBEnl5h8x),系统无法匹配到对应ID的PaymentMethod对象,因此抛出错误。
  • 你调用getAllStripePayments拿到的是指定客户名下所有支付方式的列表,返回结果中data数组内每一项的id字段才是需要用到的PaymentMethod ID,你没有从返回结果中提取该ID就直接传入了客户ID,是问题的根源。
解决方法

先从查询支付方式的返回结果中提取目标PaymentMethod的ID,再传入更新方法即可,修正后的调用代码如下:

const paymentMethodList = await this.stripeApi.getAllStripePayments(stripeCustomer.id);
console.log(JSON.stringify(paymentMethodList));
const updateModel = {
  billing_details: {
    phone: customerMeta.phoneNumber,
  },
};
// 提取第一个支付方式的ID,若有多个支付方式需更新,可遍历data数组处理
const targetPaymentMethodId = paymentMethodList.data[0].id;
const updatePaymentMethod = await this.stripeApi.updateStripePaymentMethods(targetPaymentMethodId, updateModel);
console.log(updatePaymentMethod);

注意:如果客户名下存在多个支付方式,不要直接取下标为0的对象,需根据业务逻辑筛选出你需要更新的对应支付方式后再提取ID,避免错误修改其他支付方式的信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:54:02