WeChatライセンス自動ログイン

1976 ワード

私达は小さいプログラムの微信の授権を书く时、微信は自分の内蔵のブラウザがあって、私达は先にユーザーが微信の客服の端で登录するかどうかを判断します
String ua = request.getHeader("User-Agent");uaにMicroMessenger文字列があるかどうかを判断します.ua.contains("MicroMessenger")
ウィチャットのライセンスには2つの方法があります.1つはサイレントライセンスsnsapiです.baseはscope,ユーザは感知であり,ユーザのopenidしか取得できない.
もう1つはscopeがsnsapi_userinfoはユーザーの同意が必要です.ここでは微信を開発する公衆番号の授権を紹介しているので、ユーザーはすでに注目しているので、感知のためです.
最初のステップは、ユーザーのcodeを取得します.
ウェブサイトhttps://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=#wechat_redirectgetリクエストを送信するとcodeに戻ります.
ステップ2.codeによるacesstokenの交換
ウェブサイトhttps://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_codegetリクエストを送信し、取得したcodeを持参します.
ステップ3 acesstokenをリフレッシュ
ウェブサイトhttps://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKENgetリクエストを送信し、期限切れのacesstokenを持参します.
acesstokenの期限切れをどう判断するか、
JAvaはオブジェクト向けなので、エンティティクラスをaccesstokenに作成し、2番目のステップでacesstokenを取得したときにエンティティクラスオブジェクトに変換し、その構築方法で時間を計算します.
ステップ4では、ユーザーの情報を引き出し、
ウェブサイトhttps://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CNgetリクエストを送信し、JSONデータを返します.
{    "openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl":    "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
"privilege":[ "PRIVILEGE1" "PRIVILEGE2"     ],
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

 
以上が微信側の授権過程であり、以下に微信開発文書のアドレスを添付する.
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432