PayPal PDT.Идентификатор транзакции отсутствует в обратном URL - PullRequest
3 голосов
/ 20 января 2012

Я наткнулся на очень своеобразное поведение PayPal. Когда я тестирую интеграцию PayPal с песочницей PayPal, используя localhost в URL-адресах, я получаю идентификатор транзакции обратно, но когда я заменяю localhost фактическим именем, переменные транзакции с именем сайта отсутствуют. В обоих случаях PayPal возвращается на мой сайт, но когда я не использую localhost, он не возвращает информацию о транзакции, что делает усилия наших тестировщиков бесполезными.

Пример:

http://localhost/paymentinfo.aspx?Product=DC - working
http://test1/paymentinfo.aspx?Product=DC     - is not working

Просто чтобы прояснить:

  1. PDT на моей учетной записи в песочнице активирован.
  2. IPN в моей учетной записи песочницы активирован.

Вот код моей кнопки BuyNow PayPal:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----DFGHJ8yuFFTY-----END PKCS7-----"/>
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted"/>
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

где = «зашифрованный» содержит зашифрованную строку следующего списка параметров:

cmd=_xclick
business=paypal_business_acc@companyname.com
cert_id=123456
charset=UTF-8
item_name=product name
item_number=123456
amount=11.97
currency_code=USD
return=http://localhost/Success.aspx
cancel_return=http://localhost/AppDownPay.aspx?Cancel=true
notify_url=http://ipnlstnr/PayPalIPNListenerInternal.ashx
custom=2bcad9cb-9429-4e99-8984-5d0532bfb718
no_shipping=1
on0=CustomItem1
on1=CustomItem2
os0=VM
os1=DC

Кто-нибудь знает, как заставить PayPal возвращать переменные перевода на URL, не связанные с локальным хостом?

ОБНОВЛЕНИЕ: Оказалось, что песочница PayPal отправляет сообщения слушателю IPN, а не возвращается на наш сайт. Это довольно неожиданно. Поскольку Auto Return включен. Я пытался включить или отключить PDT, который не имел никакого значения. Также я пытался удалить notify_url из кода кнопки, и все же сообщение было перенаправлено нашему слушателю IPN, а не нашему сайту. Я попытался добавить переменную "rm" к коду кнопки со значением 2, и это не убедило песочницу перенаправить на наш сайт. Не могли бы вы помочь мне понять, что мне не хватает?

UPDATE2: Проблема была решена. Проблема была вызвана невозможностью возврата PayPal в наше приложение из-за ограничений брандмауэра. Как только эти ограничения были сняты, приложение стало работать нормально.

1 Ответ

0 голосов
/ 30 октября 2015

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

...