· 开发文档

· 支付社区

首页

小新支付

文档中心

支付社区

关于我们

  • 目录
  • 预制码支付成功消息通知

    1. 协议规则

    传输方式:采用HTTP传输(生产环境建议HTTPS)
    提交方式:采用POST/GET方式提交
    字符编码:UTF-8
    签名算法:MD5

    1.1 参数规范

    交易金额:默认为人民币交易,单位为分,参数值不能带小数。

    1.2 安全规范

    签名算法

    签名生成的通用步骤如下

    第一步: 设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
    特别注意以下重要规则:
    ◆ 参数名ASCII码从小到大排序(字典序);
    ◆ 如果参数的值为空不参与签名;
    ◆ 参数名区分大小写;
    ◆ 验证调用返回或支付中心主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
    ◆ 支付中心接口可能增加字段,验证签名时必须支持增加的扩展字段

    第二步: 在stringA最后拼接上key[即 StringA + "&key=" + 私钥 ] 得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

    如请求支付系统参数如下:

    1. Map signMap = new HashMap<>();
    2. signMap.put("userId", "test01");
    3. signMap.put("type", "wechat");
    4. signMap.put("money", Double.valueOf(2));
    5. signMap.put("remark", "");
    6. signMap.put("outTradeNo", "P12312321123");

    待签名值:money=2.0&outTradeNo=P12312321123&type=wechat&userId=test01&key=EWEFD123RGSRETYDFNGFGFGSHDFGH
    签名结果:5E0AA05DD4BB4FE5AB65608123EBA591
    最终请求支付系统参数:money=2.0&outTradeNo=P12312321123&type=wechat&userId=test01&sign=5E0AA05DD4BB4FE5AB65608123EBA591

     

    2. 预制码支付成功消息通知

    接口描述

    当预制码支付成功, 如果系统有配置代理商的通知地址, 则系统会按照约定通过HTTP协议推送消息到指定地址。 

     

    通知参数

    字段名 变量名 必填 类型 示例值 描述
    商户订单号

    tradeOrderId

    String(30)
    E01202112220337586800004
    商户订单号
    支付系统订单号

    payOrderId

    String(30)
    P01202112220337587810004
    支付系统订单号
    商户ID

    mchId

    Long
    20000000
    商户ID
    商户应用ID

    appId

    String(24)   应用ID
    订单金额

    orderAmount

    String(30)
    100
    订单金额,单位分
    优惠金额

    discountAmount

    int 0 优惠金额,单位分
    支付金额

    amount

    int 100 支付金额,单位分
    渠道用户ID

    channelUserId

    Stirng
    2088102175745711
    渠道用户标识
    状态

    status

    int 2 2-支付成功
    支付产品ID

    productId

    int 8001 支付产品ID
    支付产品类型

    productType

    int 4 支付产品类型: 1-现金收款, 2-会员卡支付, 3-微信支付, 4-支付宝支付,5-云闪付
    门店ID

    storeId

    Long 1001 门店ID
    交易成功时间

    tradeSuccTime

    Long
    1640160410000
    1640160410000 格式
    预制码ID

    preQrcodeId

    String
    100027
    预制码ID
    签名

    sign

    String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法

    返回结果

    业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为 0/5/10/15/20,单位:秒)最多发送5次。 

    注意:返回的字符串必须是小写,且前后不能有空格。

    6. 支付产品

    产品ID 产品名称
    8004 微信公众号支付
    8020 微信条码支付
    8023 微信小程序支付
    8008 支付宝服务窗支付
    8021 支付宝条码支付

    7. 错误码

    RetCode 描述
    0 成功
    9999 业务异常,具体错误详见RetMsg字段
    0100 商户签名异常
    0010 系统错误
    0011 请使用post方法
    0012 post数据为空
    0013 签名错误
    0014 参数错误
    0015 商户不存在
    0110 第三方超时
    0111 第三方异常
    0112 订单不存在
    0113 订单已支付
    0114 商品不存在
    0115 价格不对
    0116 物品数量不对
    0117 过程返回255
    0118 DB错误
    0119 支付中心没有对应的渠道
    0120 修改订单状态失败