Woocommerce Paypal REST api 与 React JS 的集成

Posted

技术标签:

【中文标题】Woocommerce Paypal REST api 与 React JS 的集成【英文标题】:Woocommerce Paypal REST api integration with React JS 【发布时间】:2020-12-23 19:10:22 【问题描述】:

我在后端使用 Woocommerce 并在前端使用 react js。由于 apis 支持 woocommerce,因此我正在尝试将 PayPal 集成为支付网关。与 woocommerce 配合使用的默认 WordPress 主题按以下流程进行付款。

    当点击“使用 PayPal 支付”按钮时下达的订单处于待处理状态 使用订单 ID 和购物车金额将用户重定向到 PayPal 支付网站 当用户完成支付后,用户会被重定向到下订单页面。 先前下达的订单状态将更新为来自 Paypal 的相应响应,如处理中或已取消

我的问题是如何使用 REST API 实现这个过程。

最好使用客户端集成还是服务器端集成? 如果使用客户端集成,会有任何漏洞吗?如何确认用户支付了购物车的价值?

【问题讨论】:

【参考方案1】:

Woocommerce 和 PayPal 都拥有自己的 api 资源。

使用他们的 API 文档,我们可以实现 restful API 实现,它可以与 woocommerce 进行通信以进行订单/商店管理以及贝宝进行支付管理

API 请求将始终从客户端发起,因此我们可以从客户端开始实施,但主要的是端点实际上不应指向 paypal 或 wooocommerce 真正的 endpoints,而是我们应该用我们自己的endpoints在服务端实现API相关的工作。例如,对于在woocommerce 中创建订单,实际的endpoint 是

curl -X POST https://<store_domain>/wp-json/wc/v3/orders \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d 'payload'

我们不应该直接使用它,而是可以这样做,

https://api.<store_domain>.com/create_order/

一些header authentication,然后是服务器,

api.<store_domain>.com

应该调用实际的woocommerce store,

https://<store_domain>/wp-json/wc/v3/orders

对于 PayPal 请求也以相同的方式设置端点,这样最终用户将看不到 woocommerce 和 paypal 中用于 API 资源的有效负载。

以类似的方式,来自贝宝的响应应该被重定向到

 api.<store_domain>.com

在验证交易是否成功后,然后使用api响应我们可以在react js中处理它,这样可以保证安全!有关处理来自endcustomer 的响应的更多信息,请参阅URL。

【讨论】:

以上是关于Woocommerce Paypal REST api 与 React JS 的集成的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 和 PayPal 账单地址

WooCommerce 'woocommerce_payment_complete' 未在 PayPal 沙盒付款上运行

Woocommerce 和 Paypal | Paypal 结帐后的空白页

如何从 WooCommerce 订单中更改 Paypal 项目名称?

Woocommerce 客户在 Paypal 重定向之前退出

WooCommerce 中的“验证错误:PayPal 货币不匹配”