首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular 8中将stripe与定期付款(即订阅)集成

如何在angular 8中将stripe与定期付款(即订阅)集成
EN

Stack Overflow用户
提问于 2020-01-24 00:20:27
回答 3查看 3.2K关注 0票数 1

我正在尝试集成与定期付款的条纹。

我点击了这个链接https://stripe.com/docs/payments/checkout/subscriptions/starting

我知道我必须首先创建一个结帐会话,然后我应该传递会话id以进行进一步的处理。

我能够按照文档创建所有的API,我也能够获得会话id。

但是我被困住了,我怎么才能在前端(即Angular 8)中集成,因为这个文档只为纯js提供。

请让我知道如何在angular 8中集成创建结帐会话和重定向结帐。

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

请给我你的建议

EN

回答 3

Stack Overflow用户

发布于 2020-10-18 06:42:45

代码语言:javascript
复制
import { loadStripe } from '@stripe/stripe-js'; // this is typescript
代码语言:javascript
复制
stripePromise = loadStripe('pk_test_yourpublickeyshglhglglkdgjlrs')  

// Call your backend to create the Checkout session.
代码语言:javascript
复制
// 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);
  }
}
代码语言:javascript
复制
票数 2
EN

Stack Overflow用户

发布于 2020-01-24 05:29:13

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

代码语言:javascript
复制
<script src="https://js.stripe.com/v3/"></script>

然后,您需要在组件的构造函数或ngOnInit中初始化Stripe的实例。

代码语言:javascript
复制
this.stripe = Stripe("pk_text_yourpublishablekey");

最后,当单击按钮或触发重定向事件时,您将使用在服务器上创建的sessionId调用redirectToCheckout

代码语言:javascript
复制
this.stripe.redirectToCheckout({ sessionId: sessionId });
票数 0
EN

Stack Overflow用户

发布于 2020-04-21 07:50:05

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

代码语言:javascript
复制
npm i @stripe/stripe-js

你可以检查一下源码标签下的chrome developer tools来检查它是否加载了。一旦它出现,就在您的组件上加载PubApiKey:

代码语言:javascript
复制
  stripePromise: any = null;
  stripe: any = null;

  constructor(...)
  {
   ...
  this.stripePromise = loadStripe('pk_test_***')
      .then(res => {
        this.stripe = res;
      });
   }

然后,无论你在哪里从后台返回你的会话id,都要进行重定向:

代码语言:javascript
复制
  this.stripe.redirectToCheckout({sessionId: stripeSession_id})
  .then(res => {
     console.log(res);
  })
  .catch(error => {
     console.log(error);
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59882949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档