小畅通
  1. 支付接口
  • 对接指引
    • 对接说明
    • 技术规范
    • SDK说明
  • 支付接口
    • 统一支付下单
    • 查询支付订单V2
    • 关闭支付订单
    • 支付结果通知
    • 发起支付退款
    • 查询退款订单
    • 退款结果通知
  1. 支付接口

退款结果通知

接口说明#

接口描述:当退款完成时(成功或失败),支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
适用对象:普通商户 特约商户
请求URL:该链接是通过统一退款接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式:POST
请求类型:application/x-www-form-urlencoded

通知参数#

字段名变量名必填类型示例值描述
退款订单号refundOrderId是String(30)R20160427210604000490支付中心生成的退款单号
支付订单号payOrderId是String(30)P12021022311124442600返回支付系统订单号
商户号mchNo是String(30)M1621873433953商户号
应用IDappId是String(24)60cc09bce4b0f1c0b83761c9应用ID
商户退款单号mchRefundNo是String(30)20160427210604000490商户生成的退款单号
支付金额payAmount是int100支付金额,单位分
退款金额refundAmount是int100退款金额,单位分
货币代码currency是String(3)cny三位货币代码,人民币:cny
退款状态state是int2退款状态
0-订单生成
1-退款中
2-退款成功
3-退款失败
4-退款关闭
渠道订单号channelOrderNo否String20160427210604000490对应渠道的订单号
渠道错误码errCode否String1002渠道返回错误码
渠道错误描述errMsg否String134586944573118714渠道返回错误描述
扩展参数extParam否String(512)134586944573118714商户扩展参数,回调时会原样返回
创建时间createdAt是long1622016572190订单创建时间,13位时间戳
成功时间successTime否long1622016572190订单支付成功时间,13位时间戳
通知请求时间reqTime是String(30)1622016572190通知请求时间,,13位时间戳
签名sign是String(32)C380BEC2BFD727A4B6845133519F3AD6签名值,详见签名算法

返回结果#

业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)
注意:返回的字符串必须是小写,且前后不能有空格和换行符。
通知示例数据
{
    "appId": "60cc09bce4b0f1c0b83761c9",
    "channelOrderNo": "2021061822001423031419593035",
    "createdAt": 1623985552769,
    "currency": "cny",
    "extParam": "",
    "mchNo": "M1623984572",
    "mchRefundNo": "mho1623985552430",
    "payAmount": 58,
    "payOrderId": "P202106181104177050002",
    "refundAmount": 4,
    "refundOrderId": "P202106181105527690009",
    "state": 2,
    "successTime": 1623985554000
}

SDK验签代码示例#

   @RequestMapping("/mchJeepayRefundOrderNotify")
    public void mchJeepayRefundOrderNotify(HttpServletRequest request, HttpServletResponse response) throws IOException {

        // 获取到请求参数
        RefundOrderNotifyResModel refundOrderNotifyResModel = JeepayNotifyKit.convertRefundOrderNotifyResModel(request);

        // 获取到jeepay回调参数中的: mchNo 和 appId
        String mchNo = refundOrderNotifyResModel.getMchNo();
        String appId = refundOrderNotifyResModel.getAppId();
        String mchOrderNo = refundOrderNotifyResModel.getMchRefundNo(); // 商户订单编号

        String mchAppSecret = ""; // TODO 根据[mchNo,appId]自行查询配置的秘钥

        // 验签失败
        if(!refundOrderNotifyResModel.checkSign(mchAppSecret)){
            response.getWriter().print("sign fail");
            return;
        }

        // 以下为验签成功
        // TODO 商户业务逻辑处理。。。。。。。。。。。

        // 响应jeepay SUCCESS字样
        response.getWriter().print("SUCCESS");
    }
修改于 2026-08-29 03:24:46
上一页
查询退款订单
Built with