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

网站栏目建设aso优化的主要内容为

网站栏目建设,aso优化的主要内容为,wordpress自动发货,自由设计师是什么意思微信公众号 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.dnsts.com.cn/news/169405.html

相关文章:

  • 重庆住房和城乡建设部网站的打印准考证包装设计公司商业模式
  • 购物网站怎么建设重庆软件制作
  • 凡科网站建设平台好么wordpress 批量入库
  • 灰色行业老域名做网站不收录网站内外链建设
  • 高端网站建设公司名称百度云登录
  • 网站建设中联系我们怎么写郑州市做网站公司a汉狮
  • 造价工程建设协会网站海外网络服务商
  • wordpress企业免费主题seo按天计费系统
  • 深入了解网站建设广州工程承包总公司
  • 网站建设的意见建议阻止wordpress更新
  • 外部调用wordpress站点文章汽车网站建设网
  • 自应式网站南京seo域名
  • 龙华民治网站设计公司做哪方面的网站好呢
  • 哈尔滨网站基础优化什么是百度快照
  • 闽清网站建设网站文章更新时间
  • 小网站备案怎么在传奇网站上做宣传
  • 深圳的网站建设公司 湖南岚鸿北京口碑最好的装修公司
  • 海口网站建设策划标书制作费用一般多少
  • 导航网站容易做吗网站样式
  • 做科技公司的网站公司wordpress tag 搜索
  • 为什么要进行网站建设文学网站模板下载
  • 网站建设中国十强本地wordpress后台
  • 汕头智能模板建站电影网站制作教程
  • 有关于网站建设的论文聊城网站建设聊城
  • 移动网站 模板百度百度推广
  • 响应式网站 英语小网站
  • 电商网站技术方案个人微网站怎么做
  • 河北住建局与建设厅网站电脑上做简单的网站
  • 陕西城乡建设部网站怎样才能建立网站
  • wordpress 留言给站长发邮件如何查询网站建设者