酷酷七友软件定做 酷酷七友软件

android软件

100元求助签名算法|API调用问题专区 - 开发者论坛 - 论坛

灵灵qcc网店
级别: 新手上路


精华: 0
发帖: 2
金钱: 20 RMB
贡献值: 0 点
注册时间:2010-09-22
最后登录:2012-01-05

 100元求助签名算法


问题应该相当简单 简单点说 就是Refresh Token的签名算法 具体问题看完下面的应该就能了解了

淘宝Refresh Token激活例程

将各参数替换成我的Refresh Token,签名未处理
http://container.open.taobao.com/container/refresh?appkey=12364140&refresh_token=41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361&sessionkey=41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361&sign=xxxxxxx


淘宝的Refresh Token签名算法
根据参数名称将你的所有请求参数按照字母先后顺序排序:key + value .... key + value,对除签名外的所有请求参数按key做的升序排列, value无需编码。
例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1
参数名和参数值链接后,得到拼装字符串bar2baz3foo1secret同时拼接到参数字符串尾部进行md5加密,然后对签名进行16进制转码,再转换为大写方式。


根据上述签名算法 处理如下

1.根据参数名将所有参数按照字母先后排序并拼装字符串
appkey12364140refresh_token41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361sessionkey41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361

2. secret拼接到参数字符串尾部
appkey12364140refresh_token41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361sessionkey41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361235456311a996662842afc74bb86dcxxx

3. md5加密,进行16进制转码,再转换为大写方式
BCD667294D8ADFE4599378BEDC24001E

4.最后加上签名测试
http://container.open.taobao.com/container/refresh?appkey=12364140&refresh_token=41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361&sessionkey=41224000IJghMIi395101be3994a4c1ddba6f9254262e934646322361&sign=BCD667294D8ADFE4599378BEDC24001E

…..返回sign is error
签名错误 求解 是我签名算法[font=]还是本身就错了呢QQ 948446082 ?
引用 编辑 只看 复制 Posted: 2011-12-28 00:02 | [楼 主]
罗会通
级别: 侠客


精华: 0
发帖: 43
金钱: 540 RMB
贡献值: 0 点
注册时间:2009-12-01
最后登录:2012-01-14

 

你是要解析 refresh_token 吧?refresh_token本身就是签名
引用 编辑 只看 复制 Posted: 2011-12-28 11:02 | 1 楼
幻影时空
级别: 论坛版主


精华: 0
发帖: 2018
金钱: 20930 RMB
贡献值: 200 点
注册时间:2009-06-25
最后登录:2012-01-16

 

TOP  的签名算法就是
-----------------------------------
淘宝的Refresh Token签名算法
根据参数名称将你的所有请求参数按照字母先后顺序排序:key + value .... key + value,对除签名外的所有请求参数按key做的升序排列, value无需编码。
例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1
参数名和参数值链接后,得到拼装字符串bar2baz3foo1将secret同时拼接到参数字符串尾部进行md5加密,然后对签名进行16进制转码,再转换为大写方式。
------------------------------------
按这样的格式的,只不过,按这个规则正确了就可以了!

只不过,不同语言可能会在代码上的差误

要注意的也就是 请求参数在 计算签名的时候是不经过urlencode的, 传递参数的时候是需要urlencode的
另外就是UTF-8,还有就是MD5的算法的问题
新年新气象,新努力新方向,新收获新成果
引用 编辑 只看 复制 Posted: 2011-12-29 00:36 | 2 楼