PayPal IPN прослушиватель не присылает письма. Как исправить?

Есть локальный Виртуальный сервер. К нему прокинут тунель через ngrok.
В настройках бизнес аккаунта https://www.sandbox.paypal.com включено Мгновенное платежное уведомление (IPN). Адрес указан. Через Instant Payment Notification (IPN) simulator спокойно приходят уведомления.

Но. создаю платеж. Получаю ApprovedLink. Из аккаунта покупателя подтверждаю платеж. Переходит на страницу confirm. Уведомления не приходят.

public function actionPayment(): string
    {
        $paypal = new PaypalForm();

        if ($paypal->load(Yii::$app->request->post()) && $paypal->validate()) {

            $apiContext = new ApiContext(
                new OAuthTokenCredential(
                    '-----',     // ClientID
                    '-----'  // ClientSecret
                )
            );

            $apiContext->setConfig(
                array(
                    'mode' => 'sandbox',
                )
            );


            $payer = new Payer();
            $payer->setPaymentMethod('paypal');
            $item = new Item();
            $item->setName('test pro 1')
                ->setCurrency('RUB')
                ->setQuantity(1)
                ->setSku("testpro1_01")
                ->setPrice(1000);

            $itemList = new ItemList();
            $itemList->setItems(array($item));

            $payerInfo = new PayerInfo();
            $payerInfo->setEmail('адрес@personal.example.com');
            $payerInfo->setFirstName('Достоевский');
            $payerInfo->setLastName('Александр');
            $payer->setPayerInfo($payerInfo);

            $amount = new Amount();
            $amount->setTotal('1000.00');
            $amount->setCurrency('RUB');

            $transaction = new Transaction();
            $transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription("Payment description");

            $redirectUrls = new RedirectUrls();
            $redirectUrls->setReturnUrl("/client/paypal/confirm")
                ->setCancelUrl("/client/paypal/cancel");

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


            try {
                $payment->create($apiContext);

                $billingService = new BillingService(Yii::$app->user->identity->id);
                $billingService->createPayment($payment);
                echo "<pre>";
                echo $payment;

                echo "\n\nRedirect user to approval_url: " . $payment->getApprovalLink() . "\n";
                echo "</pre>";
                die;
            }
            catch (PayPalConnectionException $ex) {
                // This will print the detailed information on the exception.
                //REALLY HELPFUL FOR DEBUGGING
                echo "<pre>";
                echo $ex->getData();
                echo "</pre>";

                die;
            }

        }
        return $this->render('payment', [
            'paypal' => $paypal,
        ]);
    }


Может я не все данные отправляю?
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы