首页 > 解决方案 > JQuery-step and Stripe - 卡挂载

问题描述

我有一个使用 JQuery.steps 的注册/注册页面。在页面加载时执行以下代码。

var elements = stripe.elements();
var card = elements.create('card');
card.mount('#card-element');

因此,一旦页面加载完毕并进入付款步骤,我就会看到该元素显示在我的页面上,其中包含 CC 字段、到期日等。

我需要的是,一旦用户进入付款步骤,我需要将卡信息发送到我的 Nodejs 服务器代码,以便创建客户信息和付款信息。我的目标是能够获得信用卡的最后 4 位数字,以便在提交之前向用户展示。为此,我调用了提供最后 4 位数字的 createToken 函数。

所以在最后一步之前,(用户输入了信用卡信息并按下了下一步(当前索引 = 0,下一个索引 1))我有以下代码:

onStepChanging: function(event, currentIndex, newIndex) {
   if (currentIndex == 0 && newIndex == 1) {
      stripe.createToken(card).then(function(result) { // <-- this is where the error happens
      if (result.error) {
         var errorElement = document.getElementById('card-errors');
         errorElement.textContent = result.error.message;
         return false;
      },
   }
onFinishing: function(event, currentIndex) {
   stripe.createPaymentMethod({
       type: 'card',
       card: card,
   })
   .then((result) => {
       if (result.error) {
          displayError(error);
       } else {
          var fd = new FormData();
          fd.append('customerId', customerId);
          fd.append('paymentMethodId', paymentMethodId);
          ...          

不幸的是,一旦调用 stripe.createToken(card) 我就会收到以下错误:

IntegrationError:我们无法从指定的元素中检索数据。请确保您尝试使用的元素仍处于安装状态。

我基本上无法将卡信息发送到我的 nodejs 服务器。

有什么建议吗?

标签: node.jsstripe-paymentsjquery-steps

解决方案


推荐阅读