2012-04-24 106 views
0

我正在致力於捐贈頁面,該頁面允許用戶輸入捐贈金額,然後使用PayPal付款。我用PayPal成功創建了一個沙盒帳戶。完成此操作後,我創建了一個企業帳戶,以便接收付款和個人帳戶以進行付款。將PayPal IPN集成到網站

我想要做的是利用即時付款通知功能,該功能允許開發人員驗證用戶是否實際上在貝寶的付款頁面上進行了交易(以便我可以將其記錄在數據庫中)。

我嘗試在商家帳戶上發佈我的IPN頁面的URL。問題是它不接受URL。這是我提供的網址:

http://localhost:54866/Default.aspx

網站不在線託管。這怎麼能做到呢?我應該如何提供網址?謝謝:)

P.S.我正在使用C#和ASP.NET

回答

4

是的,你是正確的,你不能給本地主機(它會嘗試解決paypal自己的服務器,然後...),所以你必須做一些欺騙。

你需要做的是:

比方說你的店鋪將是www.mynewshop.com

1)設置了在貝寶的IPN重定向

2)Change your HOST文件重定向www.mynewshop.com到127.0.0.1(例如本地主機)

您可以測試第2步正在嘗試在瀏覽器中輸入例如www.mynewshop.com - 如果您的服務器在端口80上將解析爲本地主機:80或說你有devweb se rver運行於:1234 type www.mynewshop.com:1234在瀏覽器地址欄中,並檢查已做出決議

3)將項目上的端口設置爲:80(因爲您不能在PayPal中指定80以外的其他任何項目)認爲)。您可以通過project.properties設置項目測試服務器端口 - 將其設置爲NOT動態端口,然後您可以設置固定:80

Paypal會嘗試將您重定向回www.mynewshop.com電腦試圖訪問,但在幕後你最終在本地主機。

從內存中,您還可以設置項目屬性來啓動瀏覽器,例如www.mynewshop.com,這意味着即使在開發過程中您似乎正在使用實時URL。這可以有其優點,例如它將幫助您發現由於本地主機與實際主機URL而導致的不正確的URL /部署差異。

玩得開心! :)(並將此標記爲答案 - 我知道它的工作原理,因爲很久以前我自己解決了這個問題)

+0

感謝您的詳細回覆。我會嘗試。 – Matthew 2012-04-24 17:08:55

+0

您如何準確地編輯主機文件?謝謝:) – Matthew 2012-04-24 17:10:12

+0

一秒生病給你一個鏈接 – 2012-04-24 17:10:40

1

您必須在路由器上設置端口轉發。 「本地主機」不是公共路由,所以PayPal無法訪問它。

如果您將路由器(公共IP)上的端口轉發到本地PC,則可以使用IP地址和端口組合作爲IPN URL進行測試。例如。 1.2.3.4:8080這將轉發到您的測試服務器的內部IP地址。

PayPal IPN通過在事務發生後聯繫您的服務器或當事務的信息發生變化時工作,以便PayPal必須能夠到達您的IPN URL。它獨立於您的主機文件或任何訪問者。