2012-04-24 127 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。它独立于您的主机文件或任何访问者。