不参与验签规则
- 如果key中包含WithoutSign,该key不参与验签;
- 请求url的字符串,如果请求的url中包含WithoutSign,该接口不参与验签;
验签
协议规则
- 传输方式:为保证交易安全性,建议采用HTTPS传输
- 提交方式:采用POST方式提交
- 数据格式:提交数据都为json;返回数据采用JSON
- 字符编码:统一采用UTF-8字符编码
- 签名算法:MD5
- 签名要求:请求和接收数据均需要校验签名,详细方法请参考安全规范-数字签名
签名算法
- 除sign字段外,所有参数按照字段名的ascii码从小到大排序后使用QueryString的格式(即secret=yh&key1=value1&key2=value2…)拼接而成,空值不传递,不参与签名组串。
- 公式:sign=Md5(原字符串).toUpperCase
- 举例说明:deviceId=098f6bcd4621d373cade4e832627b4f6×tamp=1513302406&token=36165415151dsvd
- 得到的sign=Md5(secret=yh&deviceId=098f6bcd4621d373cade4e832627b4f6×tamp=1513302406&token=36165415151dsvd).toUpperCase()=7648CE21E5FF1C9B905B3344660CC12D
- header中的值参与验签;
web端
- web端的secret传yhWeb
app客户端
- Header中需传以下参数:deviceId(手机唯一标识,ios使用udid)、producer(android使用android.os.Build.MANUFACTURER、ios使用固定字符串apple)、channelId(渠道id,ios使用app store)、ip(手机的ip地址)、timestamp(