如何在MVC4网站中集成和测试PayPal:我真的需要公开我的开发环境吗

本文关键字:我真的需要 我的 环境 开发 PayPal 测试 MVC4 网站 集成 | 更新日期: 2023-09-27 18:23:52

我在这里读了很多PayPal的问题,在网上读了很多不同的页面,但我很困惑。我发现了一些不同类型支付的例子,但其中许多都很古老,我不确定它们的相关性,因为我被告知最近发生了变化。不幸的是,在开发者/沙盒PayPal网站上似乎没有任何有用的例子或文档,或者我就是找不到它们!

我想知道是否有人能给我一些好的例子、文档或教程,这些都能帮助我完成以下任务:

如果我想对PayPal交易进行任何后处理,即更新我的数据库中的交易(成功等),我需要使用IPN/PDT,并且要使用这些,我需要向PayPal公开一个监听器,我的想法正确吗?

如果这是真的,我很困惑这么多开发人员如何使用这个系统,因为我真的无法想象为了测试和调试而将我的开发/测试环境暴露在外部世界。我甚至在asp.net网站上看了一段这样做的视频http://www.asp.net/mvc/videos/mvc-1/aspnet-mvc-storefront/aspnet-mvc-storefront-part-22-restructuring-rerouting-and-paypal这不是我在工作环境中可以真正考虑的事情。

当我指定IPN的url时,我也很难找到任何文档或示例来说明实际返回给我的内容。目前,我假设它类似于myurl.com/?item=blah&item1=blah&item2=foo等,但在我能找到的任何地方都没有指定。返回的项目也没有指定。目前,我假设我可以访问作为表单数据的项目,但没有这方面的示例(除了上面视频中的MVC1示例)。

我还认为我需要使用IPN,因为如果用户使用信用卡,然后不点击返回卖家网站按钮,PDT甚至可能不会被退回。这是真的吗?

我想做的就是在我的网页上放一个按钮,这样用户就可以支付年度订阅费。我想将一个唯一的交易id传递给PayPal,他们会将其返回给我,说明成功或失败。然后我将更新我的数据库,以便用户收到他们的订阅。

当我为SagePay(我们目前的提供商-我们只是在没有不同货币银行账户的情况下进行国际支付)做这件事时,我曾认为这样做已经够糟糕的了,但PayPal似乎更糟糕。对于SagePay,我只需要更改我提交的URL,从测试改为直播。很简单,他们给我发了一个加密的回复,实际上有关于回复中具体内容的文档。

我真的希望我在这方面做得不对,有一个明智的方法可以将PayPal集成到我的网站中。目前,我似乎必须在我当前的实时服务上设置一个PayPal可以访问的URL,然后调试实时服务器,看看我收到了什么,并调试我的代码。这似乎是非常错误的。

非常感谢你的帮助!

如何在MVC4网站中集成和测试PayPal:我真的需要公开我的开发环境吗

PayPal在让您进行测试方面实际上比大多数公司都要好。有一个完整的测试沙箱解决方案(支持文档),当添加/编辑REST API应用程序时,您可以单击"应用程序重定向URL"旁边的"编辑"链接,并为生产指定测试URL和实时URL。这将为您提供在本地测试所需的一切,而不会将您的网站暴露在外部世界。

如果它最终让你无法使用localhost,那么总有像localtest.me这样的服务可以让你绕过它。

您确实需要查看Paypal的官方网站:https://developer.paypal.com/webapps/developer/docs/classic/products/instant-payment-notification/他们有非常详细的解释。按照他们的指示循序渐进。当你们真的遇到问题时,提出问题。

我以前使用过的另一个网站是:http://www.codeproject.com/Tips/84538/Setting-up-PayPal-Instant-Payment-Notification-IPN

对于您的问题:"我需要让听众接触PayPal吗?"是的,你需要。贝宝在C#中也有关于这一部分的教程。

"PDT甚至可能不会被传回来"大概但IPN也错失了机会。