[代码]public[代码] [代码]Map<String, String> SHA1(String url, String jsapiTicket) {[代码][代码] [代码][代码]Map<String, String> map = [代码][代码]new[代码] [代码]HashMap<>([代码][代码]6[代码][代码]);[代码][代码] [代码][代码]String nonceStr = getRandomStr([代码][代码]16[代码][代码]);//生成16位随机字符串[代码][代码] [代码][代码]String timestamp = createTimestamp();[代码][代码] [代码][代码]String string1;[代码][代码] [代码][代码]String signature = [代码][代码]""[代码][代码]; //签名[代码][代码] [代码][代码]//注意这里参数名必须全部小写,且必须有序[代码][代码] [代码][代码]string1 = [代码][代码]"jsapi_ticket="[代码] [代码]+ jsapiTicket +[代码][代码] [代码][代码]"&noncestr="[代码] [代码]+ nonceStr +[代码][代码] [代码][代码]"&timestamp="[代码] [代码]+ timestamp +[代码][代码] [代码][代码]"&url="[代码] [代码]+ url;[代码][代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]MessageDigest digest = MessageDigest[代码][代码] [代码][代码].getInstance([代码][代码]"SHA-1"[代码][代码]);[代码][代码] [代码][代码]digest.update(string1.getBytes());[代码][代码] [代码][代码]byte[代码] [代码]messageDigest[] = digest.digest();[代码][代码] [代码][代码]StringBuffer hexStr = [代码][代码]new[代码] [代码]StringBuffer();[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]int[代码] [代码]i = [代码][代码]0[代码][代码]; i < messageDigest.length; i++) {[代码][代码] [代码][代码]String shaHex = Integer.toHexString(messageDigest[i] & [代码][代码]0xFF[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码](shaHex.length() < [代码][代码]2[代码][代码]) {[代码][代码] [代码][代码]hexStr.append([代码][代码]0[代码][代码]);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]hexStr.append(shaHex);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]signature = hexStr.toString(); //签名[代码][代码] [代码][代码]map.put([代码][代码]"url"[代码][代码], url);[代码][代码] [代码][代码]map.put([代码][代码]"jsapi_ticket"[代码][代码], jsapiTicket);[代码][代码] [代码][代码]map.put([代码][代码]"nonceStr"[代码][代码], nonceStr);[代码][代码] [代码][代码]map.put([代码][代码]"timestamp"[代码][代码], timestamp);[代码][代码] [代码][代码]map.put([代码][代码]"signature"[代码][代码], signature);[代码][代码] [代码][代码]return[代码] [代码]map;[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](NoSuchAlgorithmException e) {[代码][代码] [代码][代码]e.printStackTrace();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]null[代码][代码];[代码][代码] [代码][代码]}[代码]这个是签名生成方法
H5分享提示签名错误,是后端还是前端的问题?在后端返回的:随机字符串,时间戳,和后端生成的签名,还有url;经过http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign这个验证,后端返回的签名与验证工具生成的签名一致.但是前端用到的时候,报wx-js-sdk config:fail,Error: invalid signature签名无效错误 想问下大佬,是后端还是前端的问题
2019-11-11union_id机制你没看吗?https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
对encryptedData解密拿不到union_id?小程序绑定了开放平台,那么用户进入,解密encryptedData的数据里一定会有union_id吧,现在我的这情况是有的用户有,有的用户没有,而且存在sessionkey里边有但encryptedData里没有的情况
2019-11-11谢谢
小程序登录为什么获取不到unionid?一直获取不到unionid,求解决
2019-07-31