Создайте токен с помощью настраиваемой формы

    **HTML**

 <div ref = "addCardForm"  id = "card-element">

                <div class = "card_digit_text">Card Number
       <input type = "text" id = "cardDigit" name = "email" placeholder = "0000 0000 0000 0000">
                </div>




           <div class = "card_year_text">Expiry Date
                <input type = "text" id = "cardYear" name = "email" placeholder = "MM/YY"> </div>

                 <div class = "card_cvc_text">CVC
                <input type = "text" id = "cardCVC" name = "email" placeholder = "CVC"></div> 
            </div>

**JS**
    export default {
      data() {

     return {
        elements:null,
        elementArray: [],
     }
      },
      methods: {
        saveCard: function() {
          let stripe = Stripe("pk...");




          stripe.createToken(this.elementArray[0]).then(function(result) {



          });
        },

        mounted: function() {
          this.elements = stripe.elements();
          var cardNumber = this.elements.create("cardNumber");
          this.elementArray.push(cardNumber);
          cardNumber.mount("#cardDigit");
          var cardExpiry = this.elements.create("cardExpiry");
          this.elementArray.push(cardExpiry);
          cardExpiry.mount("#cardYear");
          var cardCvc = this.elements.create("cardCvc");
          this.elementArray.push(cardCvc);
          cardCvc.mount("#cardCVC");
        }
      }
    };
    </script>

Я пытаюсь реализовать функцию «добавить карту» с помощью полосы с помощью данных, которые я ввожу в созданную форму. Однако это ошибка, которую я получаю: Неперехваченная (в обещании) Ошибка: вы должны предоставить элемент полосы или допустимый тип токена для создания токена.

Вы нашли решение этой проблемы?

Daniel Flippance 02.09.2018 08:18

Да. Вы сталкивались с такой же проблемой?

heyr 03.09.2018 10:06

Чувак, @HeyabRedda, я не знаю, троллит ли ты или что, это лучший пример того, что я когда-либо видел: xkcd.com/979

harrisjb 06.02.2019 14:36

@harrisjb обновлен, должно быть, я забыл обновить этот пост, извините!

heyr 06.02.2019 14:52
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
4
542
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
    <template>

        <form class = "cardInputForm" id = "cardInputForm" @submit.prevent = "addCard">
          <div class = "cardnum">
            <p class = "cardText">Card number</p>
            <div id = "stripeCardNumber" class = "ca" ref = "stripeCardNumber"></div>
          </div>

          <div class = "expiry">
          <p class = "expiryText">Expiry date</p>
          <div name = "cardExpiry" class = "ex" id = "stripeCardExpire" ref = "stripeCardExpire"></div>
          </div>

          <div class = "cvc">
          <p class = "cvcText">CVC</p>
          <div name = "cardCvc" class = "cv" id = "stripeCardCvc" ref = "stripeCardCvc"></div>


        </form>
        <buttons-vue type = "buttonGreenBackground buttonForInsetShadow buttonForInsetShadow:hover" form = "cardInputForm" class = "addCardButton" text = "add card"></buttons-vue>

      </div>  
    </template>


    <script>

    data() {

      return: {
          stripeElements: {},
          stripe: null,
          elements: null,
       },

    methods: { 
      addCard: function(){
      this.stripe.createToken(this.stripeElements.cardNumber).then(result => {

      do something here...
}

   }
}

       mounted: function(){
          this.stripe = Stripe(process.env.stripe_key);
        this.elements = this.stripe.elements();
        this.stripeElements.cardNumber = this.elements.create('cardNumber', {
          style: {
            base: {
              'fontSize': '16px',
              'lineHeight': '28px',
              '::placeholder': {
                color: '#CCC',
              },
            }
          }
        });
        this.stripeElements.cardExpiry = this.elements.create('cardExpiry', {
          style: {
            base: {
              'fontSize': '16px',
              'lineHeight': '28px',
              '::placeholder': {
                color: '#CCC',
              },
            }
          }
        });
        this.stripeElements.cardCvc = this.elements.create('cardCvc', {
          style: {
            base: {
              'fontSize': '16px',
              'lineHeight': '28px',
              '::placeholder': {
                color: '#CCC',
              },
            }
          }
        });

        this.$nextTick(() => {
          this.stripeElements.cardNumber.mount('#stripeCardNumber');
          this.stripeElements.cardExpiry.mount('#stripeCardExpire');
          this.stripeElements.cardCvc.mount('#stripeCardCvc');
        });

       }
    }
    </script>

Другие вопросы по теме