【问题标题】:showing premium stripe subscription after trial ends试用结束后显示高级条带订阅
【发布时间】:2021-04-15 04:39:09
【问题描述】:

我有一个应用程序,我在其中成功设置了条带付款,并进行了试用,然后在 60 天试用后,每月收费 9.99。但是,一旦 60 天到期,我想为用户提供一个选项,改为每年收取 99.99 的一次性费用。

我已经这样做了,但问题是,如果我进入我的应用程序中的管理订阅页面,即使 60 天没有结束,它也会提供 99.99 计划的选项,然后如果我单击更新以移动到那个计划,它并没有取消最初的试用,然后几乎破坏了我的代码。

代码(以防万一)

    export async function createCheckoutSession(){
  let user = firebase.auth().currentUser;

      const checkoutSessionRef =  firestore
      .collection('customers')
      .doc(userID)
      .collection('checkout_sessions')
      .add({
        price: 'price_1Iav0JKDPaWWeL1yBa9F7Aht',
        success_url: "http://localhost:3000/successPage",
        cancel_url: "http://localhost:3000/signup",
    });
      // Wait for the CheckoutSession to get attached by the extension
            (await checkoutSessionRef).onSnapshot(function (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_test');
            stripe.redirectToCheckout({sessionId})
            console.log("logged stripe")
          }
      });
    }

管理订阅功能(firebase api)

  export async function goToBilliingPortal(){
  const functionRef = app
  .functions('us-central1')
  .httpsCallable('ext-firestore-stripe-subscriptions-createPortalLink');
  const {data} = await functionRef({returnUrl : window.location.origin});
  window.location.assign(data.url);
};

有没有办法在试用期结束之前隐藏 99.99 计划?

【问题讨论】:

  • 您能否在此处提供更多详细信息,说明您如何更新订阅以及究竟什么是“破坏”?如果没有更多信息,您似乎可以完全控制在足够的时间过去之前不显示此升级选项。
  • @NolanH 在我调用这个函数之后,它把我带到了条纹页面。我输入你的详细信息没问题,但是一旦我进入我的个人资料页面,然后点击管理订阅,使用上面的功能(我已经编辑了我的问题以显示),然后它会显示两个计划。我只是想知道是否有办法防止这种情况发生,甚至在条纹破折号中?

标签: javascript node.js stripe-payments


【解决方案1】:

您需要自己跟踪trial 状态并在生成客户门户链接时检查它。在试用期间,如果您不希望客户更改为其他计划,您需要创建另一个禁用订阅更新的门户配置 (ref)。

在试用期间,您将在创建门户链接 (ref) 时使用此 configuration。试用后,您可以在允许更改的情况下使用其他配置。

【讨论】:

    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多