当前位置: 首页 > news >正文

网站建设教案html留言簿网站基本框架搭建

网站建设教案,html留言簿网站基本框架搭建,wifi客户管理系统管理,怎么做淘宝网站的网页微信公众号 IT果果日记前言在上一篇文章“微信小程序如何获取用户信息”中我们完成了用户明文数据的校验工作#xff0c;本文将学习解密用户的非明文用户信息#xff0c;也就是获取用户的openId和unionId。解密调用wx.getUserProfile后将返回encryptedData和iv两个数据。encr…微信公众号 IT果果日记前言在上一篇文章“微信小程序如何获取用户信息”中我们完成了用户明文数据的校验工作本文将学习解密用户的非明文用户信息也就是获取用户的openId和unionId。 解密调用wx.getUserProfile后将返回encryptedData和iv两个数据。encryptedData是包括敏感数据在内的完整用户信息的加密数据iv用于解密这个数据。整个解密用户数据的过程同上篇文章中用户信息校验的流程基本相同。不同的是我们提交到服务器的数据是encryptedData和iv而不是signature和rawData。下面编写用户数据解密的核心代码: wx.login({success: function (loginRes){wx.getUserProfile({success: function (userRes){wx.request({url: http://localhost:8080/wxopen/wxdecryptuserinfodata: {code: loginRes.code,encryptedData: userRes.encryptedData,iv: userRes.iv},success: function(res){console.log(res.data);}})}})} }) 以上代码将code用于获取session_key、encryptedData和iv 3个参数发送到了后端接口wxdecryptuserinfo中。 服务器如何解密encryptedData数据呢解密时需要session_key、iv、小程序的AppId 3个变量参与。session_key由code可以换取到iv由小程序客户端提交AppId本身就是一个固定的已知变量。 具体的解密算法较为复杂但微信官方提供了包括C、NodeJS、PHP和Python 4种语言的解密SDK我们只需要使用官方提供的SDK即可无须自己编写解密算法。目前官方没有提供JAVA和C#版本的SDK开发者可自行翻译。下面是java的解密代码实现 MapString,Object map new HashMap(7); map.put(appid,wxAppId); map.put(secret,wxSecret); map.put(js_code, param.getCode()); map.put(grant_type,grantType); WxCode2SessionRet result null; try{String url https://api.weixin.qq.com/sns/jscode2session;String info HttpUtil.get(url, map);result JSON.parseObject(info, WxCode2SessionRet.class); } catch (Exception e){log.error(code2session失败, e);return null; } try {String result AesCbcUtil.decrypt(param.getEncryptedData(), result.getSession_key(), param.getIv(), UTF-8);JSONObject wxInfo JSONObject.parseObject(result);String unionId wxInfo.getString(unionId);String openid sessionRet.getOpenid(); } catch (Exception e) {throw new RuntimeException(用户信息校验失败); } AesCbcUtil.decrypt 解密方法public static String decrypt(String data, String key, String iv, String encodingFormat) {//被加密的数据byte[] dataByte Base64.decodeBase64(data);//加密秘钥byte[] keyByte Base64.decodeBase64(key);//偏移量byte[] ivByte Base64.decodeBase64(iv);try {Cipher cipher Cipher.getInstance(AES/CBC/PKCS7Padding);SecretKeySpec spec new SecretKeySpec(keyByte, AES);AlgorithmParameters parameters AlgorithmParameters.getInstance(AES);parameters.init(new IvParameterSpec(ivByte));cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化byte[] resultByte cipher.doFinal(dataByte);if (null ! resultByte resultByte.length 0) {String result new String(resultByte, encodingFormat);return result;}return null;} catch (Exception e) {log.error(解密失败,e);throw new RuntimeException(解密失败);} } WxCode2SessionRet.javaData public class WxCode2SessionRet implements Serializable {private String openid;private String session_key;private String unionid;private String errcode;private String errmsg; } 这样就可以从加密数据encryptedData里解密出我们想要的UnionId和openId了。 微信公众号 IT果果日记https://gitee.com/chenzhaoplushttps://github.com/chenzhaoplushttps://blog.csdn.net/cz285933169?spm1010.2135.3001.5421
http://www.hkea.cn/news/14451532/

相关文章:

  • 企业型网站网址卖网站模板
  • 我的世界做壁纸网站打不开宁波企业网站开发公司
  • 营销型网站建设报价方案天美影像传媒有限公司招聘
  • 数据网站有哪些芜湖龙湖建设工程有限公司网站
  • 沂seo网站推广做爰全过程的视频的网站
  • 网站首页作用宁德网
  • 作品集模板网站wordpress模板增加文章
  • 多语网站wordpress子站点高端公司小程序建设
  • 微网站模板在线网站缓存实例
  • 购物网站开发实战购物网站建设网站
  • 贵州做网站公司淄博桓台网站建设方案
  • 中山网站建设文化效果网站安全备案
  • 网站建设使用情况成都搭建企业网站
  • 上海网站开发设计公司咨询网站源码
  • 分类信息网站平台有哪些品牌网站怎么建设
  • 中国网站建设公司四个常见的网络营销方式
  • 长丰县住房和城乡建设局网站目标网站上做关键字布局
  • 视频解析接口网站怎么做cms免费开源
  • 佛山市外贸网站建设价格锡盟做网站
  • 网站的美观性北京市工程信息网官网
  • 门户网站搭建方案wordpress主题 机械
  • 深圳网站建设培训中国购物网站排行榜
  • 网站备案需要什么东西吉林网络营销方式优化
  • 满版型网站有哪些wordpress数据转移
  • 360永久免费建网站免费下载应用软件
  • 广州白云做网站的公司网站设计 导航条
  • 网络维护网站美工学生简单个人主页模板
  • 网站备案号信息做设计找图片的网站有哪些
  • 烟台电子商务网站建设成都网站设计公司电话
  • php购物网站开发文档中国外贸出口网站