Как добавить поля выставления счета и доставки в полосовой шлюз с помощью угловых 7 - PullRequest
2 голосов
/ 07 ноября 2019

В основном мы используем угловой 7 с полосовой оплатой. У нас есть полная форма со всеми полями кредитной карты, такими как номер кредитной карты, срок действия кредитной карты и CCV, кроме этого, у нас есть несколько полей для адресов доставки и выставления счетов.

Пожалуйста, посмотрите код ниже, мы создаемэлемент для чередования, а затем с помощью функции createtoken () сгенерировать токен. Итак, мой вопрос заключается в том, как мы можем добавить поля оплаты и доставки в этот код, чтобы мы могли отправлять их данные в API полосы? и в результате ответа API мы можем получить динамические данные для полей выставления счетов и доставки вместе с сгенерированным токеном

this.stripeService.elements()
      .subscribe(elements => {
        this.elements = elements;
           this.carditem = this.elements.create('cardNumber', {
              style: {
                base: {
                  iconColor: '#c4f0ff',
                  fontSmoothing: 'antialiased',
                  ':focus': {
                    color: 'green',
                  },
                },
                invalid: {
                  iconColor: '#FFC7EE',
                  color: 'red',
                  ':focus': {
                    color: 'brown',
                  },
                  '::placeholder': {
                    color: '#FFCCA5',
                  },
                },
              },
              placeholder: 'Card Number',
           });

          var cvc = this.elements.create('cardCvc', {
            placeholder: 'security code',
          });

          var expiry = elements.create('cardExpiry', {

          });
          var postal = elements.create('postalCode', {
            placeholder: 'Zip/Postal Code',
          });
          this.carditem.mount('#card-number');
          cvc.mount('#card-cvc');
          expiry.mount('#card-expiry');
          postal.mount('#card-postal');

      });
  } 

buy(){

this.stripeService
      .createToken(this.carditem,{name, address_city, address_country})
      .subscribe(result => {
        if (result.token) {
          //result with token
          console.log('result',result.token);


        } else if (result.error) {
          // Error creating the token
          this.error = result.error.message;
          console.log('result',result.error.message);
        }
      });
}

1 Ответ

0 голосов
/ 09 ноября 2019

Платежные реквизиты связаны с самой картой. Это означает, что вы отправите информацию, когда создадите токен на стороне клиента с элементами. Это то, что ваш код уже делает частично, передавая, например, город и страну.

Вы можете увидеть пример в jsfiddle здесь , но код будет выглядеть так:

var options = {
  name: 'name',
  address_line1: 'line1',
  address_line2: 'line2',
  address_city: 'city',
  address_state: 'state',
  address_zip: 'zip',
  address_country: 'country',
};
stripe.createToken(card, options).then(setOutcome);

Для адреса доставки это обычно связано с данным платежом или данным клиентом. Это информация, которую вы собираете отдельно в своей собственной форме и отправляете на сервер для передачи либо Клиенту создание , либо PaymentIntent создание

...