0

私は、WordPress WooCommerce Web サイトを REST Spring ブート サービスに接続する方法を見つけようとしている Spring 開発者です。私はWordPressを使ったことがないので、そこには私にとって未知の未知がたくさんあります。WordPress 側の別の開発者と協力して、この問題を解決しようとしていますが、少し迷っています。

WordPress ウェブサイトが Spring ブート Oauth2 API (JWT トークン配信サービスを含む) にアクセスするためのベスト プラクティスはありますか?

私の状況の具体的な説明:


現在の状態(動作中):

誰かが WooCommerce Web サイトで製品を注文し、注文ステータスが処理中になっています。

目標

WordPress WooCommerce バックエンドは、Spring ブート API を呼び出して、注文された製品の数を送信します。

私たちが発見したことと私たちが試したこと:


スプリングブーツ:

Spring boot outh2 が REST API ENDPOINT への道であることがわかりました。これについて私が見つけた唯一のリソースは、これで 1 回だけで、非常に適切で十分です。

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

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

ワードプレス:

問題は、WordPress の Webhook については多くのことがわかりますが、トークン システムで 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 : OrderInformation、Password および Usernameを使用して Spring ブート Https Request を/apiに呼び出します。

  4. Springは、トークンがないか、トークンが古くなっていることを確認します

  5. Springはリクエスト ペイロードでユーザー名とパスワードを検索します

  6. Spring は、ユーザー名とパスワードに基づいて署名付きJWT トークンを生成します。

  7. WordPressはそのトークンを受け取り、安全に保管します

  8. WordPress HTTPS Request /api with Payload : 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。API への$instanceプッシュに使用できる woocommerce 注文インスタンスが必要です。

私が与えたいいくつかの指針は次のとおりです。

  1. セキュリティのために、API トークン/認証情報を環境変数に保存します。
  2. Guzzleパッケージを使用して http リクエストを作成することをお勧めします。composerを使用してパッケージをインストールします。
于 2021-10-22T12:02:08.110 に答える