JavaWebはWeChat認定ユーザー情報を取得します

JavaWebはWeChat認定ユーザー情報を取得します

1.WeChatパブリックテストアカウントに申し込む

まず、WeChat開発パブリックプラットフォームにアクセスして、WeChatパブリックプラットフォームのテスト番号を申請する必要があります。ページは次のとおりです。
ここに写真の説明を挿入
ログイン後のページは以下のようになります。
ここに写真の説明を挿入
ページをプルダウンすると、WeChatのコードをスキャンして、これが表示されます。
ここに写真の説明を挿入

インターフェイス情報の設定は必要ありません。ページを下にスクロールすると、次のページが表示されます。
ここに写真の説明を挿入
Webアカウントの背後にある変更をクリックして、URLアドレスを入力します。URLアドレスにはhttp://およびhttps://を含めることはできません。正しい形式は次のとおりです。
ここに写真の説明を挿入
URLアドレスがない場合は、以下の方法で取得できます。

2.URLアドレスを取得します

。URLアドレスを取得するには、まずイントラネット侵入登録Webサイトを開き、登録手順を省略します。登録後に使用状況ドキュメント表示するには、無料のWebトンネルを購入する必要があります。
ここに写真の説明を挿入
次に、[構成]をクリックします。ここに写真の説明を挿入
ローカルポート番号のみを構成する必要があり、残りは構成する必要はありません。たとえば、バックエンドポート番号は8000です。ここに8000を入力します。システムごとにダウンロードするクライアントを選択します。
ここに写真の説明を挿入
ダウンロード後は、下図のここに写真の説明を挿入
動作モード参照してください。ここでは、Windowsシステムを例にとります。実行後のインターフェースはこんな感じ。ここに写真の説明を挿入
この時点で、コマンドラインを入力する必要があります。

cmd -authtoken=

次に、次のコマンドラインを入力します

natapp -authtoken=9ab6b9040a624f40

ここでのauthtoken値は、ここで取得する必要があります
ここに写真の説明を挿入
。正しいコマンドを入力すると、次の図が表示されます。黄色のグリッドは必要なURLアドレスです。

ここに写真の説明を挿入
URLアドレスを取得すると、WeChat公式アカウントプラットフォームの開発で構成できます。

3.背景コード

1.この時点で構成した後、Javaコードを記述する必要があります。最初に、構成エンティティークラスが必要です。

public class Oautch {
    
    
    public final static  String appID="wx7e96fc051d505d38";//微信appID
     public final static  String appSecret ="b6709177544ee8bd1cefc5466f9e6a66";//微信appSecret

    public final static  String REDIRECT_URI ="http://g6iq85.natappfree.cc"; //url地址
}

2.HttpClientUtilツールクラス
がここに記述されています特定の用途についてはHttpClientUtiクラスを確認してください
3.コントローラーレイヤーコード。

  @ApiOperation("验证")
    @RequestMapping("/oautch")
    public void token(HttpServletResponse httpServletResponse) throws Exception {
    
    
                String path= Oautch.REDIRECT_URI+"/api/common/invoke";//这里拼接你的URL地址,用户授权同意之后会调用的接口方法。
                path= URLEncoder.encode(path,"UTF-8");
                String url="https://open.weixin.qq.com/connect/oauth2/authorize?" +
                        "appid="+Oautch.appID+
                        "&redirect_uri="+path+
                        "&response_type=code&" +
                        "scope=snsapi_userinfo&" +
                        "state=wechat_redirect";
                httpServletResponse.sendRedirect(url);
    }

パラメータの紹介
ここに写真の説明を挿入
ユーザーが承認に同意すると、コード値が取得されます。ここで、stateは、渡したパラメータ値です。ユーザーが同意すると、stateの値も渡されます。この状態から、戻りメッセージが次のように判断できます。 WeChatからは返されません。
ユーザーが承認に同意すると、次のコードが実行されます。

 @ApiOperation("用户同意授权")
    @RequestMapping(value = "/invoke",produces="application/json; charset=utf-8")
    public void token1(String code, String state) throws IOException {
    
    
 /*
        * 得到code值,获取用户的openid获取token
        * */
      String path="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+Oautch.appID+"&secret="+Oautch.appSecret+"&code="+code+"&grant_type=authorization_code";
        JSONObject jsonObject = new JSONObject(HttpClientUtil.doGet(path));
       String access_token = (String) jsonObject.get("access_token");//得到token
       String openid = (String) jsonObject.get("openid");//得到openid
       //根据code值和oppenid获取用户的基本信息
               String path2="https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+openid+"&lang=zh_CN";
                     System.out.println(HttpClientUtil.doGet(path2));
}

パスパラメーターの紹介
ここに写真の説明を挿入
path2パラメーターの紹介
ここに写真の説明を挿入
戻り値パラメーターの紹介ここでの戻り値は文字列です。必要に応じて、JSONObjectクラスを介してjsonに変換できます。
ここに写真の説明を挿入
これでユーザー情報を取得するためのWeChat認証全体が終了します。

おすすめ

転載: blog.csdn.net/zhangzhenkeai/article/details/109295496