Stripe API“此付款意图没有有效的付款方式类型。”

21 backend express stripe-payments

正如您可以想象的那样,我目前正在使用 Stripe 设置支付 API。问题是,我以前从未做过这样的事情,并且几乎是一一遵循文档。

所以我需要使用(100%正确!)键进行条纹。

const stripe = require("stripe")(
  "keyhere"
);
Run Code Online (Sandbox Code Playgroud)

在方法中创建意图...

const paymentIntent = stripe.paymentIntents.create({
  amount: process.env.AUDIT_PRICE,
  currency: "eur",
  automatic_payment_methods: { enabled: true },
});
Run Code Online (Sandbox Code Playgroud)

在某个快速路线上调用该方法:

exports.createNewCashOrder = async (req, res) => {
  const intent = await paymentIntent();
  res.json({ client_secret: intent.client_secret });
};
Run Code Online (Sandbox Code Playgroud)

其余的现在无关紧要,因为我的后端服务器甚至没有在本地主机上启动。实际上它的存活时间约为 0.001 秒,然后因以下错误而崩溃:

StripeInvalidRequestError:此付款意图没有有效的付款方式类型。请确保您已激活与您在仪表板中选择的货币兼容的付款方式

它还发送回一个大错误对象,最后它说几乎所有内容(还有付款方式)都未定义。

错误

现在在我的仪表板上,我确实激活了卡支付,但它显然无法识别它......

有什么想法我做错了什么吗?很高兴获得任何帮助!

Rya*_*anM 54

这只是一种预感,但您的金额是否太小?\n https://stripe.com/docs/api/ payment_intents/create#create_ payment_intent-amount

\n

如果是这种情况,您会收到此错误,因为您指定了

\n
automatic_payment_methods: {enabled: true}\n
Run Code Online (Sandbox Code Playgroud)\n

Stripe 正在寻找一种可以处理低于最低金额的付款方式,因此您会收到此错误。尝试指定付款方式,看看您是否收到指示金额过低的其他错误消息。

\n

请记住文档指出金额表示为

\n
\n

一个正整数,表示以最小货币单位收取多少费用(例如,100 美分收取 1.00 美元,或 100 收取 \xc2\xa5100,一种零小数货币)。

\n
\n

更新

\n

从 Stripe API 版本2023-08-16 automatic_payment_methods开始,默认启用。automatic_payment_methods这意味着如果您使用的是最新版本,则可能会遇到此错误,而无需在对 Payment Intent API 的请求中指定。

\n

  • 就我而言,我的测试量太低 (3认同)