stripe.confirmCardPayment 不是函数
Posted
技术标签:
【中文标题】stripe.confirmCardPayment 不是函数【英文标题】:stripe.confirmCardPayment is not a function 【发布时间】:2021-02-26 01:40:20 【问题描述】:当我通过条带创建订阅时,它会给出错误消息 当我通过条纹进行订阅时 我还提供了一些关于仪表板中身份验证的信息,例如 3d 安全身份验证。 我的 cvc_check 在显示仪表板时不可用 1.第一个问题是3d安全认证。 2.cvc在印度检查unavailbel。 我的帐号也是印度
TypeError: stripe.confirmCardPayment is not a function
我的代码是我做错了什么
stripe.customers.create(
name: name,
email: email,
phone: reqObj.phone,
address: "city": reqObj.address, "country": "IN",
"line1": "", "line2": "", "state":"India" ,
,
function (err, customer)
if (err) res.json( "status": false, "error": err )
console.log(err)
else
customer_id=customer.id;
stripe.tokens.create(
card:
number: reqObj.card_no,
exp_month: reqObj.exp_month,
exp_year: reqObj.exp_year,
cvc: reqObj.cvc
,
,
function (err, token)
if (err)
res.json( "status": false, "errorT": err)
else
// stripe.customers.createSource(
// customer_id,
// source: token.id ,
// function (err, card)
// if (err)
// res.json( status: "false", "error": err )
// else
stripe.plans.list(
product: "prod_IMGu6PI2mJbBCi", active: true ,
function (err, plans)
if (!err)
for(i in plans.data)
if(plans.data[i].amount==reqObj.amount)
var myId=plans.data[i].id
stripe.paymentMethods.create(
type: 'card',
card:
number: reqObj.card_no,
exp_month: reqObj.exp_month,
exp_year: reqObj.exp_year,
cvc: reqObj.cvc
,
,function(err,result)
// console.log(err,result)
stripe.paymentMethods.attach(result.id,
customer: customer_id,
,function(err,result1)
// console.log(err,"result1",result1)
stripe.customers.update(
customer_id,
invoice_settings:
default_payment_method: result.id,
,
,function(err,res2)
// console.log(err,"res2")
stripe.subscriptions.create(
customer: customer_id,
items: [ price: myId],
expand: ['latest_invoice.payment_intent'],
,function(err,res3)
console.log(err,"res3",
res3.latest_invoice.payment_intent.client_secret)
a=res3.latest_invoice.payment_intent.client_secret
stripe.confirmCardPayment(
res3.latest_invoice.payment_intent.client_secret,
function(err,paymentIntent)
console.log(err,"paymentIntent",paymentIntent)
)
);
);
);
);
);
// asynchronously called
);
【问题讨论】:
我遇到了同样的问题。你找到解决办法了吗? 【参考方案1】:您的代码将客户端代码和服务器端代码混合在一起,这是行不通的。 stripe.confirmCardPayment()
方法来自 Stripe.js,应该在浏览器内部的 javascript 中调用客户端,而不是使用 Node.js 调用服务器端。
代码的开头是使用正确的默认付款方式 ID 更新客户。然后它正在创建一个订阅。然后,如果创建时未能支付第一张发票,例如卡被拒绝或需要 3D Secure,您必须返回客户端,在浏览器中运行下一步,即确认与订阅发票关联的 PaymentIntent。
所以你需要回到客户端,你最初创建的 PaymentMethod id pm_123456
是你在result.id
中传递的,然后尝试确认 PaymentIntent。
【讨论】:
以上是关于stripe.confirmCardPayment 不是函数的主要内容,如果未能解决你的问题,请参考以下文章