1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java微信授权小程序获取用户昵称头像等基本信息

Java微信授权小程序获取用户昵称头像等基本信息

时间:2019-06-30 03:53:57

相关推荐

Java微信授权小程序获取用户昵称头像等基本信息

注意:

1.目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

2.微信开放平台需要绑定小程序,如果没有获取到unionId以及其他信息,只拿到了openId与sessionkey,那么请到微信开放平台绑定小程序(登录微信开放平台(https://open./) — 管理中心 — 小程序 — 绑定小程序)

官网地址如下:

https://developers./miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html

1.小程序授权拿到code

2.小程序授权获取用户基本信息拿到encryptedData与iv

/** 获取小程序用户基本信息*/@RequestMapping(value="code2SessionPhone", method = RequestMethod.GET)public ReturnData code2SessionPhone (HttpServletRequest req) throws Exception {String encryptedData = req.getParameter("encryptedData");String iv = req.getParameter("iv");String sessionkey = req.getParameter("sessionkey");// 解密byte[] encrypData = Base64Utils.decodeFromString(encryptedData);byte[] ivData = Base64Utils.decodeFromString(iv);byte[] sessionKey = Base64Utils.decodeFromString(sessionkey);AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivData);Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");SecretKeySpec keySpec = new SecretKeySpec(sessionKey, "AES");cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);String resultString = new String(cipher.doFinal(encrypData), "UTF-8");JSONObject object = JSONObject.parseObject(resultString); return ReturnData.success(object);}

拿到的object数据有

{"openId": "OPENID","nickName": "NICKNAME","gender": GENDER,"city": "CITY","province": "PROVINCE","country": "COUNTRY","avatarUrl": "AVATARURL","unionId": "UNIONID","watermark":{"appid":"APPID","timestamp":TIMESTAMP}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。