开放文档
♦ 签名说明
调用API时需要对请求参数进行签名验证,优购服务器也会对该请求参数进行验证是否合法的。
♦ 算法
根据参数名称将你的所有请求参数按照字母先后顺序排序: key + value .... key + value,对除签名和图片外的所有请求参数按 key 做的升序排列, value 无需编码。
例如:将 param1=3, param3=2, param2=3 排序为 param1=3, param2=3, param3=2,参数名和参数值链接后,得到拼装字符串param13param23param33
• MD5:
将 app_secret 同时拼接到参数字符串头部进行 MD5 加密后,格式是:byte_to_hex (md5(secretkey1value1key2value2...))。
• SHA-1:
将 app_secret 同时拼接到参数字符串头部进行 SHA-1 加密后,格式是:byte_to_hex (sha-1(secretkey1value1key2value2...))。
注:byte_to_hex 为自定义方法,加密结果是32位的字符串。图片参数不用加入签名中。向优购服务器发送 get 请求时如参数值包含中文需使用 encodeURIComponent 对参数值进行编码。
♦ 实例
调用API:yougou.order.get,使用系统默认 MD5 为例,因为各语言语法不一致,以下实例只体现逻辑,使用app_key=SP001 app_secret=123456
method=yougou.order.get
timestamp=2012-05-15 12:33:23
format=xml
app_key=SP001
app_version=1.0
sign_method=md5
order_sub_no=ORDER001
app_key=SP001
app_version=1.0
format=xml
method=yougou.order.get
order_sub_no=ORDER001
sign_method=md5
timestamp=2012-05-15
12:33:23
连接参数名与参数值,并在头部加上 app_secret 值
123456app_keySP001app_version1.0formatxmlmethodyougou.order.getorder_sub_noORDER001sign_methodmd
5timestamp2012-05-15 12:33:23
32位 MD5 值 -> 1cf7372a8ceb574400538ebbd183ea5d
http://183.62.162.119/mms/api.sc?sign=1cf7372a8ceb574400538ebbd183ea5d&app_key=SP001...