MD5签名说明

MD5 是一种摘要生成算法,通过在签名原始串后加上商户通信密钥的内容,进行MD5运算,形成的摘要字符串即为签名结果。
各程序语言都有标准统一的MD5核心库,直接用即可,不懂的请网络搜索或SDK有案例。

 

商户算法签名模型设置为MD5时,采用本文档签名算法样例。

MD5签名计算公式:

支付请求签名街口支付

  1. sign = Md5(请求支付原始签名字符串+"~|~"key=商户MD5密钥)

异步通知签名街口支付

  1. sign = Md5(异步通知接收原始签名字符串+"~|~"key=商户MD5密钥)

举个例子:

请求参数列表街口支付

  1. service_type="connect_service"
  2. merchant_code="100000"
  3. interface_version="V1.0"
  4. sign_type="MD5"
  5. order_no="2233456788"
  6. order_time="2016-01-01 12:00:00"
  7. order_amount="100"
  8. product_number="1"
  9. notify_url="http://www.xxx.com/notify_url"
  10. return_url="http://www.xxx.com/return_url"
  11. bank_code="WEBCHAT"
  12. product_name="proname"
  13. order_userid="userid"
  14. order_info="additional"
  15. notice_type="0"
  16. sign="3ae4399102c49b8744db09799d0ea0a3"

第一步:根据请求支付原始签名字符串规定格式把对应参数值进行拼接,如下:

拼接字符串结果街口支付

  1. 100000~|~V1.0~|~MD5~|~2233456788~|~2016-01-01 12:00:00~|~100~|~1
  2. ~|~http://www.xxx.com/notify_url~|~http://www.xxx.com/return_url~|~WEBCHAT
  3. ~|~0~|~connect_service

第二步:在拼接原始签名串末尾加上MD5秘钥Key,如下:

末尾加上MD5key结果街口支付

  1. 100000~|~V1.0~|~MD5~|~2233456788~|~2016-01-01 12:00:00~|~100~|~1
  2. ~|~http://www.xxx.com/notify_url~|~http://www.xxx.com/return_url~|~WEBCHAT
  3. ~|~0~|~connect_service~|~rLLrGKO8bD4yoPOJNVN5aGkwJTR6MKoa

第三步:根据第二步原始签名串加密得到sign,如下:

签名Sign结果街口支付

  1. sign = md5(第二步签名串字符串)
  2. sign = "3ae4399102c49b8744db09799d0ea0a3"