Stripe payments 如何将angular 8中的stripe与定期付款(即订阅)集成

Stripe payments 如何将angular 8中的stripe与定期付款(即订阅)集成,stripe-payments,angular8,Stripe Payments,Angular8,我正在尝试将Stripe与定期付款相结合 我跟踪了这个链接 我知道我必须首先创建一个签出会话,然后传递会话id以进行进一步的处理 我能够根据文档创建所有API,也能够获取会话id 但我被困在如何集成前端(即Angular 8)中,因为电子文档只为纯js提供 请让我知道如何在angular 8中集成以创建签出会话和重定向签出 还有一个疑问是,如何在创建结帐会话之前了解已有客户或新客户 请给我您的建议您需要在html基本模板中包含Stripe.js作为普通脚本标记: <script src="

我正在尝试将Stripe与定期付款相结合

我跟踪了这个链接

我知道我必须首先创建一个签出会话,然后传递会话id以进行进一步的处理

我能够根据文档创建所有API,也能够获取会话id

但我被困在如何集成前端(即Angular 8)中,因为电子文档只为纯js提供

请让我知道如何在angular 8中集成以创建签出会话和重定向签出

还有一个疑问是,如何在创建结帐会话之前了解已有客户或新客户


请给我您的建议

您需要在html基本模板中包含Stripe.js作为普通脚本标记:

<script src="https://js.stripe.com/v3/"></script>
最后,当单击按钮或事件触发重定向时,您将使用在服务器上创建的sessionId调用
redirectToCheckout

this.stripe.redirectToCheckout({ sessionId: sessionId });

如果“未定义条带”,请确保正确加载了js.Stripe.com/v3。 用于安装相应的软件包

npm i @stripe/stripe-js
您可以在Sources选项卡下检查chrome开发者工具,以检查是否加载了它。出现后,在组件上加载PubApiKey:

  stripePromise: any = null;
  stripe: any = null;

  constructor(...)
  {
   ...
  this.stripePromise = loadStripe('pk_test_***')
      .then(res => {
        this.stripe = res;
      });
   }
然后,无论从后端返回会话id到何处,都要执行重定向:

  this.stripe.redirectToCheckout({sessionId: stripeSession_id})
  .then(res => {
     console.log(res);
  })
  .catch(error => {
     console.log(error);
  });
从'@stripe/stripe js'导入{loadStripe};//这是打字稿

谢谢,但是它抛出了一个错误,因为Stripe没有定义或者Stripe没有功能。您可能需要执行以下操作:declare let Stripe:any;并确保包含条纹标签。
  this.stripe.redirectToCheckout({sessionId: stripeSession_id})
  .then(res => {
     console.log(res);
  })
  .catch(error => {
     console.log(error);
  });
stripePromise = loadStripe('pk_test_yourpublickeyshglhglglkdgjlrs')  

// Call your backend to create the Checkout session.

// When the customer clicks on the button, redirect them to Checkout.

async checkout() {
  const stripe = await this.stripePromise;
  const { error } = await stripe.redirectToCheckout({
    mode: 'payment',  
    lineItems: [{ price: this.plan, quantity: this.quantity }],
    successUrl: `${window.location.href}/success`,
    cancelUrl: `${window.location.href}/failure`,
  });

  if (error) {
    console.log(error);
  }
}
```