PHP интеграция с PayPal - отмена ссылки в электронном письме с подтверждением - PullRequest
0 голосов
/ 17 января 2020

Мне нужна помощь с интеграцией PayPal.

Я использую эту библиотеку:

https://github.com/paypal/PayPal-PHP-SDK/wiki/Installation-Composer

и использую WebHooks для получения уведомлений платежей.

Я создаю ссылку для оплаты следующим образом:

        $apiContext = new \PayPal\Rest\ApiContext(
                new \PayPal\Auth\OAuthTokenCredential($paypal_client_id, $paypal_client_secret)
        );

        $apiContext->setConfig([
            'mode'=>$paypal_mode
        ]);

        $payer = new \PayPal\Api\Payer();
        $payer->setPaymentMethod('paypal');

        $amount = new \PayPal\Api\Amount();
        $amount->setTotal('1.00');
        $amount->setCurrency(Config::get('paypal.currency'));

        $transaction = new \PayPal\Api\Transaction();
        $transaction->setAmount($amount);

        $redirectUrls = new \PayPal\Api\RedirectUrls();
        $redirectUrls->setReturnUrl(Uri::create(Config::get('paypal.redirect_url')))
                ->setCancelUrl(Uri::create(Config::get('paypal.cancel_url')));

        $payment = new \PayPal\Api\Payment();
        $payment->setIntent('sale')
                ->setPayer($payer)
                ->setTransactions(array($transaction))
                ->setRedirectUrls($redirectUrls);

         $payment->create($apiContext);
         $payment_url = $payment->getApprovalLink();

Затем я запускаю эту ссылку, авторизируюсь в PayPal и совершаю платеж.

Теперь я получить WebHook с событием PAYMENTS.PAYMENT.CREATED - так, хорошо, но через несколько минут я получаю электронное письмо:

"Хотите завершить платеж PayPal в xxx? До конца sh, go обратно в xxx и дайте ваше окончательное утверждение. "

И текст" дайте ваше окончательное одобрение "связан с моей страницей отмены, которую я ввел в метод setCancelUrl ().

Я не знаю" больше не получаю вебхуки.

У вас есть идеи?

1 Ответ

0 голосов
/ 17 января 2020

См. https://developer.paypal.com/docs/integration/direct/payments/paypal-payments/

Вы достигли шага 3, платеж был создан и утвержден.

Вы, очевидно, пропустили шаг 4, чтобы фактически выполнить платеж и создайте транзакцию PayPal .... так что деньги еще не переведены.


Более того, все вышеперечисленное и ваша работа с PayPal- PHP -SDK относится к старой версии API REST PayPal, v1/payments. Я рекомендую отложить все эти вещи в сторону и вместо этого попробовать новую версию v2 / orders PHP SDK: https://github.com/paypal/Checkout-PHP-SDK

Вот демонстрационная модель лучшего пользовательского интерфейса: https://developer.paypal.com/demo/checkout/# / pattern / server

Вот ссылка для интеграции на стороне сервера: https://developer.paypal.com/docs/checkout/reference/server-integration/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...