首页 > 解决方案 > Stripe 获取输入的邮政编码

问题描述

我正在使用 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();
    }
});

标签: stripe-payments

解决方案


万一其他人需要这个,我已经在服务器端使用 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;
}

推荐阅读