使用 Spring MVC 的 Paypal 支付
Posted
技术标签:
【中文标题】使用 Spring MVC 的 Paypal 支付【英文标题】:Paypal payment using Spring MVC 【发布时间】:2014-02-07 02:17:42 【问题描述】:我正在使用 SpringMVC + Paypal 付款并发现我编写的代码很愚蠢(尽管它运行良好)。我正在使用一个 paypal 表单,该表单将金额、项目名称、成功 url、取消 url 等数据提交到 paypal 以进行付款。它包含用于发送数据的隐藏字段,众所周知,隐藏字段不再隐藏:)
任何人都可以右键单击表单并使用检查元素并可以更改金额的值。此外,当我完成付款后,我必须点击“返回...”链接才能返回我的页面,在该页面我无法读取 paypal 返回的有关交易的任何数据。
所以我想问一下是否有另一种解决方法,比如在我移动到贝宝页面之前,我使用我的 API 密钥获得了一些令牌,付款完成后,贝宝自动重定向回我的网址(不必点击“Return ...”),然后我可以在那里验证交易
我尝试并能够使用谷歌找到一些代码,但他们都使用自己的帐户付款。
在我的应用程序中,客户必须在到达贝宝页面时输入他们的贝宝帐户信息
热切等待回复,谢谢和问候
如果您需要代码,我也会发布我的表单代码,但我知道使用表单和会话进行付款不是很好的技术
【问题讨论】:
我发现这个网址很有用:***.com/questions/14843212/… 但是“Frits van Campen”回答说发送数据不安全应该是正确的,任何关于代币支付的链接或示例 【参考方案1】:我不知道如何在 Spring MVC 中准确地做到这一点(因为我是面向 php 的),但总的来说,这个工作流程独立于所使用的语言。基本上,您将使用 PayPal API,它在远离用户的服务器端执行操作。
也就是说,您需要在您的网站上设置一些“立即付款”按钮,将用户重定向到另一个页面(控制器/操作,因为您正在使用 MVC),该页面执行以下操作:
-
使用付款信息(描述、总金额、货币等)启动
SetExpressCheckout
API,您还应该指定 2 个 URL:returnURL
(如果用户授权付款,将从 PayPal 重定向到该页面),和cancelURL
(如果他取消授权,用户将从 PayPal 重定向到哪个页面)
作为来自 PayPal 的成功响应,您会收到一些数据以及 redirectURL
字段,您应该将用户重定向到 PayPal 以便他授权付款
此时您将用户重定向到给定的 URL
用户授权付款后,将被带到returnURL
。
当用户被重定向回您的网站时,PayPal 将附加token
参数,您可以使用GetExpressCheckoutDetails
和DoExpressCheckoutPayment
API 调用进一步使用该参数来验证和完成付款。基本上,一切都发生在服务器端,因此几乎可以避免在客户端被篡改。
是的,一旦用户重定向回您的网站,他们就可以修改token
,但这样做没有任何意义。调用GetExpressCheckoutDetails
API 后,您可以检查调用是否成功并采取相应措施。
更新
在 PayPal 文档中,您可以找到各种示例和用例,因此我建议您查看那里,尤其是:this(如果您想立即处理付款)或this(或者如果您想稍后处理付款,比如说几天后)。
请注意,PayPal 有两个版本的 API:Classic(较旧,更彻底,有点难以开始)和 REST(较新,更容易掌握,但仍然缺少一些高级用例)。但无论如何,我在上面给你的链接应该可以帮助你了解 Express Checkout 的工作原理。
【讨论】:
感谢 techno.plug,我希望这样做,我在我的 POM 中添加了 paypal,但正在寻找一些链接或教程或示例来检查 paypal sdk expresscheckout,如果你能,这将是很大的帮助给个链接 请检查更新后的答案。它应该让您了解如何启动 Express Checkout 付款。【参考方案2】:我在这个 URL 的帮助下解决了这个问题:
https://developer.paypal.com/docs/classic/api/apiCredentials/
【讨论】:
始终欢迎提供指向潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。请注意,仅仅是指向外部网站的链接是a possible reason for your answer to be deleted。以上是关于使用 Spring MVC 的 Paypal 支付的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net core MVC paypal支付回调——app支付
使用 PayPal REST API ASP.NET MVC 一次支付多个项目
IJPay 让支付触手可及,封装了微信支付QQ 支付支付宝支付京东支付银联支付PayPal 支付等常用的支付方式以及各种常用的接口。不依赖任何第三方 mvc 框架,仅仅作为工具使用简单快速完
沙盒测试第二次支付失败 Paypal 集成 asp.net mvc