Всегда пустое поле PayPal IPN - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь отправить свое настраиваемое поле следующим образом (используя песочницу):

paypal.Buttons({

                            createOrder: function(data, actions) {
                                return actions.order.create({
                                    purchase_units: [{
                                        amount: {
                                            value: dataResponse.value
                                        },
                                        custom: 'SOME_DATA',
                                    }]
                                });
                            },

                            // Finalize the transaction
                            onApprove: function(data, actions) {
                                return actions.order.capture().then(function(details) {
                                    // Show a success message to the buyer
                                    alert('Transaction completed by ' + details.payer.name.given_name + '!');
                                });
                            }


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

Вот так я получаю ответ на сервере (я использую paypal / ipn-code-samples):

$data_text = "";
foreach ($_POST as $key => $value) {
    $data_text .= $key . " = " . $value . "\r\n";
}

А вот так выглядит IPN (часть его):

paypal_ipn_status = RECEIVER EMAIL MISMATCH
paypal_ipn_date = 2020-02-20 12:20:53 +05
mc_gross = 27.00
protection_eligibility = Eligible
address_status = confirmed
payer_id = 6F3VC36BWPQ7J
address_street = \u0443\u043B\u0438\u0446\u0430 \u041F\u0435\u0440\u0432\u0430\u044F
payment_date = 23:20:41 Feb 19, 2020 PST
payment_status = Completed
charset = KOI8_R
address_zip = 127001
first_name = John
mc_fee = 11.05
address_country_code = RU
address_name = Doe John
notify_version = 3.9
custom = 
payer_status = verified
business = sb-gvgju1033031@business.example.com

Может кто-нибудь сказать мне, что я делаю неправильно? Спасибо!

1 Ответ

1 голос
/ 20 февраля 2020

Ну, я нашел ошибку.

вместо этого:

                                return actions.order.create({
                                    purchase_units: [{
                                        amount: {
                                            value: dataResponse.value
                                        },
                                        custom: 'SOME_DATA',
                                    }]
                                });

Нужно использовать это (имя по имени - custom_ id ):

return actions.order.create({
                                    purchase_units: [{
                                        amount: {
                                            value: dataResponse.value
                                        },
                                        custom_id: 'SOME_DATA',
                                    }]
                                });

и теперь я наконец-то получил свое настраиваемое поле в IPN

address_country_code = RU
address_name = Doe John
notify_version = 3.9
custom = SOME DATA

Надеюсь, это кому-нибудь поможет.

...