gpt4 book ai didi

javascript - 无法使用 session 更新信用卡

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:37 25 4
gpt4 key购买 nike

我正在尝试使用 StripeCheckout 更新信用卡,我看到另一个用户提出了类似的问题 here .

问题是我无法在不传递任何数量的情况下复制 session 对象,我做到了:

const domainURL = process.env.APP_DOMAIN;

let opts = {
payment_method_types: ["card"],
mode: 'setup',
success_url: `${domainURL}/pay/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${domainURL}/pay/cancel`
};

// Make session
let session = await stripe.checkout.sessions.create(opts);

let url = `${domainURL}/pay/checkout-session?sessionId=${session.id}`;
return url;

上面的代码生成 Stripe session 的 url,并打开以下窗口:

enter image description here

所以这似乎显然有效,但是当我点击“Salva carta”保存卡片时,我得到:

UnhandledPromiseRejectionWarning: Error: Stripe: Argument "id" must be a string, but got: null (on API request to GET /customers/{id})

我也尝试过:

 let opts = {
payment_method_types: ["card"],
mode: 'setup',
setup_intent_data: {
metadata: {
'customer_id': 'customer id',
}
},
success_url: `${domainURL}/pay/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${domainURL}/pay/cancel`
};

如上所述here

但同样的问题

最佳答案

我能够使用以下 session 选项修复此问题:

let opts = {
payment_method_types: ["card"],
mode: 'setup',
setup_intent_data: {
metadata: {
'customer_id': customerData.stripe_id,
}
},
success_url: `${domainURL}/pay/success?session_id={CHECKOUT_SESSION_ID}`,
cancel_url: `${domainURL}/pay/cancel`
};

// Create session
let session = await stripe.checkout.sessions.create(opts);

本质上,要更新信用卡而不收取任何费用,您必须使用 metadata 对象指定 customer_id 参数,该对象是 setup_intent_data 的一部分。

一个重要的注意事项是 session 模式,事实上它的值必须是setup,希望这会对某人有所帮助。

关于javascript - 无法使用 session 更新信用卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com