签名规则

橙券与开发者之间进行接口交互请求,都会包含签名参数,链接中签名参数的生成,都是通过 MD5 生成的签名参数,以确保请求安全。

1.MD5签名原理

橙券签名 MD5 签名原理如下:

将请求参数和app_secret封装成 Map 集合,按照参数名(Key)进行升序排列,将排序后 Map 集合的参数值(value)拼装成字符串进行 MD5 签名。其中app_secret在签名中的顺序取决于他在所有参数名中的顺序。

例:

app_key: testapp_key, app_secret: testsecret

参数列表:

{ app_key = testapp_key, timestamp = 1405495206727 }

签名原串:

app_key=testapp_key&app_secret=testsecret&timestamp=1405495206727

签名后字符串:

39e73663eb1caf2096968e680991ba2c

签名URL示例: https://jfwechat.chengquan.cn/autoLogin?app_key=testapp_key&timestamp=129832323&sign=39e73663eb1caf2096968e680991ba2c

注意:
  1. 签名验证时,必须遍历request请求中的所有参数进行签名验证。 橙券向开发者发起的请求,未来有可能会添加业务参数,开发者在验证请求时,务必对所有参数进行遍历,全部加入签名验证数据中。
  2. 开发者切勿写死签名验证参数,未来橙券升级参数变更将导致开发者服务不可用,请谨慎。

2.签名规则测试用例

为了方便开发者对签名方法进行测试验证,下面举例说明签名规则和签名方法。

  1. 以免登陆地址参数请求签名参数为例:url="https://jfwechat.chengquan.cn/autoLogin?sign=49b12bc5579a2a2a4652a68cd53c1e5e&uid=test&app_key=testapp_key&credits=100&timestamp=1520559858580"

  2. 其中密钥app_secret的值为:app_secret = testapp_secret

  3. 获取请求链接中所有请求参数封装成 Map 集合 :{ app_key = testapp_key; uid = test; credits = 100; timestamp = 1520559858580 }

  4. app_secret加入参数列表集合后如下: { app_key = testapp_key, app_secret = testapp_secret, uid = test, credits = 100, timestamp = 1520559858580 }

  5. 把 Map 集合按照参数名升序排序之后如下: { app_key = testapp_key, app_secret = testapp_secret, credits = 100, timestamp = 1520559858580, uid = test }

  6. 根据规则,把排序后参数列表的参数值拼装成签名源串如下: strs=app_key=testapp_key&app_secret=testapp_secret&credits=100&timestamp=1520559858580&uid=test

  7. 把上面拼装成的参数源串加密后获得的签名如下: sign = MD5(strs) = 49b12bc5579a2a2a4652a68cd53c1e5e

results matching ""

    No results matching ""