首页
关于
留言
归档
更多
邻居
Search
1
宝塔面板出现乱码
6,706 阅读
2
小浣熊CMS5.0漫画系统安装教程和采集教程
3,919 阅读
3
vfed 大橙子模板使用教程
3,564 阅读
4
YGbook 搭建完首页 不显示小说
2,824 阅读
5
Linux 搬瓦工 VPS一键安装桌面环境和RDP远程桌面连接
2,522 阅读
技术文章
网站源码
网站模板
资源分享
主机测评
登录
Search
标签搜索
苹果
Nginx
搜狗图床
小浣熊CMS
面板
狂雨cms采集规则
Ubuntu
Mysql8.0
百度文库
Java
word导出
jeecg-boot
苹果cms
excel 样式
美团对接
文言一心
Typecho
累计撰写
45
篇文章
累计收到
13
条评论
首页
栏目
技术文章
网站源码
网站模板
资源分享
主机测评
页面
关于
留言
归档
邻居
搜索到
1
篇与
的结果
2023-03-10
美团北极星 洗涤行业对接
美团北极星 洗涤行业对接美团洗衣行业对接 java代码签名不一致 sign值不一致中文乱码导致的 本地测试没问题 线上tomcat有问题需要先去下载java SDK SDK 版本: public static String generateSign(GenerateSignRequest generateSignRequest) { if (generateSignRequest == null) { throw new IllegalArgumentException("generateSign generateSignRequest is null"); } else { Map<String, String> params = generateSignRequest.getParams(); AssertUtils.checkArgument(params != null && !params.isEmpty(), "generateSign apiRequest is null,generateSignRequest:" + generateSignRequest); List<String> keys = new ArrayList(); Iterator var3 = params.entrySet().iterator(); while(var3.hasNext()) { Map.Entry<String, String> entry = (Map.Entry)var3.next(); if (org.apache.commons.lang.StringUtils.isNotEmpty((String)entry.getValue())) { keys.add(entry.getKey()); } } Collections.sort(keys); StringBuilder sb = new StringBuilder(); if (org.apache.commons.lang.StringUtils.isNotEmpty(generateSignRequest.getAppSecret())) { sb.append(generateSignRequest.getAppSecret()); } Iterator var8 = keys.iterator(); String sign; while(var8.hasNext()) { sign = (String)var8.next(); sb.append(sign).append(((String)params.get(sign)).trim()); } if (org.apache.commons.lang.StringUtils.isNotEmpty(generateSignRequest.getAppSecret())) { sb.append(generateSignRequest.getAppSecret()); } String encryptionKey = sb.toString().trim(); if (generateSignRequest.getSignMethod().equals(SignMethodEnum.MD5.getType())) { try { sign =genMd5(encryptionKey); return sign; } catch (Exception var6) { throw new RuntimeException(var6.getMessage()); } } else { return ""; } } } public static String genMd5(String info) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] infoBytes = info.getBytes("UTF-8"); md5.update(infoBytes); byte[] sign = md5.digest(); return byteArrayToHex(sign); } public static String byteArrayToHex(byte[] bytes) { StringBuilder sign = new StringBuilder(); for(int i = 0; i < bytes.length; ++i) { String hex = Integer.toHexString(bytes[i] & 255); if (hex.length() == 1) { sign.append("0"); } sign.append(hex.toLowerCase()); } return sign.toString(); } java代码public static String generateSign(Map<String, String> params, String appSecret, String signMethod) { // 第一步:参数排序 List<String> keys = Lists.newArrayList(); for (Map.Entry<String, String> entry : params.entrySet()) { if (StringUtils.isNotEmpty(entry.getValue())) { keys.add(entry.getKey()); } } Collections.sort(keys); // 第二步:把所有参数名和参数值串在一起 StringBuilder sb = new StringBuilder(); if (StringUtils.isNotEmpty(appSecret)) { sb.append(appSecret); } for (String key : keys) { sb.append(key).append(params.get(key).trim()); } if (StringUtils.isNotEmpty(appSecret)) { sb.append(appSecret); } String encryptionKey = sb.toString().trim(); // 第三步:加签 if (signMethod.equals("MD5")) { try { String sign = genMd5(encryptionKey); return sign; } catch (Exception e) { throw new RuntimeException(e.getMessage()); } }else{ //开发者暂不需支持,支持MD5即可 return ""; }}public static String genMd5(String info) throws NoSuchAlgorithmException, UnsupportedEncodingException {MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] infoBytes = info.getBytes(); md5.update(infoBytes); byte[] sign = md5.digest(); return byteArrayToHex(sign);}public static String byteArrayToHex(byte[] bytes) {StringBuilder sign = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(bytes[i] & 0xFF); if (hex.length() == 1) { sign.append("0"); } sign.append(hex.toLowerCase()); } return sign.toString();}
2023年03月10日
131 阅读
1 评论
0 点赞