MD5 是一种摘要生成算法,通过在签名原始串后加上商户通信密钥的内容,进行MD5运算,形成的摘要字符串即为签名结果。
各程序语言都有标准统一的MD5核心库,直接用即可,不懂的请网络搜索或SDK有案例。
商户算法签名模型设置为MD5时,采用本文档签名算法样例。
MD5签名计算公式:
支付请求签名街口支付
- sign = Md5(请求支付原始签名字符串+"~|~"key=商户MD5密钥)
异步通知签名街口支付
- sign = Md5(异步通知接收原始签名字符串+"~|~"key=商户MD5密钥)
举个例子:
请求参数列表街口支付
- service_type="connect_service"
- merchant_code="100000"
- interface_version="V1.0"
- sign_type="MD5"
- order_no="2233456788"
- order_time="2016-01-01 12:00:00"
- order_amount="100"
- product_number="1"
- notify_url="http://www.xxx.com/notify_url"
- return_url="http://www.xxx.com/return_url"
- bank_code="WEBCHAT"
- product_name="proname"
- order_userid="userid"
- order_info="additional"
- notice_type="0"
- sign="3ae4399102c49b8744db09799d0ea0a3"
第一步:根据请求支付原始签名字符串规定格式把对应参数值进行拼接,如下:
拼接字符串结果街口支付
- 100000~|~V1.0~|~MD5~|~2233456788~|~2016-01-01 12:00:00~|~100~|~1
- ~|~http://www.xxx.com/notify_url~|~http://www.xxx.com/return_url~|~WEBCHAT
- ~|~0~|~connect_service
第二步:在拼接原始签名串末尾加上MD5秘钥Key,如下:
末尾加上MD5key结果街口支付
- 100000~|~V1.0~|~MD5~|~2233456788~|~2016-01-01 12:00:00~|~100~|~1
- ~|~http://www.xxx.com/notify_url~|~http://www.xxx.com/return_url~|~WEBCHAT
- ~|~0~|~connect_service~|~rLLrGKO8bD4yoPOJNVN5aGkwJTR6MKoa
第三步:根据第二步原始签名串加密得到sign,如下:
签名Sign结果街口支付
- sign = md5(第二步签名串字符串)
- sign = "3ae4399102c49b8744db09799d0ea0a3"