搜索结果

×

搜索结果将在这里显示。

支付结果通知

支付通知

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

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId String(30) P12021022311124442600 返回支付系统订单号
商户号 mchNo String(64) M1621873433953 商户号
应用ID appId String(64) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo String(64) 20160427210604000490 返回商户传入的订单号
支付接口 ifCode String(30) wxpay 支付接口编码
支付方式 wayCode String(30) WX_LITE 支付方式,微信小程序WX_LITE
支付金额 amount int 100 支付金额,单位分
货币代码 currency String(3) cny 三位货币代码,人民币:cny
订单状态 state int 2 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭
客户端IP clientIp String(32) 210.73.10.148 客户端IPV4地址
商品标题 subject String(128) 店来宝商品标题测试 商品标题
商品描述 body String(256) 店来宝商品描述测试 商品描述
渠道订单号 channelOrderNo String 20160427210604000490 对应渠道的订单号
渠道错误码 errCode String 1002 渠道下单返回错误码
渠道错误描述 errMsg String 134586944573118714 渠道下单返回错误描述
扩展参数 extParam String(512) 134586944573118714 商户扩展参数
支付成功时间 successTime long 1622016572190 订单支付成功时间,13位时间戳
创建时间 createdAt long 1622016572190 订单创建时间,13位时间戳
通知请求时间 reqTime String(30) 1622016572190 通知请求时间,,13位时间戳
签名 sign String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法

以下扩展参数如需同步传递需在商户后台配置

字段名 变量名 必填 类型 示例值 描述
商户门店ID storeId int 商户门店ID
经度 lng String 商户门店ID
纬度 at String 商户门店ID
码牌ID qrcId int 商户门店ID
支付方式代码分类 wayCodeType String 商户门店ID
商户手续费费率 mchFeeRate String 商户门店ID
商户手续费 mchFeeAmount int 商户手续费,单位分
渠道用户标识 channelUser String 渠道用户标识,如微信openId,支付宝账号
订单分账模式 divisionMode int 订单分账模式:0-该笔订单不允许分账, 1-支付成功按配置自动完成分账, 2-商户手动分账(解冻商户金额)
订单分账状态 divisionState int 订单分账状态:0-未分账, 1-待分账, 2-分账中, 3-已分账, 4-完结中, 5-已完结, 6-已分账完结失败
买家备注 buyerRemark String 买家备注
卖家备注 sellerRemark String 卖家备注
订单失效时间 expiredTime long 订单失效时间
支付凭证交易单号 platformOrderNo String 支付凭证交易单号
支付凭证商户单号 platformMchOrderNo String 支付凭证商户单号

返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)
注意:返回的字符串必须是小写,且前后不能有空格和换行符。
通知示例数据JSON

{
    "amount": 5,
    "body": "商品描述",
    "clientIp": "192.166.1.132",
    "createdAt": "1622016572190",
    "currency": "cny",
    "extParam": "",
    "ifCode": "wxpay",
    "mchNo": "M1621873433953",
    "appId": "60cc09bce4b0f1c0b83761c9",
    "mchOrderNo": "mho1621934803068",
    "payOrderId": "20210525172643357010",
    "state": 3,
    "subject": "商品标题",
    "wayCode": "WX_BAR",
    "sign": "C380BEC2BFD727A4B6845133519F3AD6"
}

SDK验签代码示例

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

        // 获取到请求参数
        PayOrderNotifyResModel payOrderNotifyResModel = JeepayNotifyKit.convertNotifyResModel(request);

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

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

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

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

        // 响应jeepay SUCCESS字样
        response.getWriter().print("SUCCESS");
    }