首页 > 解决方案 > 使用 Stripe 运行订阅付款而不创建订阅

问题描述

我正在使用 firebase 扩展Run Subscription Payments with Stripe。不过这很奇怪。基本上,有时,订阅集合不会在用户输入他们的详细信息并点击提交后创建,因此必须将它们重定向回第二次工作的条带结帐页面。这种情况有时会发生。它很奇怪。这是我执行该Create Checkout Session功能的代码。

const firestore = firebase.firestore();
const app = firebase.app();


let userID = '';
firebase.auth().onAuthStateChanged(user => {
  if (user) {
    userID = user.uid;
    console.log(user.uid);
  }
});


export async function createCheckoutSession(activtyStatus) {
  // price ID with trial LIVE ID
  let price = 'price_1IGW85KDPaWWeL1yjWsi9oRa';

  if (activtyStatus == 'canceled') {
    price = 'price_1IfmDsKDPaWWeL1ywjMTGarh';
  }

  const checkoutSessionRef = firestore
    .collection('customers')
    .doc(userID)
    .collection('checkout_sessions')
    .add({
      price,
      success_url: 'https://x.com/successPage',
      cancel_url: 'https://x.com/signin'
    });

  // Wait for the CheckoutSession to get attached by the extension
  (await checkoutSessionRef).onSnapshot(snap => {
    const { error, sessionId } = snap.data();
    if (error) {
      // Show an error to your customer and
      // inspect your Cloud Function logs in the Firebase console.
      console.log(`An error occured: ${error.message}`);
    }
    if (sessionId) {
      // We have a session, let's redirect to Checkout
      // Init Stripe

      const stripe = window.Stripe('pk_live');

      console.log('going to stripe: ');

      stripe.redirectToCheckout({ sessionId });
      console.log('logged stripe');
    }
  });
}

有没有人看到任何潜在的问题?

标签: javascriptnode.jsfirebasegoogle-cloud-firestorestripe-payments

解决方案


推荐阅读