java WeChat開発(wechat 4 j)——access_tokenの中でサーバーを制御して実現します。

3121 ワード

access_tokenは、WeChatサーバとの相互作用の中の一つの証明であり、顧客サーバが自動的にWeChatサーバと通信するたびにaccess_を持参する必要がある。トムは自分の身分を確認する。wechat 4 j内部にはaccess_を封入しています。tokenの操作は、access_を取得することを含む。tokenとaccess_tokenの中でサーバーの実現を制御します。
access_token取得
access_を取得したいですtokenは以下の方法を使用することができます。
String accessToken = TokenProxy.accessToken();
access_tokenコントロールサーバ
access_tokenは毎日一回の回数制限がありますので、クライアントサーバは毎回新しいaccessを要求することができません。token、毎回要求した後、access_tokenには有効期限があります。したがって、WeChatプラットフォームは、中のサーバーを使って、タイミングよくtokenを更新してください。取得したら、保存してください。tokenを要求しなくてもいいです。tokenは回数制限があることを要求する。このような処理には二つのメリットがあります。
  • .access_を保証する。tokenは毎日アクセス制限を超えず、サービスの正常化を保証しています。
  • サービスの性能を向上させ、サービス要求を送信する前に一回access_を送信しなくてもいいです。token取得要求。
  • wechat 4 j取得access_tokenはaccessを通じてtokenの代理としてtokenProxyを取得し、この代理はaccess_をカプセル化しました。tokenの中制御サーバ。access_に対してtokenの保存には二つの方法があります。一つはメモリ保存、もう一つは持久化保存(データベースまたはファイル)です。メモリ保存方式の中制御サーバはwehcat 4 jで実現され、お客様は何も操作しません。お客様が持続的に保存するためには、中控サーバーを自分で定義する必要があります。以下の2つの中制御サーバがあります。
  • access_tokenデフォルト中制御サーバ
  • access_tokenカスタム中制御サーバ
  • 標準中制御サーバ
    wechat 4 jのデフォルトの中控サーバーはメモリモードで、access_tokenはメモリに保存されています。期限が切れるまで新しいのをお願いします。デフォルトのコントロールサーバに対応するクラスは、Access Token MemServerです。
  • 長所:このモードの中控サーバーはちょっと効率が高くて、使いやすいです。お客様は気にしないでください。
  • 欠点:マルチサーバのクラスタをサポートできません。複数のサーバの場合、この方式はサポートされません。
  • コントロールサーバをカスタマイズ
    もしあなたがaccess_を必要としたらtokenはデータベースまたはファイルに保存されているので、カスタマイズされた中制御サーバを使用する必要があります。カスタマイズされたサーバはお客様自身が完成する必要があります。抽象的なタイプのCustomer Serverを引き継ぎ、その中の保存と照会方法を完成すればいいです。同時にカスタマイズされたサーバはタイマーによって駆動されて操作します。モニターを配置する必要があります。カスタムaccess_の設定tokenサーバの詳細手順:
  • 自分のサーバークラスを作成するには、wechat 4 jのCusstomerServerクラスを継承し、saveとfind方法を実現する必要があります。前者はaccess_です。tokenはデータベースに保存します。後者はデータベースからaccess(u)を検索します。tokenの方法は、中はsql操作などでいいです。
    public class CustomerAccessTokenServer extends CustomerServer{/* (non-Javadoc) * @see org.sword.wechat4j.token.DbAccessTokenServer#find() */@Overridepublic String find() {
        String accessToken = null;    //       //      String sql = "select cfgValue from cfg where cfg.cfgKey = 'access_token'";//      accessToken = DBUtil.query(sql);
        return accessToken;
    }/* (non-Javadoc) * @see org.sword.wechat4j.token.DbAccessTokenServer#save() */@Overridepublic boolean save(Token accessToken) {    //        ,       ,            //      String sql = "update cfg set cfg.cfgValue=" + accessToken.getToken() + //              " where cfg.cfgKey= 'access_token'";//      DBUtil.execute(sql);
        return true;
    }
    }
  • wechat 4 j.propertiesプロファイルにwechat.accessToken.server.class項目を配置し、先ほど新設したサーバクラスのパスを加えると、次のような例があります。
  • web.xmlにwechat 4 jのaccess_を配置する。tokenモニター。コードは以下の通りです。
     wechat.accessToken.server.class=com.sample.wechat.CustomerAccessTokenServer
  • 上記の3ステップで自分のデータベースaccess_を配置できます。tokenサーバ。このように中控サーバーからタイミングよくaccess_を更新します。tokenをデータベースに保存し、業務ロジックでaccess_を使用します。tokenの時は、エージェントを通してデータベースにデータを取りに行きます。タイムリフレッシュタスクは200秒前に動作します。有効期限が来たら運転中の新しいaccess_を防止します。tokenは古いaccessを取得していません。tokenが期限切れになる場合があります。
    wechat 4 jフレームの公式文書: https://github.com/sword-org/wechat4j/wikiwechat4j技術交流QQ群: 4231346