При обновлении браузера после оплаты через PayPal PDT товар покупается дважды - PullRequest
0 голосов
/ 08 июля 2011

Я осуществил платежи PayPal с использованием PDT.Я понимаю, что рекомендуется использовать комбинацию PDT и IPN, однако для моих целей достаточно PDT.

Я могу направить пользователя в PayPal, получить платеж и затем выполнить действие (обновить кредиты учетной записи для пользователя вбаза данных), когда пользователь возвращается на мой сайт.URL показывает адрес как:

http://www.domain.com/process_pdt?tx=45138128VH922173V&st=Completed&amt=1.99&cc=USD&cm=&item_number=

Пока все хорошо.У меня проблема с обновлением браузера с этим URL-адресом, при котором учетная запись пользователя снова зачисляется без повторного перенаправления пользователя в PayPal для получения платежа.

Я прочитал, что должен добавить идентификатор транзакции (txв URL выше) к пользовательской таблице и убедитесь, что этот идентификатор tx еще не использовался.Если это так, я должен отобразить сообщение об ошибке.Является ли это единственным способом добиться этого, то есть путем сохранения каждого идентификатора tx в пользовательской таблице, а затем проверки существования идентификатора при каждом вызове пользователем вышеуказанного URL-адреса process_pdt (законно или обманным путем)?

1 Ответ

0 голосов
/ 08 июля 2011

Ах да, это действительно единственный путь. В качестве простой проверки работоспособности вы можете выполнить перенаправление со страницы процесса на URL, который не включает txn_id (таким образом, случайное обновление не вызовет проблемы, но если они используют кнопку «Назад», оно все равно будет случиться), но вы должны убедиться, что txn_id используется только один раз.

...