У меня есть учетная запись PayPal, и я хочу осуществлять транзакции PayPal на своем сайте.Для тестового платежа я использую среду Sandbox.
Я могу перенаправить пользователя на страницу PayPal в песочнице, я могу заплатить с помощью учетной записи покупателя по умолчанию в песочнице и, в конце концов, я также перенаправлен обратно на свой сайт.Это здорово.
Проблема в том, что ipn.php
(URL уведомления) не вызывается в песочнице PayPal.Я бы знал, если это называется, потому что файл отправляет мне письмо в начале.Я сделал все, что знал.
Странно, что из IPN Simulator вызывается ipn.php.
Я также создал новые учетные записи Sandbox из developer.paypal.com/developer/accounts/create
, но даже не получилподтверждение по электронной почте, чтобы подтвердить их.И все же, ipn.php не вызывался Sandbox PayPal при использовании новых учетных записей песочницы.
Я пробовал несколько дней, но больше ничего не могу попробовать.Интернет и PayPal песочница Документация говорит, что учетные записи песочницы по умолчанию уже подтверждены.Поэтому теоретически пришлось вызвать ipn.php file
.
Вам не нужно беспокоиться о пути ipn.php.Я проверял много раз.Это хороший.
Это код:
$exCheckout = new \PaypalExpressCheckout\Request\SetExpressCheckout();
$exCheckout->setUsername($_config['apikeys']['paypal_username'])
->setPassword($_config['apikeys']['paypal_password'])
->setSignature($_config['apikeys']['paypal_signature'])
->setSandbox()
->setQueryParameter('NOTIFYURL', $_base . 'models/paypal/ipn.php')
->setQueryParameter('RETURNURL', route('hotel-thank-you', $_id_booking))
->setQueryParameter('CANCELURL', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http" . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"))
->setQueryParameter('PAYMENTREQUEST_0_PAYMENTACTION', 'Sale')
->setQueryParameter('PAYMENTREQUEST_0_AMT', $_card_price)
->setQueryParameter('PAYMENTREQUEST_0_CURRENCYCODE', 'EUR')
->setQueryParameter('NOSHIPPING', '1')
->setQueryParameter('LOGOIMG', $_base.'static/img/logo.png');
if (!$exCheckout->isValid()) {
throw new Exception('Missing Parameters: ' . implode(', ', $exCheckout->determineMissingFields()));
}
$paypalResponse = $exCheckout->send();
if ($paypalResponse->isSuccess()) {
db_query('UPDATE booking SET paypal_token = ? WHERE id_booking = ?',
$paypalResponse->getParameter('TOKEN'),
$_id_booking
);
$paypalResponse->setSandbox();
$paypalResponse->authorize();
}
else {
die('No Success PayPal checkout');
}
Можете ли вы помочь мне?