我偶然發現PayPal非常奇特的行爲。當我在URL中使用localhost測試paypal集成與paypal沙盒集成時,我得到的是事務id,但是當我用實際站點名稱替換localhost時,事務變量不存在。在這兩種情況下,貝寶都會返回到我的網站,但是當我不使用本地主機時,它不會返回事務信息,我們測試人員的渲染效果是徒勞的。PayPal PDT。交易編號在遺失網址中丟失
例子:
http://localhost/paymentinfo.aspx?Product=DC - working
http://test1/paymentinfo.aspx?Product=DC - is not working
只是要清楚:
- PDT我的沙盒帳戶被激活。
- 我的沙箱帳戶上的IPN已激活。
這是我現在購買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>
這裏= 「加密」 包含以下參數列表的encripted字符串:
cmd=_xclick
[email protected]
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監聽器發送消息,而不是返回到我們的網站。這是非常意想不到的。由於自動返回已打開。我試圖啓用或禁用PDT,這沒有任何區別。此外,我試圖從按鈕代碼中刪除notify_url,並且仍然將消息重定向到我們的IPN監聽器,而不是我們的網站。我試圖將「rm」變量添加到值爲2的按鈕代碼,並且沒有說服沙盒重定向到我們的網站。你能幫我理解我錯過了什麼嗎?
UPDATE2: 問題已解決。問題是由於防火牆的限制,PayPal無法返回到我們的應用程序。一旦這些限制被刪除,應用程序開始正常運行。