1. 主页
  2. API 文档
  3. Sign 签名生成方法

Sign 签名生成方法

支付中将对数据里面的内容进行鉴权,确定携带的信息是真实、有效、合理的。因此,这里将定义生成sign 字符串的方法。

对所有传入参数按照字段名的ASCII 码从小到大排序(字典序) 后,使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1,值为空的字段不参与签名。

b.在 string1 最后拼接上 key=Key(商户支付密钥) 得到待签名字符串,并对待签名字符串进行 md5 运算,再将得到的签名字符串所有字符转换为大写,得到 sign 值。

测试商户号:000201608231035295

测试支付秘钥:62ece2fce3d9d86637eca079aa002e3c

假设传入组装的的xml内容为:

<xml>

<body>Test</body>

<funname>prepay</funname>

<merid>000201608231035295</merid>

<orderid>cs1485407071222</orderid>

<paymethod>wx</paymethod>

<sign>DD5D21F7B96CBB0D7F6C053AC351B081</sign>

<subject>testorder</subject>

<totalfee>0.01</totalfee>

</xml>

(1)经过 a 过程 URL 键值对字典序排序后的字符串 string1 为:

body=Test&funname=prepay&merid=000201608231035295&orderid=cs1485407071222&paymethod=wx&subject=testorder&totalfee=0.01;

(2)经过 b 过程后得到 sign 为:

sign=md5(string1&key=62ece2fce3d9d86637eca079aa002e3c).toUpperCase()

=md5(body=Test&funname=prepay&merid=000201608231035295&orderid=cs1485407071222&paymethod=wx&subject=testorder&totalfee=0.01&key=62ece2fce3d9d86637eca079aa002e3c) .toUpperCase()

=”dd5d21f7b96cbb0d7f6c053ac351b081”.toUpperCase()

=DD5D21F7B96CBB0D7F6C053AC351B081

这篇文章对您有用吗?

我们要如何帮助您?