搜索结果

×

搜索结果将在这里显示。

退款结果通知

退款结果通知

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

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

> 返回结果

业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)

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

通知示例数据JSON

{
    "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
}
@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");
    }