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認証全体が終了します。