我如何在 react 中取消 stripe 中的订阅
how do I cancel Subscription in stripe inside react
我正在使用 React。当用户更改他的订阅计划时,我想删除旧订阅。
这是我的代码。
从“@stripe/stripe-js”导入 {loadStripe, useStripe}
const loadCheckout = async (priceId) =>{
const docRef = await db
.collection('customers')
.doc(user.uid)
.collection('checkout_sessions')
.add({
price:priceId,
success_url:window.location.origin,
cancel_url: window.location.origin,
})
docRef.onSnapshot(async (snap) =>{
const {error, sessionId} = snap.data();
if(error){
alert(`an error occured ${error.message}`)
}
if(sessionId){
const stripe = await loadStripe("pk_test_51JG0BKLXYmn2IpSgISeCDbsCNllISGA3PvEbSzBz5bpo8WTvmqI6UKCbzpxX92LKiN0hftRrobm1J6wJZPCOWSTs0081pmQFJE")
const deleted = await stripe.subscriptions.del(
subscription.id
);
console.log(deleted)
stripe.redirectToCheckout({sessionId});
}
})
}
我的代码报错说 stripe.subscriptions.del 不是一个函数。
如果我删除此行,代码将工作,付款成功。
在 stripe API 文档中它说使用 .del() 但它在这里不起作用。
您的 React 代码使用 Stripe.js 这是一个客户端库。它不能修改订阅,只有密钥 API 调用可以做 Stripe.js 不使用的事情。
您需要向 update/delete 订阅发出请求,您需要使用条带节点库和您的秘密 API 密钥在服务器端(在您的 Firebase 应用程序中)发出请求: https://stripe.com/docs/api/subscriptions/cancel?lang=node.
我正在使用 React。当用户更改他的订阅计划时,我想删除旧订阅。
这是我的代码。
从“@stripe/stripe-js”导入 {loadStripe, useStripe}
const loadCheckout = async (priceId) =>{
const docRef = await db
.collection('customers')
.doc(user.uid)
.collection('checkout_sessions')
.add({
price:priceId,
success_url:window.location.origin,
cancel_url: window.location.origin,
})
docRef.onSnapshot(async (snap) =>{
const {error, sessionId} = snap.data();
if(error){
alert(`an error occured ${error.message}`)
}
if(sessionId){
const stripe = await loadStripe("pk_test_51JG0BKLXYmn2IpSgISeCDbsCNllISGA3PvEbSzBz5bpo8WTvmqI6UKCbzpxX92LKiN0hftRrobm1J6wJZPCOWSTs0081pmQFJE")
const deleted = await stripe.subscriptions.del(
subscription.id
);
console.log(deleted)
stripe.redirectToCheckout({sessionId});
}
})
}
我的代码报错说 stripe.subscriptions.del 不是一个函数。 如果我删除此行,代码将工作,付款成功。 在 stripe API 文档中它说使用 .del() 但它在这里不起作用。
您的 React 代码使用 Stripe.js 这是一个客户端库。它不能修改订阅,只有密钥 API 调用可以做 Stripe.js 不使用的事情。
您需要向 update/delete 订阅发出请求,您需要使用条带节点库和您的秘密 API 密钥在服务器端(在您的 Firebase 应用程序中)发出请求: https://stripe.com/docs/api/subscriptions/cancel?lang=node.