## 签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或建业支付平台主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
◆ 文中涉及md5均为小写32位,sign=md5(key),比如:md5(jyzz2019)
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算(结果是小写),得到sign值signValue。
◆ key获取路径:测试数据请参考[测试账户](https://www.kancloud.cn/zzkpay/jyzzpay/1036054),生产数据请联系业务人员获取。
举例:
假设传送的业务参数如下:
```
appId: ea5d5a258f
mchId: 1111
orderAmount: 1000
body: test
nonceStr: ibuaiVcKdpRxkhJA
```
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
```
stringA="appId=ea5d5a258f&body=test&mchId=10000100&nonceStr=ibuaiVcKdpRxkhJA&orderAmount=1000";
```
第二步:拼接API密钥,获取sign:
```
stringSignTemp=stringA+"&key=md5(key)"//注:key为支付平台分发的密钥key
sign=md5(stringSignTemp)="96e79218965eb72c92a549dd5a330112"//注:md5签名方式
```
最终获得JSON字符串:
```
{"appid":"ea5d5a258f","mch_id":10000100,"orderAmount":10000,"nonce_str":"ibuaiVcKdpRxkhJA","sign":"96e79218965eb72c92a549dd5a330112"}
```
第三步:业务参数JSON加密,获取最终上送数据:
对JSON串进行3des加密,如3des(JSON,desKey)
desKey :3des加密所需key
```
{"data":"e3ceb5881a0a1fdaad01296d#m0a1fdaad01296d#m0a1fdaad01296d#m0a1fdaad01296d#mM"}
```
- 文档说明
- 项目说明
- 修改记录
- 场景介绍
- 业务流程
- 开发步骤
- 注意事项
- 可配置密钥签名
- 2.0版本变更说明
- 接口规则
- 协议规则
- 安全规范
- 测试账户
- 测试信息
- API文档
- 收银台
- Android
- IOS
- H5支付
- 扫码付
- 体系外付款码
- 浏览器H5收银台
- 交易查询
- 交易通知
- 申请退款
- 退款查询
- 退款通知
- 批量退款
- 对账单下载
- prepareUrl
- 关闭订单
- 查询订单版本
- 商户
- 商户费率信息编辑
- 商户录入
- 商户编辑
- 查询平台店铺id
- 获取商户可结算信息
- 获取登录名是否存在
- 查询卡系统商户ID
- 大食堂商户进件
- 大食堂商户编辑
- 大食堂商户费率信息编辑
- 大食堂平台服务费信息编辑
- 结算相关
- 触发结算补单
- 接收结算订单
- 团购业务拆单(多次子订单退款)
- 优惠券下单消费
- 优惠券退款
- 优惠券接收接收订单
- 查询拆单结算数据
- 分期结算入账
- 建业+线下订单拆单
- 扫码支付
- 扫码预下单
- 扫码退款
- 支付订单查询
- 退款订单查询
- 扫码交易通知
- 扫码退款通知
- 文档描述
- 客户端
- 扫码支付获取支付列表
- 刷新支付二维码
- 扫码支付设置支付顺序
- 设置是否免密支付
- 获取设置支付列表
- 发起支付
- 长连接通知app
- app扫码预下单测试
- 小额免密协议
- 使用说明
- 设置免密支付详情
- 获取app支付页支付类型与支付订单详情
- 我的优惠券列表
- 可用优惠券
- 获取优惠券单个
- PC端二维码生成规则
- 共享财务
- 删除接口
- 服务商日账单查询
- 服务商商户日账单对账
- H5/小程序-支付方式列表
- H5/小程序-扫码支付接口
- H5/小程序扫码新支付接口
- H5/小程序扫码新支付方式列表
- H5/小程序扫码查询通宝+折扣
- 支付sdk
- 获取支付列表
- 支付下单
- 查询是否实名
- APP微信小程序下单(APP端)
- 订单状态查询
- 微信小程序预下单拉起支付(小程序端)
- 应答码说明
- 联系我们
- 大额汇款
- 大额预下单
- 大额订单查询
- 大额汇款下单
- 业务方校验加密-prepareUrl
- 大额通道通知汇款成功
- 大额通知
- 大额汇款单查询
- 大额订单列表查询
- 大额订单详情查询
- 组件跳转路径
- 大额订单取消
- 对接注意事项
- pos大额
- 下单
- pos支付成功
- pos每笔支付
- pos每笔撤销
- pos支付记录查询
- pos大额每笔异步通知
- 协作
- 统一传递变量
- 应答码
- 应用日志目录规范
- 公众号/服务窗H5
- 传入参数
- 支付列表
- 支付下单
- 抖音支付
- 抖音支付下单
- 代付
- 代付发起
- 代付查询
- 异步通知
- 易生账户余额
- 其他业务
- 极速退款-商家补贴
- 超时赔付
- 通知业务完成
- 大食堂商户附加费入账
- 业务方自动对账
- 查询业务方账单总计
- 获取建业+对应账单详情
- 通知建业+需要补推送拆单
- 补单推送结算
- 商户统一进件业务
- 获取token
- 商户进件
- 商户进件预加载数据获取
- 上传图片
- 获取商户查看编辑数据
- 商户修改
- 获取门店预加载数据
- 门店进件
- 获取门店查看编辑数据
- 门店修改
- 凯强需要的获取门店信息接口
- Mq队列数据格式
- 获取分支银行信息
- 营销补贴
- 营销补贴拆单
- 新营销补贴拆单-支持多笔
- 业务成功通知
- 查询代理及所属服务商
- 查询门店、商户、代理、服务商
- 根据类型和id查询数据
- 中房
- 中房-获取支付列表
- 业务方统一对账
- 业务方上传账单
- 获取平台方日账单详情
- 异常订单处理
- 回调通知账单对比结果
- 获取业务方账单
- 获取商户账单
- 大额支付查询
- 银基商城
- 实体卡消费拆单
- 异步通知拆单结果
- E卡结算单首页
- 去结算的账户信息
- 结算记录
- 确认结算
- 驳回结算
- 修改同步状态
- 结算记录的账户信息
- 支付H5(手机浏览器)
- 传入H5参数
- H5支付列表
- 支付下单接口
- 实体卡消费
- 实体卡消费接口
- H5商户统一进件
- 发验证码
- 录件员登录
- 进行中的录单列表/数量
- 录单详情
- 获取二维码
- 商户登录
- 商铺列表
- 门店详情
- 新建门店
- 录单员新建商户
- 代商户入件
- 商户自助入件
- 上传文件
- 商户获取个人档案信息
- 录单员获取商户档案信息
- 查询商户信息
- 创建商户结果
- tp-商户获取token
- tp-获取商户进件状态
- tp-根据token获取初始化权限信息
- 共享家园
- 对接说明
- 接收结算数据
- 至尊通道对账
- 接收通道通知
- 社区商业
- 现金入账
- 代理账户
- 分账明细
- 请求现金收账单
- 确认收账单状态
- 更新账单状态
- pos支付
- pos扫码支付
- 查询商户信息
- 获取订单列表
- pos退款
- pos实体卡消费
- pos通宝+消费
- 车位宝
- 车位宝交付