PayPal Checkout 前端和后端通信安全

Posted

技术标签:

【中文标题】PayPal Checkout 前端和后端通信安全【英文标题】:PayPal Checkout frontend and backend communication security 【发布时间】:2021-06-24 23:30:01 【问题描述】:

我想在我的 Web 应用程序上使用 Paypal。我将 ReactJS 用于前端,将 Spring boot 用于后端。问题是我成功地将前端连接到 Paypal,Paypal 能够通过状态和交易号确认我的付款。

但是,在收到有关付款的确认后,我需要执行特定操作,其中涉及在后端发送某些内容。但我担心这些行动的安全方面。因为如果有人只是在我的 API 上发布请求,甚至不使用 Paypal 进行交易怎么办?

我的第一个想法是向 Paypal 发送请求,然后在确认和交易 ID 后在后端发送交易 ID,并在后端调用 Paypal 的交易 API 并查询给定的交易 API,以便我确认交易存在,但是,Paypal 的交易 API 有很大的延迟,我无法在几分钟内到达,所以我不知道该怎么办。

我想让它完全自动化,这样用户就可以立即得到响应,并且可以使用他购买的服务。在我看来,我唯一的选择是手动检查付款,如果它们有效,请手动执行这些操作。

对于如何做到这一点或任何想法是否有任何最佳实践?或者有没有办法确保我的 API 会使用来自我的前端的请求?

非常感谢。

【问题讨论】:

最好按照 PayPal 告知的方式集成他们的 API,他们已经考虑到您的担忧并且比您拥有更多的经验。或者你可以问 PayPal。 【参考方案1】:

使用服务器端集成。创建两条路线,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据。

将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

当您在服务器上执行捕获操作时,请验证捕获成功且金额正确,以及是否存在 PayPal 交易 ID,然后将其存储在您的数据库中以用于记帐/退款目的。并使用指示成功的 JSON 响应客户端,或将任何错误传播给它。

【讨论】:

以上是关于PayPal Checkout 前端和后端通信安全的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes 前端和后端之间的通信

前端和后端无法通信

thinkphp前端和后端怎么通信

Rails:Paypal 端点 /v2/checkout/orders 返回 http 401

移动应用程序的前端-后端通信

Keycloak 前端和后端客户端