Paypal Smart Button Check Почтовый индекс на Утверждение - PullRequest
1 голос
/ 02 апреля 2020

Проблема: я пытаюсь выяснить, как проверить, соответствует ли почтовый индекс (введенный во время оформления смарт-кнопки PayPal) определенным c требованиям. У меня есть атрибуты объекта createOrder и onApprove. Я хотел бы проверить почтовый индекс, прежде чем я получу платеж, чтобы я мог отклонить его и отменить заказ.

paypal.Buttons(
    {
        createOrder: function(data, actions) {

        // This function sets up the details of the transaction, including the amount and line item details.
            return actions.order.create({
                purchase_units: 
                [
                    {
                        description: "Raffle Tickets",
                        custom_id: $('#cartID').val(),
                        soft_descriptor: "soft_descriptor",
                        amount: {
                            currency_code: "CAD",
                            value: cartVal,
                            breakdown: {
                                item_total: {
                                    currency_code: "CAD",
                                    value: cartVal
                                }
                            }
                        },
                        items: itemList

                    }
                ]
            });
        },
        onApprove: function(data, actions) {

            //id like to check the postal code here, or maybe do an ajax call then on success, call the
            //capture function below to finalize the payment.

            // This function captures the funds from the transaction.
            return actions.order.capture().then(function(details) {
            // This function shows a transaction success message to your buyer.

                $('#details').val(JSON.stringify(details));
                $('#frmConfirm').submit();
            });
        }

    }).render('#paypal-button-container');

1 Ответ

0 голосов
/ 02 апреля 2020
return actions.order.get().then(function(data,actions) {

    console.log(data);
    /* if logic on data.payer.address.postal_code goes here */

    actions.order.capture().then(function(details) { 
        $('#details').val(JSON.stringify(details));
        $('#frmConfirm').submit();
    }
});

Вы упомянули AJAX; Существуют эквивалентные API на стороне сервера, если вы хотите переключиться с этой реализации на стороне клиента на ту, которая использует код на сервере для проверки. В этом случае интерфейс будет выглядеть примерно так: https://developer.paypal.com/demo/checkout/# / pattern / server , и существует вызов API v2 / orders для получения сведений об утвержденном ордере перед его захватом.

...