Stripe получить введенный почтовый индекс - PullRequest
0 голосов
/ 13 марта 2019

Я использую Stripe PaymentIntents и мне нужно получить введенный почтовый индекс при использовании handleCardPayment (), кто-нибудь знает, как получить эту информацию, чтобы я мог сохранить только почтовый индекс?

cardButton.addEventListener('click', function (ev) {
ev.preventDefault();
stripe.handleCardPayment(
    clientSecret, cardElement, {
        source_data: {
            owner: {
                name: cardholderName.value,
                address: {
                    line1: cardholderAddress,
                    line2: cardholderAddress2,
                    city: cardholderTown,
                    county: cardholderCounty
                },
                email: cardholderEmail,
                phone: cardholderTel
            }
        }
    }
).then(function (result) {
    if (result.error) {
        // Display error.message in your UI.
        //alert("NO!!!!!!!!!!")
        var errorElement = document.getElementById('payment-errors');
        errorElement.textContent = result.error.message;
    } else {
        // The payment has succeeded. Display a success message.

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

        // Submit the form
        form.submit();
    }
});

1 Ответ

0 голосов
/ 13 марта 2019

Если кому-то еще это нужно, я получил его с помощью предложения karllekko на стороне сервера, как показано ниже:

СТОРОНА КЛИЕНТА

stripe.handleCardPayment(
    clientSecret, cardElement, {
        source_data: {
            owner: {
                name: cardholderName.value,
                address: {
                    line1: cardholderAddress,
                    line2: cardholderAddress2,
                    city: cardholderTown,
                    county: cardholderCounty
                },
                email: cardholderEmail,
                phone: cardholderTel
            }
        }
    }
).then(function (result) {
    if (result.error) {
        // Display error.message in your UI.
        var errorElement = document.getElementById('payment-errors');
        errorElement.textContent = result.error.message;
    } else {
        // The payment has succeeded. Display a success message.

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

        var hiddenInput = document.createElement('input');
        hiddenInput.setAttribute('type', 'hidden');
        hiddenInput.setAttribute('name', 'srcId');
        hiddenInput.setAttribute('value', result.paymentIntent.source);
        form.appendChild(hiddenInput);

        // Submit the form
        form.submit();
    }
});

СЕРВЕРСТОРОНА

[HttpPost]
public ActionResult BookingPaymentForm(FormCollection formData, PaymentEventModel model)
{
    model.SourceId = formData["srcId"];
    var service = new SourceService();
    var source = service.Get(model.SourceId);
    var postcode = source.Owner.Address.PostalCode;
}
...