В некоторые дни я пытаюсь решить проблему с 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());