Ionic 3 с полосой и woocommerce-api

Я работаю над приложением Ionic 3 с API WooCommerce. В настоящее время я использую полосу для обработки платежей... Я смог получить токен карты с полосы после первоначальной проверки карты, но я потерял счет при создании платежа с карты.

Часть моего кода

component.html

<ion-content>

<div class="form-row">
  <div id="card-element">
    <!-- a Stripe Element will be inserted here. -->
  </div>

  <!-- Used to display Element errors -->
  <div id="card-errors" role="alert"></div>
</div>

<button ion-button block large>Make Payment</button>

component.ts

export class CardPage {
  stripe = Stripe('pk_test_**********');

  setupStripe() {
    let elements = this.stripe.elements();
    var style = {
      base: {
        color: '#32325d',
        lineHeight: '24px',
        fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
        fontSmoothing: 'antialiased',
        fontSize: '16px',
        '::placeholder': {
        color: '#aab7c4'
      }
    },
    invalid: {
    color: '#fa755a',
    iconColor: '#fa755a'
  }
};

this.card = elements.create('card', { style: style });

this.card.mount('#card-element');

this.card.addEventListener('change', event => {
  var displayError = document.getElementById('card-errors');
  if (event.error) {
    displayError.textContent = event.error.message;
  } else {
    displayError.textContent = '';
  }
});

var form = document.getElementById('payment-form');

form.addEventListener('submit', event => {
  event.preventDefault();

  this.stripe.createToken(this.card).then(token => {

    if (token.error) {

      var errorElement = document.getElementById('card-errors');
      errorElement.textContent = token.error.message;
    } else {

      console.log(token);
      this.stripeTokenHandler(token);
    }
  });
});
}

stripeTokenHandler(token) {
  var form = document.getElementById('payment-form');
  var hiddenInput = document.createElement('input');
  hiddenInput.setAttribute('type', 'hidden');
  hiddenInput.setAttribute('name', 'stripeToken');
  hiddenInput.setAttribute('value', token.id);
  form.appendChild(hiddenInput);

  // Submit the form

   form.onsubmit();
  }
 }

Используя это, моя цель состоит в том, чтобы иметь возможность списывать с карты пользователя желаемую сумму продуктов. Stripe говорит, что я должен отправить токен на сервер, но я не могу понять, как... пожалуйста, как мне этого добиться?

1 ответ

Решение

С полосой api in ionic вы можете получить только карточный токен и проверить карточку. Вы должны отправить токен карты на свой внутренний сервер, чтобы зарядить держателя карты.

take card details -> obtain card token -> send to backend -> charge card

перейдите по этой ссылке для зарядки бэкэнд-сервера.

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