2012-01-20 40 views
2

我偶然發現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 

只是要清楚:

  1. PDT我的沙盒帳戶被激活。
  2. 我的沙箱帳戶上的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無法返回到我們的應用程序。一旦這些限制被刪除,應用程序開始正常運行。

回答

0

問題是由於防火牆的限制,PayPal無法返回到我們的應用程序。一旦這些限制被刪除,應用程序開始正常運行。