SHA1
/** * 用SHA1算法生成安全签名 * @param map * @return 安全签名 * @throws AesException */ public static String getJsSHA1(Map<String, Object> map) { try { String[] array = new String[] { "noncestr", "jsapi_ticket", "timestamp", "url" }; Arrays.sort(array); StringBuffer sb = new StringBuffer(); // 字符串排序 for (int i = 0; i < array.length; i++) { if (i < array.length-1) { sb.append(array[i]).append("=").append(map.get(array[i])).append("&"); } else { sb.append(array[i]).append("=").append(map.get(array[i])); } } String str = sb.toString(); // SHA1签名生成 MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(str.getBytes()); byte[] digest = md.digest(); StringBuffer hexstr = new StringBuffer(); String shaHex = ""; for (int i = 0; i < digest.length; i++) { shaHex = Integer.toHexString(digest[i] & 0xFF); if (shaHex.length() < 2) { hexstr.append(0); } hexstr.append(shaHex); } return hexstr.toString(); } catch (Exception e) { e.printStackTrace(); return null; } } 六、通过config接口注入权限验证配置先执行wx.config方法,注入权限验证配置
// 页面一加载时执行该方法 getWXJsapiTicket() { // 此处需要将url用ajax传递给服务器,并接收返回来的参数 // ......... wx.config({ // 开启调试模式,调用的所有api的返回值会在客户端alert出来 // 若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印 debug: false, // 此处填写服务端返回的appId appId: appId, // 此处填写服务端返回的时间戳 timestamp: timestamp, // 此处填写服务端返回的随机字符串 nonceStr: nonceStr, // 此处填写服务端返回的签名 signature: signature, // 需要使用的JS接口列表,我只用到了扫一扫,所以只填写了scanQRCode // 如果需要其他JS接口,可以参考官方文档 jsApiList: [\'scanQRCode\'] }); }执行完wx.config方法后,执行某一点击事件,然后执行wx.scanQRCode方法,调用微信扫一扫
// 此为一点击事件 scanCode() { wx.scanQRCode({ // 默认为0,扫描结果由微信处理,1则直接返回扫描结果 needResult: 0, // 可以指定扫二维码还是一维码,默认二者都有 scanType: ["qrCode","barCode"], success: function (res) { // 当needResult 为 1 时,扫码返回的结果 let result = res.resultStr; } }); }不出意外的话,就可以在页面里正常地调用微信扫一扫了