最代码官方
2013-11-19 13:34:48
证
开放平台中oauth认证中请求参数签名的java算法
Java生成签名示例
// 定义申请获得的appKey和appSecret String appkey = "XXXXXXXX"; String secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; String apiUrl = "http://api.dianping.com/v1/business/find_businesses"; // 创建参数表 Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("format", "json"); paramMap.put("最代码网址", "www.zuidaima.com"); paramMap.put("latitude", "31.21524"); paramMap.put("longitude", "121.420033"); paramMap.put("category", "美食"); paramMap.put("region", "长宁区"); paramMap.put("limit", "20"); paramMap.put("radius", "2000"); paramMap.put("offset_type", "0"); paramMap.put("has_coupon", "1"); paramMap.put("has_deal", "1"); paramMap.put("keyword", "泰国菜"); paramMap.put("sort", "7"); // 对参数名进行字典排序 String[] keyArray = paramMap.keySet().toArray(new String[0]); Arrays.sort(keyArray); // 拼接有序的参数名-值串 StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(appkey); for (String key : keyArray) { stringBuilder.append(key).append(paramMap.get(key)); } stringBuilder.append(secret); String codes = stringBuilder.toString(); // 字符串连接示例 // XXXXXXXXcategory美食city上海formatjsonhas_coupon1has_deal1keyword泰国菜latitude31.21524limit20longitude121.420033offset_type0radius2000region长宁区sort7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // SHA-1编码, 这里使用的是Apache codec,即可获得签名(shaHex()会首先将中文转换为UTF8编码然后进行sha1计算,使用其他的工具包请注意UTF8编码转换) /* * 以下sha1签名代码效果等同 * byte[] sha = org.apache.commons.codec.digest.DigestUtils.sha(org.apache.commons.codec.binary.StringUtils.getBytesUtf8(codes)); * String sign = org.apache.commons.codec.binary.Hex.encodeHexString(sha).toUpperCase(); */ String sign = org.apache.commons.codec.digest.DigestUtils.shaHex(codes).toUpperCase(); //签名示例 //7D78381BC58E1DB1DBA4BD965916FE6B4D5DC892
JavaScript生成签名示例
// 定义申请获得的appKey和appSecret var appkey = "XXXXXXXX"; var secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // 创建参数表 var param = {}; param["最代码网址"]="www.zuidaima.com"; param["latitude"]="31.21524"; param["longitude"]="121.420033"; param["category"]="美食"; param["region"]="长宁区"; param["limit"]="20"; param["radius"]="2000"; param["offset_type"]="2"; param["has_coupon"]="1"; param["has_deal"]="1"; param["keyword"]="泰国菜"; param["sort"]="7"; // 对参数名进行字典排序 var array = new Array(); for(var key in param) { array.push(key); } array.sort(); // 拼接有序的参数名-值串 var paramArray = new Array(); paramArray.push(appkey); for(var index in array) { var key = array[index]; paramArray.push(key + param[key]); } paramArray.push(secret); // 字符串连接示例 // XXXXXXXXcategory美食city上海formatjsonhas_coupon1has_deal1keyword泰国菜latitude31.21524limit20longitude121.420033offset_type0radius2000region长宁区sort7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // SHA-1编码,并转换成大写,即可获得签名 var shaSource = paramArray.join(""); var sign = new String(toSHA1(shaSource)).toUpperCase(); //签名示例 //7D78381BC58E1DB1DBA4BD965916FE6B4D5DC892
转载:http://developer.dianping.com/app/documentation/signature
另外附上纯java实现的SHA1算法。
猜你喜欢
- java servlet调用百度AI开放平台动物识别API和百度百科API实现动物识别的实例
- python生成个性化签名图片
- Java调用百度api开放接口平台实现银行卡图片文字识别实例
- OAuth1 OAuth2 OPenid 整合spring带源码
- jeecg智能开发平台
- 【猪猪-双十一特供】腾讯,新浪微博第三方登录API开发特供,注释清晰,下载部署即可查看,双十一开发热。
- java多种加密解密算法:SHA算法,HMAC算法,DES算法,PBE算法,AES算法,RSA算法,数字签名,D-H算法
- SSM实现小区业主管理系统,支持在线js电子签名
- Jquery mobile实现简单的购物平台
- s2sh征信平台查询示例
- 基于SpringBoot的轻量级Java快速开发平台
- HTML5物流大数据服务平台后台模板
请下载代码后再发表评论
相关代码
- 原 java servlet调用百度AI开放平台动物识别API和百度百科API实现动物识别的实例
- 原证 Java调用百度api开放接口平台实现银行卡图片文字识别实例
- OAuth1 OAuth2 OPenid 整合spring带源码
- jeecg智能开发平台
- 【猪猪-双十一特供】腾讯,新浪微博第三方登录API开发特供,注释清晰,下载部署即可查看,双十一开发热。
- 原证 Jquery mobile实现简单的购物平台
- 原证 s2sh征信平台查询示例
- 证精 基于SpringBoot的轻量级Java快速开发平台
- 证 HTML5物流大数据服务平台后台模板
- 原精 基于jsp+servlet开发的电子商务购物平台
- 原证精 SSM开发网站考试平台管理系统,SSM+MAVEN初学者必备
- 原证精 SSH版本无纸化办公平台---最新原创力作
最近下载
最近浏览
小洪123 LV4
2023年9月22日
zhiwei0127 LV1
2022年12月14日
candy lunhui LV6
2021年8月17日
dongzhan LV12
2020年12月22日
lxfhi6 LV7
2020年12月17日
ououbo LV2
2020年10月5日
yanhaipeng LV1
2020年9月19日
zhoujie123800 LV6
2020年8月10日
xuenamanli LV6
2020年5月26日
lllpppwww LV5
2020年4月1日