Задать вопрос
@gitdev

Кнопка подписки по paypal, как отследить платеж?

Можно ли создать кнопку подписки по paypal, чтоб она открывалась в iframe или как минимум с возможность отследить что пользователь произвел платеж.
Кнопку обычной оплаты создал с помощью js (пример кнопки ниже). Нужна кнопка подписки по paypal, в идеале чтоб она тоже открывалась через iframe программно, но подойдет вариант с возможностью отслеживать это событие через перед адресацию.
//var sum = parseFloat($('#payment_total_sum').text()).toFixed(2);
    paypal.Button.render({
        env: 'sandbox', // sandbox | production
        // PayPal Client IDs - replace with your own
        // Create a PayPal app: https://developer.paypal.com/developer/applications/create
        client: {
            sandbox: 'cawcaw-wcaw',
            production: 'Access to site'
        },
        // Show the buyer a 'Pay Now' button in the checkout flow
        commit: true,
        // payment() is called when the button is clicked
        payment: function (data, actions) {
            // Make a call to the REST api to create the payment
            return actions.payment.create({
                payment: {
                    transactions: [
                        {
                            amount: {total: '0.01', currency: 'USD'}
                        }
                    ]
                }
            });
        },
        // onAuthorize() is called when the buyer approves the payment
        onAuthorize: function (data, actions) {
            // Make a call to the REST api to execute the payment
            return actions.payment.execute().then(function () {
                $.ajax({
                    method: "POST",
                    url: $('.do_pay_form').attr('action'),
                    //data: $('.payment_form').serialize(),
                    //data: $('.payment_form').serialize() + $(this).serialize(),
                    data: $('.do_pay_form, .payment_form').serialize(),
                    dataType: 'json',
                    success: function (data) {
                        if (data.status == 200) {
                            $('.do_pay_form')[0].reset();
                            $('.payment_form')[0].reset();
                            $('.paid-model').modal('show');
                        } else {
                            $('#' + data.error.key).addClass('input_container_error');
                        }
                    },
                    beforeSend: function () {
                    }
                });
            });
        }
    }, '#paypal-button-container');
  • Вопрос задан
  • 323 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы