PayPal перенаправляет на страницу успеха, но не совершает денежную транзакцию (и не требует веб-крюка или уведомления IPN) - PullRequest
0 голосов
/ 18 мая 2018

В некоторые дни я пытаюсь решить проблему с PayPal.Я работаю с PayPal PHP SDK, мое окружение - Linux Server (Ubuntu 16) с установленным Php 7.2 и работающим Laravel 5.6.

Я установил через композитор PayPal php SDK и интегрировал «успешно» в код.Когда я пытаюсь запустить код, я получаю обратно ссылку для осуществления платежа (обычно там, где вы перенаправляете пользователя), чтобы он работал нормально, без проблем с первым запросом или учетными данными API.

Проблема в том, что, если вы перейдете по ссылке оплаты, и я произвел платеж, он перенаправит плательщика на страницу успеха моего веб-сайта, но я не получаю никакой транзакции в моем аккаунте (покупатель иполучатель), а также я не получаю никаких уведомлений о подключении к Интернету или IPN (также как, пользователь должен деньги или профиль пользователя не проверен, просто ничего).

Что я уже пробовал:

  • Включение Live API и попробуйте с реальным профилем PayPal, но я получил ту же проблему.Так что это не проблема.(на PayPal SDK GitHub у кого-то есть проблема с песочницей).
  • Использование Laravel Packege (та же проблема).

Это мой код (но я не думаю, что проблемавот этот):

$_api_context = new ApiContext(new OAuthTokenCredential(
'CLIENT_ID','SECRET'));
    $_api_context->setConfig(array(
        'mode' => env('PAYPAL_MODE', 'sandbox'),
        'log.LogEnabled' => true,
        'log.FileName' => 'PayPal.log',
        'log.LogLevel' => 'DEBUG'
    ));


    $payer = new Payer();
    $payer->setPaymentMethod('paypal');
    $item_1 = new Item();
    $item_1->setName('Item 1') /** item name **/
    ->setCurrency('USD')
        ->setQuantity(1)
        ->setPrice('3'); /** unit price **/

    $item_list = new ItemList();
    $item_list->setItems(array($item_1));
    $amount = new Amount();
    $amount->setCurrency('USD')
        ->setTotal('3');
    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($item_list)
        ->setDescription('Your transaction description');

    $redirect_urls = new RedirectUrls();

    $redirect_urls->setReturnUrl('https://XXXXXXX.ngrok.io/success') /** Specify return URL **/
    ->setCancelUrl('https://XXXXX.ngrok.io/error');

    $payment = new Payment();
    $payment->setIntent('Sale')
        ->setPayer($payer)
        ->setRedirectUrls($redirect_urls)
        ->setTransactions(array($transaction));


    //dd($payment);
    try {
        $payment->create($_api_context);
    } catch (\PayPal\Exception\PPConnectionException $ex) {
        dd($ex);

    }

    foreach ($payment->getLinks() as $link) {
        if ($link->getRel() == 'approval_url') {
            $redirect_url = $link->getHref();
            break;
        }
    }
    $approvalUrl = $payment->getApprovalLink();

    dd($redirect_url,$_api_context,$paypal,$paymentGateway,$approvalUrl,$payment->getId());

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Для тех, у кого возникла такая же проблема, вы должны выполнить платеж после того, как пользователь будет перенаправлен на вашу страницу успеха.

0 голосов
/ 21 мая 2018

ОБНОВЛЕНИЕ

Я пытался отправить деньги из песочницы (личную) на бизнес-счет, которому принадлежит API, и IPN работает правильно.

...