1. 接口介绍 退款申请接口提供给商户向聚合支付服务发送退款申请请求数据集合,聚合支付服务会根据请求数据验证商户身份,以及验证支付信息是否被篡改。验证通过后,聚合支付服务会返回退款信息。 退款申请的报文需按照接口规范进行加密,详见加密算法 ``` HTTPS调用地址:https://apipayx.jd.com/trade/refund 编码格式: UTF-8 调用方式:post 数据格式:application/JSON ``` 2. 退款申请接口参数列表 |序号 |参数名称 |参数编码 |必填| 参数类型 |描述| |---|---|---|---|---|--| |1 |外部系统退款订单ID |outTradeNo |是| String(30) || |2| 外部系统订单Id| originalOutTradeNo| 是 |String(100)| 需要退款的支付外部系统订单Id| |3 |商户号 |merchantNo |是 |String(100) | |4 |退款金额 |amount |是 |Long| 不能超过原订单金额-已退款金额(单位:分)| |5 |退款类型 |refundType |是 |String(10) |NORMAL=正常退款<br>REPEAT=多支付退款<br>EXPIRED=过期退款<br>ORIGINAL=原退款单号退款| 3. 退款申请返回参数列表 |序号| 参数编码| 参数名称| 必填| 类型 |描述| |--|---|---|---|---|--| |1| merchantNo| 商户号| 是| String| | |2 |outTradeNo| 外部订单号| 是| String| | |3| tradeNo| 交易流水号| 是| String || |4 |originalOutTradeNo| 外部系统订单Id |是 |String| SUCCEED(1, "交易成功"),FAILED(2, "交易失败"),PENDING(3, "交易处理中"),NOT_FOUND(4, "无法查询到交易"),EXCEPTION(5, "异常状态"),CLOSE(6, "交易关闭"),REFUND(7, "交易已退款"),FINISH(8, "交易已完成"),RETRY_REFUND(9, "退款失败,需要原单号起重试"),OFFLINE_REFUND(10, "退款异常,需手动处理此笔退款"),| |5 |requestVersion |接口版本号| 是 |String || |5 |业务状态 |resultCode |是 |String(100) |SUCCESS:查询订单成功FAIL:查询订单失败| |6 |错误代码 |errCode |是 |String(100)|| |7 |错误代码描述 |errCodeDes |否| String(100) || 4. 参数特殊说明 ``` 1) 在以上的请求参数中,商户号是在注册开通聚合支付功能的时候,聚合支付商户管理系统为用户分配的。 2) 外部订单号是商户自己的订单号。 3) 签名规则详见:签名算法 4) 为保证信息安全,表单中的各个字段除了merchant(商户号)、签名(sign)以外,其余字段全部采用3DES进行加密 ``` 5. 样例 1)1)源请求字符串样例: ``` { "amount ":"10000", "merchantNo":"110047938", "originalOutTradeNo":"asd2ede21w8", "outTradeNo":"110047938", "refundType" :" NORMAL" } ``` 2) 请求及响应数据集合参数样例: ``` { "merchantNo":"110047938", "outTradeNo :"这里的值是对明文源串样例加密得到的值", "sign":"这里的值是对明文源串样例按照ASCII正序排序后加盐,再用md5 加签得到的值" } ``` 3) 错误码列表: |序号| 错误代码| 错误描述 |修正意见| |---|---|--|--| |1 |000000 |请求成功|| |2 |AGGA100000| 网络异常,调用网关失败 网络问题,|可稍后再尝试 |3 |AGGA000001 |系统内部错误| 请联金融客服| |4 |AGGA100001 |请求参数不能为空| 请检查参数列表是否正确| |5 |AGGA100002 |非法请求,解密验签失败 |请确认密钥和盐的正确性,检查加密加签算法| |6 |AGGT0000001 |请求重复 || |7 |AGGT9999999 |请求失败| 请稍后重试| |8 |AGGT9990001 |未知错误 |请稍后重试| |9 |AGGT9990002| 未知错误,应该是网络异常| 请稍后重试| |10 |AGGT9990003 |方法调用非法| 请稍后重试| |11 |AGGT9990004| 数据转换异常| 请稍后重试| |12| AGGT0101900 |数据库操作异常 |请稍后重试| |13| AGGT3001201 |交易已存在 |请稍后重试| |14 |AGGT1000400 |请求数据不合法 |请检查参数列表| |15 |AGGT0001001 |数据库没有数据| 请稍后重试| |16 |AGGT3001203 |无此交易信息 || |17 |AGGT3001213 |无原交易信息|| |18 |AGGT3001216| 退款金额超出可退额度|| |19 |AGGT3001217 |原交易的状态不能退款 || |20 |AGGT3001218 |退款金额出现错误|| |21| AGGT3001220| 已受理赔付不能退款 || |22 |AGGT3001221 |无此交易支付请求信息 || |23 |AGGT3001222 |无此交易结果信息|| |24 |AGGT3001227| 写支付结果,交易已终态,重复的结果请求 || |25| AGGT3001233 |写支付结果,交易已终态,多支付状态为关单状态 || |26 |AGGT3001230 |交易已退款,多次支付 || |27 |AGGT3001231 |退款交易状态不合适 || |28|AGGT3001250 |原交易不是正向交易,不允许退款 || |29| AGGG100000 |参数校验失败 |请检查参数列表是否正确| |30 |AGGG100004 |参数:XXX不能为空 |请检查参数列表是否正确| |31 |AGGG777777 |系统处理异常 |请联金融客服| |32 |AGGG999999| 系统处理错误| 请联金融客服| |33| AGGG100002 |服务暂停 |请联金融客服| |34 |AGGG000001| 退款处理中| 请稍后查询订单状态| |35 |AGGG105003 |退款失败| 请联金融客服| |36| AGGG105002| 申请退款时,查询原收单信息不存在 |请检查参数列表是否正确| |37 |AGGG104001 |查询商户信息失败 |请检查参数列表是否正确| |38 |AGGG100001 |不支持的参数| 请检查参数列表是否正确| |39| C300000| 系统错误| 请使用相同的参数再次调用| |40 |C300001 |XML格式错误| 请检查请求的XML格式是否正确| |41| C300002| 无效签名| 请检查是否符合2.2签名规则| |42| C300003 |退款请求已处理|请调用订单退款查询接口查询订单退款状态| |43 |C300004| 参数无效 |请求参数有错,重新检查请求后,再调用退款| |44 |C300005 |卖家余额不足| 商户支付宝账户充值后重新发起退款即可| |45 |C300006| 退款金额超限| 检查退款金额是否正确,重新修改请求后,重新发起退款| |46 |C300007 |请求退款的交易被冻结|| |47 |C300008| 交易不存在| 检查请求中的交易号和商户订单号是否正确,确认后重新发起| |48 |C300009 |交易已完结| 查询交易,确认交易是否已经付款| |49 |C300010 |交易状态非法 |查询交易,确认交易是否已经付款| |50 |C300011| 不一致的请求| 检查该退款号是否已退过款或更换退款号重新发起请求| |51 |C300012| 退款金额无效| 检查退款请求的金额是否正确| |52 |C300013| 当前交易不允许退款 |检查当前交易的状态是否为交易成功状态以及签约的退款属性是否允许退款,确认后,重新发起请求| |53 |C300014| 接口返回错误| 系统超时,请用相同参数再次调用API| |54 |C300015| 无效transaction_id |请求参数未按指引进行填写,请求参数错误,检查原交易号是否存在或发起支付交易接口返回失败| |55 |C300016 |参数错误 |请求参数未按指引进行填写,请求参数错误,请重新检查再调用退款申请| |56 |C300017 |APPID 不存在 |参数中缺少APPID,请检查APPID 是否正确| |56| C300018 |MCHID 不存在| 参数中缺少MCHID,请检查MCHID 是否正确| |58 |C300019 |appid 和mch_id |不匹配 appid 和mch_id 不匹配,请确认appid 和mch_id 是否匹配| |59 |C300020 |请使用post 方法| 未使用post 传递参数,请检查请求参数是否通过post方法提交| |60 |C300021 |签名错误 |参数签名结果不正确,请检查签名参数和方法是否都符合签名算法要求| |61 |C300022 |XML 格式错误 |XML 格式错误,请检查XML 参数格式是否正确| |62 |C300023 |系统异常 |系统处理异常,请稍后再试| |63 |C300024 |参数错误 |参数异常,请稍后重试| |64 |C300025 |外部系统调用异常 |系统处理异常,请稍后再试| |65 |C300026 |该交易不存在 |交易异常,请重新发起支付| |66 |C300027 |该交易已经是成功状| 订单支付成功,请勿重复提交| |67 |C300028 |交易已过期 |该笔订单已过期,请重新下单支付| |68 |C300029 |交易已成功,勿重复支付 |订单支付成功,请勿重复提交| |69 |C300030 |交易已关闭 |该笔订单已取消,请重新下单支付| |70 |C300031 |交易订单jdpin已存在,不可更新 |订单处理出现异常,请重新发起支付| |71 |C300032 |支付结果不存在 |支付处理异常,请你重新支付| |72 |C300033 |金额异常 |支付金额错误,请核对金额格式是否正确| |73 |C300034 |该商户已停用 |很抱歉,该商户不支持收单| |74 |C300035 |商户查询异常 |商户收单异常,请稍后重试| |75 |C300036 |该商户不存在 |该商户信息不存在,请核对后重试| |76 |C300037 |该商户不支持此支付工具| 该商户信息不存在,请核对后重试| |77 |C300038 |该商户没有传UserId| 商户的用户ID为空,请核对后重试| |78 |C300039 |撤销订单失败 |撤销订单失败| |79 |C300040 |没有可用的支付工具 |很抱歉,您未绑定银行卡等支付工具,请绑定后再支付| |80| C300041 |没有可用的pin |很抱歉,您的账号尚未绑定京东PIN,请绑定或使用京东金融APP付款码进行付款| |81| C300042 |风控校验失败 |很抱歉,支付失败,请尝试使用其他银行卡或支付方式| |82 |C300043 |商户不支持付款码支付 |抱歉,该商户不支持付款码支付| |83 |C300044 |创建订单异常 |系统处理异常,请稍后再试| |84 |C300045 |创建二维码异常| 系统处理异常,请稍后再试| |85 |C300046 |请求的金额不一样 |你多次请求的金额不一样,请重新下单| |86 |C300047 |闪付入参金额错误 |闪付入参金额错误| |87 |C300048 |闪付入参密码错误 |闪付入参密码错误| |88 |C300049 |订单号为空或者长度超限 |闪付入参订单号错误| |89 |C300050 |支付密码异常 |密码读取异常,请您稍后重试| |90 |C300051 |调用卡中心异常 |系统异常,请您重新支付| |91 |C300052 |调用交易系统异常 |系统异常,请您重新支付| |92 |C300053 |过于频繁支付 |支付请求过于频繁,请您稍后重试| |93 |C300054 |写支付结果调用异常 |系统异常,请您重新支付| |94 |C300055 |商户路由不存在商户异常 |商户信息异常,请稍后重试| |95 |C300056 |商户传入的用户身份证或姓名为空 |很抱歉,身份信息为空,请核对后重试| |96 |C300057 |更新新用户pin失败 |系统处理异常,请稍后再试| |97 |C300058 |新用户实名异常 |系统处理异常,请稍后再试| |98 |C300059 |支付后逻辑异常 |系统处理异常,请稍后再试| |99 |C300060 |调用卡中心卡存储异常 |系统处理异常,请稍后再试| |100| C300061 |订单号已经存在 |订单号已存在,请勿重复提交| |101| C300062 |产品支付异常 |系统处理异常,请稍后再试| |102| C300063 |短信不能为空 |短信验证码错误,请检查后重新输入| |103| C300064 |支付密码不能为空 |支付密码错误,请检查后重新输入| |104| C300065 |支付请求营销参数有误 |营销参数异常,请您重新支付| |105| C300066 |处理中 |支付处理中,请您稍后查询| |106| C300067 |营销鉴权失败 |优惠信息获取异常,请您稍后再试| |107| C300068 |短信验证码过期 |该验证码已过期,请重新获取短信验证码| |108| C300069 |调用青龙系统异常 |系统异常,请稍后重试| |109| C300070 |查不到运单号 |运单号查询异常,请稍后重试| |110| C300071 |京东订单信息查询异常 |信息查询有误,请稍后重试| |111| C300072 |订单不存在 |很抱歉,该笔订单不存在| |112| C300073 |订单已完成 |该笔订单已完成,请勿重复操作| |113| C300074 |很抱歉,该商户不支持此卡,请尝试使用其他银行卡| 很抱歉,该商户不支持此卡,请尝试使用其他银行卡| |114| C300075 |扫码支付处理中,撤销订单,返回状态 |很抱歉,支付失败,请您重新支付| |115| C300076 |AKS系统异常 |系统异常,请稍后重试| |116| C300077 |批次号不存在 |系统处理异常,请稍后再试| |117| C300078 |很抱歉,该商户不支持指纹支付| 很抱歉,该商户不支持指纹支付请使用相同的参数再次调用| |118| C300079 |网络异常| 很抱歉,网络异常,请稍后重试| |119| C300080 |支付通道报文加解密异常 |系统异常,请重新支付| |120| C300081 |密码输入错误 次,您还有 次尝试机会 |码输入错误,你还有 次尝试机会| |121| C300082 |支付密码锁定 |支付密码错误次数超限,您可以选择忘记密码或2小时候再试| 4)返回密文串样例: ``` { "success":"当调用成功时返回true", "errCode":"调用失败时返回错误原因店代码" "errCodeDes":"错误描述" "merchantNo":"110047938", "cipherJson:"这里的值是返回明文串加密得到的值", "sign":"这里的值是对返回明文串按照ASCII正序排序后加盐, 再用md5加签得到的值" } ``` 5)解密cipherJson字段后 注意:请先对明文验签成功再解析业务内容 ``` { "resultCode":"请先判断此字段返回值,再根据业务需要进行相应处理", "errCode":"业务处理异常时的错误代码", "errCodeDes":"业务处理异常时的详细描述", "merchantNo":"110047938", "outTradeNo":"110047938000000000", "tradeNo":"110047938000000000", "payStatus":"SUCCESS", "requestVersion":"V1.0.0" } ```