sign生成规则

支付sign 生成规则

字段 类型 是否必填 说明
appid String 必填 应用ID
app_order String 必填 应用服务器订单号
amount Integer 必填 订单金额,单位为分,最小为 200
goods_name String 必填 商品名
user_data String 必填 透传数据,长度不超过128的字符串(无格式,仅包含数字和字母);或者长度为零字符串;
ts Integer 必填 h5服务器时间戳
sign String 必填 校验的 sign

sign 字段生成规则

  1. 将上表中除 sign 外的非空字段按照 ASCII 码排序
  2. 用 = 和& 进行拼接
  3. 再拼接 &key=api secret
  4. 最后MD5大写,生成 sign 的值

在线测试地址

支付sign 例子

字段 说明
appid ee1884a9ec0f7f50a7e39636c0d7106f 应用ID, 从 后台获取
api_secret cf9cab9b922b43dc26252ac25b42829b api 加密串,从后台获取
amount 1000
app_order Test_1535428860481
goods_name 斗地主
ts 1535699595 透传数据
user_data test 透传数据

将 appid, amount, app_order, goods_name, ts, user_data这几个字段排序拼接得到字符串:

amount=1000&app_order=Test_1535428860481&appid=ee1884a9ec0f7f50a7e39636c0d7106f&goods_name=斗地主&ts=1535699595&user_data=test

最后添加上 &key=cf9cab9b922b43dc26252ac25b42829b 得到字符串:


amount=1000&app_order=Test_1535428860481&appid=ee1884a9ec0f7f50a7e39636c0d7106f&goods_name=斗地主&ts=1535699595&user_data=test&key=cf9cab9b922b43dc26252ac25b42829b

对上述字符串进行MD5 加密然后转大写得到 F2DF76B030BDAC12B198268EFDC52973 字符串.

注: 上述的 appid 和 api secret 为测试用的应用ID 和通信加密串

let md5 = require('md5') // npm install md5

let sign = signMake(paramMake())

function paramMake() {
    return {
        amount: 1000,
        app_order: 'Test_1535428860481',
        appid: 'ee1884a9ec0f7f50a7e39636c0d7106f',
        goods_name: '斗地主',
        ts: 1535699595,
        user_data: 'test',
    }
}

function signMake(param) {
    let api_secret = 'cf9cab9b922b43dc26252ac25b42829b'
    let keys = Object.keys(param).sort((a,b)=>a.localeCompare(b))
    let pairs = keys.map(e=>`${e}=${param[e]}`).concat(`key=${api_secret}`)
    let s1 = pairs.join('&')
    let sign = md5(s1).toUpperCase()
    return sign
}

登录sign 生成规则

字段 类型 是否必填 说明
appid String 必填 应用ID
ts String 必填 时间戳
sign String 必填 校验的 sign

sign 字段生成规则

  1. 将上表中除 sign 外的非空字段按照 ASCII 码排序
  2. 用 = 和& 进行拼接
  3. 再拼接 &key=api secret
  4. 最后MD5大写,生成 sign 的值

在线测试地址

例子

字段 说明
appid ee1884a9ec0f7f50a7e39636c0d7106f 应用ID, 从 后台获取
ts 1535698503 时间戳

将 appid, ts这几个字段排序拼接得到字符串:

appid=ee1884a9ec0f7f50a7e39636c0d7106f&ts=1535698503

最后添加上 &key=cf9cab9b922b43dc26252ac25b42829b 得到字符串:

appid=ee1884a9ec0f7f50a7e39636c0d7106f&ts=1535698503&key=cf9cab9b922b43dc26252ac25b42829b

对上述字符串进行MD5 加密然后转大写得到 C44CEC4953AB1723665F3AAD1CFC1735 字符串.

注: 上述的 appid 和 api secret 为测试用的应用ID 和通信加密串

results matching ""

    No results matching ""