Stipe Checkout表单不会将令牌发送到服务器

时间:2018-12-01 12:25:55

标签: node.js forms server stripe-payments

我正在尝试将条纹签出表单集成到我的网站上,该表单是从heroku上的node.js服务器运行的。

条纹提供了收集付款信息的表格:

diff = getDiff(a, b);

这是条纹给出的说明: 简单的集成使用付款表格中的 <form action="/updatepayment" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_DNdN11LpouG0f1x4_____" data-amount="999" data-name="[Name]" data-description="Widget" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto"> </script> </form> 标签来呈现蓝色的Checkout按钮。完成Checkout流程后,Checkout会将您的表单提交给服务器,并附带stripeToken和表单包含的任何元素。在页面上添加以下代码时,请确保表单在action属性内提交给您自己的服务器端代码

我也尝试了不同的数据键,但均未成功。提交表单后,页面将重定向到当前页面,然后url中包含令牌,但没有任何内容发送到服务器。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法 只需添加

<script src="https://checkout.stripe.com/checkout.js"></script>

在index.html文件中 并在组件html文件中添加<button (click)="openCheckout()">Purchase</button>

并在ts文件中添加以下代码

openCheckout() {
    var tok=this;
    var handler = (<any>window).StripeCheckout.configure({

      key: '',  // Enter your publishable key
      locale: 'auto',
      token: function (token: any) {
        tok.token1(token);
      }

    });

    handler.open({
      name: 'Food Style',
      description: 'Payment',
      amount: this.price * 100,
    });

  }

  token1(token){
    console.log(token);
    this.paymentservice.defaultcard(token)
    .subscribe((result)=>{
      console.log(result);
    },
    (err)=>{
      console.log(err);
    })
  }