0

我是一名 Spring 开发人员,试图弄清楚如何将 WordPress WooCommerce 网站连接到我的 REST Spring 引导服务。我没有使用过 WordPress,所以那里对我来说有很多未知的未知数。我正在与 WordPress 方面的另一位开发人员合作,试图解决这个问题,但我们有点迷茫。

是否有 WordPress 网站访问 Spring boot Oauth2 API(包括 JWT 令牌传递服务)的最佳实践?

我的情况的具体描述:


现在状态(工作):

有人在 WooCommerce 网站上订购产品,订单状态设置为处理中。

目标

WordPress WooCommerce 后端调用 Spring boot API 以发送订购的产品数量。

我们发现了什么以及我们尝试了什么:


弹簧靴:

我们发现 Spring boot outh2 是 REST API ENDPOINT 的方法 我找到的唯一资源是这个,非常好且足够:

https://developer.okta.com/blog/2018/04/02/client-creds-with-spring-boot

https://www.youtube.com/watch?v=X80nJ5T7YpE

WordPress:

问题是,我们在 WordPress Webhooks 上发现了很多,但在如何使用令牌系统调用 API 端点方面却没有很多。以下是我们研究的一些资源,但还不够:

https://developer.wordpress.org/plugins/http-api/

https://woocommerce.github.io/woocommerce-rest-api-docs/v3.html?shell#webhooks

https://duckduckgo.com/?q=wordpress+oauth2+rest+call&t=bravened&ia=web

在这种情况下,我们想知道的关于服务器到服务器通信的信息**(握手):


  1. WordPress中,我手动将Spring Security 知道的用户名和密码安全地存储在 WordPress 上。

  2. WordPress,订单已完成。

  3. WordPress使用Payload调用 Spring boot Https Request 到/api:OrderInformation、Password 和 Username

  4. Spring看到没有 Token或者 Token 过期了

  5. Spring在 Request Payload 中搜索用户名和密码

  6. Spring 根据用户名和密码生成一个签名的JWT 令牌。

  7. WordPress收到该令牌并安全存储

  8. 带有有效负载的WordPress HTTPS 请求/api:OrderInformation, Token

  9. Spring验证Token,接受 OrderInformation

  10. 当一切顺利时,Spring 会根据信息做它需要做的 事情

  11. Spring Oauth2 必须以某种方式告诉 Wocomerce 信息已成功传递否则,Woocomerce 必须重新发送信息。并开始表格点

我们希望这篇文章应该为有同样问题的人完成:


如果有人知道如何配置 WordPress WooCommerce 的任何资源或最佳实践,请让有很多未知数的我们知道下一步该做什么。我们希望这篇文章及其答案可以成为其他人找到所需信息的门户和顶点。

非常感谢您提前

4

1 回答 1

0

我不确定 Spring Boot API 具体是什么,但我已经完成了与其他 REST API 的这种类型的集成。

我会推荐使用wordpress action hook。我建议您使用的钩子是woocommerce_order_status_changed.

// define the woocommerce_order_status_changed callback 
function action_woocommerce_order_status_changed( $this_get_id, $this_status_transition_from, $this_status_transition_to, $instance ) { 
    // make action magic happen here... 
}; 
         
// add the action 
add_action( 'woocommerce_order_status_changed', 'action_woocommerce_order_status_changed', 10, 4 ); 

// make action magic happen here...在您与 API 联系的地方编写逻辑。在处理时运行您的代码$this_status_transition_to。应该有woocommerce$instance订单实例,您可以使用它来推送到 API。

我想给出的一些建议是。

  1. 将 API 令牌/凭据保存在环境变量中以确保安全。
  2. 建议使用Guzzle包发出 http 请求。使用composer安装包。
于 2021-10-22T12:02:08.110 回答