我已经在这里阅读了很多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的网址时,我也在努力寻找关于实际返回给我的内容的任何文档或示例。目前我假设它类似于myurl.com/?item=blah&item1=blah&item2=foo
等,但我没有在任何可以找到的地方指定。返回的项目也未指定。目前我假设我可以将这些项目作为表单数据访问,但没有这方面的示例(上述视频中的MVC1示例除外)。
我还认为我需要使用IPN,因为如果用户使用信用卡然后没有点击返回卖家的网站按钮,PDT甚至可能不会被传回。这是真的吗?
我想要做的就是在我的网页上放置一个按钮,这将允许用户支付年度订阅费用。我想将一个唯一的交易ID传递给PayPal,他们将返回给我,说明成功或失败。然后,我将更新我的数据库,以便用户收到他们的订阅。
我曾经认为,当我为SagePay(我们当前的提供商 - 我们只能改变以便能够在没有不同的货币银行账户的情况下进行国际支付)时这样做已经足够糟糕了,但PayPal似乎更糟糕。对于SagePay,我只需要更改我提交的URL,从测试到实时。很简单,他们给我发回了一个加密的响应,并且实际上有关于响应中究竟是什么的文档。
我真的希望我在这里得到了错误的结论,并且有一种合理的方式将PayPal集成到我的网站中。目前,似乎我将不得不在PayPal可以访问的当前实时服务上设置URL,然后调试实时服务器以确切了解我收到的内容并调试我的代码。这似乎非常错误。
非常感谢你的帮助!
答案 0 :(得分:1)
PayPal实际上比大多数人更能让您进行测试。有一个完整的测试沙箱解决方案(support document),在添加/编辑REST API应用程序时,您可以单击“应用程序重定向URL”旁边的“编辑”链接,并指定测试URL和生产实时URL 。这应该为您提供在本地测试所需的一切,而不会将您的网站暴露给外部世界。
如果它最终让你适合使用localhost,那么总会有像localtest.me这样的服务,可以让你解决它。
答案 1 :(得分:0)
您真的需要查看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公开听众?" 是的,你需要。 Paypal在C#中也有这方面的教程。
" PDT甚至可能不会被传回" 也许。但IPN也有机会。