使用 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 参数,您可以使用GetExpressCheckoutDetailsDoExpressCheckoutPayment 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

网站国际化必备Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo

Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解)