Я новичок в PayPal, и я ищу этот вопрос за 1 день. Мне нужна твоя помощь. Я сделал кодировку экспресс-проверки API, и я успешно получаю транзакцию платежа, но моя проблема – это отменить URL-адрес. Когда я отменяю платеж, он возвращается к моему URL-адресу отмены, и paypal предоставляет токен, как этот URL-адрес http://www.example.com/?token=EC-75630865LV806263H
Можно ли получить имя, фамилию или любую информацию о клиенте, когда клиент нажимает на отмену и возвращается к моему URL-адресу отмены?
Если возможно, вы можете дать мне ссылку или учебник о том, как получить информацию о клиенте, когда отменить URL.
заранее спасибо.
Я бы предположил, что нет, так как обычно кнопка отмены нажата перед аутентификацией, но я тоже не пробовал ее в середине процесса. Обычно процесс заключается в регистрации, подтверждении платежа и PayPal отскакивает их обратно на страницу завершения платежа. Но можно было бы вызвать getExpressCheckoutDetails, если они отменились после аутентификации. Опять же, я никогда не пробовал. Но самое худшее, что произойдет, – PayPal ничего не возвращает.
Я написал свой код таким образом, что я сгенерировал cancelurl во время выполнения. Поэтому перед отправкой полезной нагрузки платежной транзакции я устанавливаю URL-адрес отмены следующим образом:
$settings->cancelurl = 'http://www.example.com'; if($_SESSION['customer_ref']){ //save loggedin customer ref in session. $settings->cancelurl .= '&customer_ref='.$_SESSION['customer_ref']; }
Поэтому, когда cancelurl на paypal будет выглядеть так: http://www.example.com/?customer_ref=qwuy16436771&token=EC-2Q454WDAE110BD2
Таким образом, вы можете затем захватить customer_ref из URL-адреса и делать все, что вам нужно, когда оно попадает на ваш сервер.
Надеюсь, это поможет.
на странице проверки найдите элемент скрытой формы «cancel_return»:
<input type="hidden" name="cancel_return" id="cancel_return" value="" />
установите значение элемента формы cancel_return для URL-адреса, к которому вы хотите вернуться:
<input type="hidden" name="cancel_return" id="cancel_return" value="http://royaltytech.in" />
token
также является параметром в URL-адресе перенаправления после создания payment
. Таким образом, вы можете сделать что-то подобное, чтобы поместить его в свою базу данных (связанную с отложенным ордером или что-то еще) для последующего поиска, не полагаясь на файлы cookie:
$payment->create($apiContext); $link = $payment->getApprovalLink(); parse_str(parse_url($link, PHP_URL_QUERY), $linkParams); if (!empty($linkParams['token'])) { // Store token in database for possible lookup later // Presumably just another column field... yourSaveToken($yourOrder, $linkParams['token']); } header('Location: ' . $link);
Затем, когда появляется URL-адрес отмены, вы можете получить отмененный ордер
if (!empty($_REQUEST['token'])) { // Match token previousy stored by `yourSaveToken` $yourOrder = yourGetOrderFromToken($_REQUEST['token']); }