微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何在反应中取消条带中的订阅

如何解决我如何在反应中取消条带中的订阅

我正在使用反应。我想在用户更改订阅计划时删除订阅

这是我的代码

从'@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 Docs 中,它说使用 .del() 但它在这里不起作用。

解决方法

您的 React 代码使用 Stripe.js,这是一个客户端库。它不能修改订阅,只有密钥 API 调用可以执行 Stripe.js 不使用的操作。

您需要发出更新/删除订阅的请求,您需要使用 stripe-node 库和您的 API 密钥:https://stripe.com/docs/api/subscriptions/cancel?lang=node 在服务器端(在您的 Firebase 应用中)发出​​请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。