1. 接口介绍 订单接口提供给商户扫用户付款码完成扣除用户金额的接口,聚合支付服务会根据请求数据验证商户身份,以及验证请求信息是否被篡改。验证通过后,聚合支付服务会返回刷卡付订单状态信息 注意:此接口暂未对外开放 ``` 调用地址:https://apipayx.jd.com/micro/pay 编码格式: UTF-8 调用方式:post 数据格式:JSON ``` 2. 参数列表 |参数名称 |参数编码 |类型| 是否必传 |描述| |---| |商户号 |merchantNo| String(32)| 是 | |商城订单号| outTradeNo| String(64)| 是 | |系统名称| systemId| String(100)| 是| 由聚合支付统一分配| |商品名称| productName| String(64) |是 || |交易金额| amount |Long| 是| 单位:分,交易金额| |币种 |currency| String(20) |是| 目前固定为"RMB"| |接口版本| requestVersion |String(10) |是| 固定为"V1.0"| |付款码 |authCode |String(40)| 是| 付款码| |支付渠道| piType| String(10) |是 |JDPAY(京东支付)<br>WX(微信支付), APPLEPAY(applePay支付)<br>UNIPAY(银联在线支付), ALIPAY(支付宝支付)| |客户端传入IP| outTradeIp| String(16)| 条件 |微信和支付宝时必传,格式:6.6.6.6| |订单类型 |virtualType |String(2)| 是 |00-实物、01-虚拟| |交易时间| tradeTime |String(10) |否 |格式:yyyyMMddHHmmss,默认为当前时间| |交易截止时间| deadlineTime |String(10) |否 |格式:yyyyMMddHHmmss,交易时间+7天| |原样回传参数| returnParams |String(256)| 否|| 3. 参数特殊说明 ``` 1) 在以上的请求参数中,商户号是在注册开通聚合支付功能的时候,聚合支付商户管理系统为用户分配的。 2) 外部订单号是商户自己的订单号。 3) 签名规则详见:“4.1签名算法”章节 4) 为保证信息安全,表单中的各个字段除了merchantNo(商户号)、签名(sign)以外,其余字段全部采用3DES进行加密 ``` 4. 样例 1)1)明文源串样例: ``` { "amount ":"1", "systemId":"xxxx", "currency":"RMB", "merchantNo":"22318136", "merchantUserId" :"可以看到" "outTradeIp" :"193.13.12.27" "outTradeNo" :"151815257827270804" "productName" :"聚合京东代扣测试" "requestVersion" :"V1.0" "tradeTime" :"20180208100623" "virtualType" :"00" } ``` 2) 支付请求数据集合参数样例: ``` { "merchantNo":"110047938", "cipherJson :"这里的值是对明文源串样例加密得到的值", "sign":"这里的值是对明文源串样例按照ASCII正序排序后加盐,再用md5加签得到的值" } ``` 说明:上面样例中除merchant和sign字段外,各字段均需要进行3DES加密 3) 返回参数列表: |参数名称 |参数编码 |类型| 是否必传 |描述| |---| |业务状态 |resulCode| String |是 |SUCCESS-成功、FAIL-失败、PROCESSING-处理中 处理中是一个交易中间状态而不是交易的最终状态,对它要极其小心处理,它即不能代表交易成功也不是代表交易失败。 处理中的交易最终状态是成功还是失败以异步通知为准,商户也可主动发起查询获取交易的当前状态。查询参见“商户查询订单状态(支付订单)接口”。 特别提醒:如果将处理中等同于成功来处理,在交易最终扣款失败时就造成资损;而如果将处理中等同于失败来处理,在交易最终扣款成功时就造成用户重复支付| |业务错误代码 |errCode| String(20)| 是| 000000-成功| |业务错误代码描述| errCodeDes| String(50)| 是 |成功| |商户号| merchantNo |String(32) |是 |商户号| |外部订单号 |outTradeNo |String(64) |是| 商户订单号| |聚合订单号 |tradeNo |String(32)| 是| 聚合订单号| |交易子类型 |subTradeType |String(10)| 是 |SALE(消费/支付)| |币种 |currency| String(10) |是 |RMB| |交易金额n| amount| Long| 是| 单位:分,交易金额| |支付渠道 |piType |String(10) |否| JDPAY(京东支付)<br>WX(微信支付), APPLEPAY(applePay支付)|<br>UNIPAY(银联在线支付), ALIPAY(支付宝支付)| |交易成功时间 |payFinishTime| String(14)| 是 |yyyyMMddHHmmss| |回传参数 |returnParams| String(256) |否 |商户扩展信息,原样回传| |扩展信息 |extMapStr| String |否 |聚合支付返回扩展信息(map转json数据)| |交易时间 |tradeTime| String(10) |否 |格式:yyyyMMddHHmmss,默认为当前时间| |交易截止时间 |deadlineTime| String(10) |否| 格式:yyyyMMddHHmmss,交易时间+7天| 4) 错误码列表: |序号 |错误代码 |错误描述 |修正意见 |---| |1 |000000 |请求成功 || |2 |AGGT0000001 |请求重复|| |3 |AGGT9999999 |请求失败 |请稍后重试| |4 |AGGT9990001 |未知错误 |请稍后重试| |5 |AGGT9990002 |未知错误,应该是网络异常 |请稍后重试| |6 |AGGT9990003 |方法调用非法 |请稍后重试| |7 |AGGT9990004 |数据转换异常 |请稍后重试| |8| AGGT0101900 |数据库操作异常| 请稍后重试| |9| AGGT3001201 |交易已存在 || |10| AGGT3001202 |交易已成功不能支付 || |11| AGGT0101900 |数据库操作异常 |请稍后重试| |12| AGGT1000400 |请求数据不合法 |请检查参数列表| |13| AGGT3001204 |交易已关闭不能支付 || |14| AGGT3001206 |交易已过期 || |15 |AGGT3001211 |交易已退款不能支付 || |16 |AGGT3001226 |交易收单失败,系统异常 || |17 |AGGT0001001 |数据库没有数据 || |18 |AGGT0101900 |数据库操作异常 || |19 |AGGT0101914 |支付返回后处理交易相关域异常 || |20 |AGGT1000400| 请求数据不合法 || |21 |AGGT3001203| 无此交易信息|| |22 |AGGT3001204| 交易已关闭不能支付 || |23 |AGGT3001206| 交易已过期 || |24 |AGGT3001211| 交易已退款不能支付 || |25 |AGGT3001213| 无原交易信息 || |26 |AGGT3001234| 交易已关单 || |27 |AGGG100000 |参数校验失败 |请检查参数列表是否正确| |28 |AGGG100004 |参数:XXX不能为空 |请检查参数列表是否正确| |29 |AGGG777777 |系统处理异常 |请联金融客服| |30 |AGGG999999 |系统处理错误 |请联金融客服| |31 |AGGG104001 |查询商户信息失败 |请检查参数列表是否正确| |32 |AGGG102002 |获取支付信息失败,请重试 |请稍后重试| |33 |C100000 |接口返回错误 |请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作| |34 |C100001 |XML格式错误 |请检查请求的XML格式是否正确| |35| C100002| 无效签名| 请检查是否符合2.2签名规则| |36 |C100003 |商户appid和mch_id不存在或已停用或不匹配| 请确认该订单号是否重复支付,如果是新单,请使用新订单号提交| |37 |C100004| 订单重复 |商户订单号异常,请重新下单支付| |38 |C100005| 参数无效 |检查请求参数,修改后重新发起请求| |39 |C100006| 无权限使用接口 |请调用查询订单接口查看订单最新状态| |40 |C100007| 订单信息中包含违禁词 |修改订单信息后,重新发起请求| |41 |C100008| 应用APP_ID填写错误 |请检查签约协议号是否已过期| |42 |C100009| 订单总金额超过限额| 修改订单金额再发起请求| |43 |C100010| 交易已被支付 |确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求| |44 |C100011| 交易已被支付 |确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求| |45 |C100012| 交易已经关闭 |更换商家订单号后,重新发起请求| |46 |C100013| 买卖家不能相同 |更换买家重新付款| |47 |C100014| 交易买家不匹配 |更换商家订单号后,重新发起请求| |48 |C100015| 买家状态非法 |确认买家状态为什么非法| |49 |C100016| 买家付款日限额超限 |更换买家进行支付| |50 |C100017| 商户收款额度超限 |账户已销户,请联系银行| |51 |C100018| 商户收款金额超过月限额 |账户不存在,请核实后重试| |52 |C100019| 买家付款月额度超限 |让买家更换账号后,重新付款或者更换其它付款方式| |53 |C100020| 商家账号被冻结 |商户未开通此权限,请核实后重试| |54 |C100021| 买家未通过人行认证 || |55 |C100022| 商户无此接口 权限 |商户未开通此接口权限| |56 |C100023| 余额不足 |用户帐号余额不足| |57 |C100024| 交易无相关商户号或会员号信息 |商户订单已支付,无需重复操作| |58 |C100025| 订单已关闭| 当前订单已关闭,无法支付| |59 |C100026| 系统错误| 系统超时| |60 |C100027| APPID 不存在 |参数中缺少 APPID| |61 |C100028| MCHID 不存在| 参数中缺少 MCHID| |62 |C100029| appid 和 mch_id 不匹配 |appid 和 mch_id 不匹配| |63 |C100030| 缺少参数 |缺少必要的请求参数| |64 |C100031| 商户订单号重复| 同一笔交易不能多次提交| |65 |C100032| 签名错误 |参数签名结果不正确| |66 |C100033| XML 格式错误 |XML 格式错误| |67 |C100034| 请使用 post 方 法 |未使用 post 传递参数| |68 |C100035| post 数据为空 |post 数据不能为空| |69 |C100036| 编码格式错误 |未使用指定编码格式| |70 |C100037| 系统异常 |系统处理异常,请稍后再试| |71 |C100038| 参数错误 |参数异常,请稍后重试| |72 |C100039| 外部系统调用异常 |系统处理异常,请稍后再试| |73 |C100040| 该交易不存在 |交易异常,请重新发起支付| |74 |C100041| 该交易已经是成功状态 |订单支付成功,请勿重复提交| |75 |C100042| 交易已过期 |该笔订单已过期,请重新下单支付| |76 |C100043| 交易已成功,勿重复支付 |订单支付成功,请勿重复提交| |77 |C100044| 交易已关闭 |该笔订单已取消,请重新下单支付| |78 |C100045| 交易订单jdpin已存在,不可更新 |订单处理出现异常,请重新发起支付| |79 |C100046| 支付结果不存在 |支付处理异常,请你重新支付| |80 |C100047| 金额异常 |支付金额错误,请核对金额格式是否正确| |81 |C100048| 该商户已停用 |很抱歉,该商户不支持收单| |82 |C100049| 商户查询异常 |商户收单异常,请稍后重试| |83 |C100050| 该商户不存在 |该商户信息不存在,请核对后重试| |84 |C100051| 该商户不支持此支付工具 |该商户信息不存在,请核对后重试| |85 |C100052| 该商户没有传UserId |商户的用户ID为空,请核对后重试| |86 |C100053| 撤销订单失败 |撤销订单失败| |87 |C100054| 没有可用的支付工具| 很抱歉,您未绑定银行卡等支付工具,请绑定后再支付| |88 |C100055| 没有可用的pin |很抱歉,您的账号尚未绑定京东PIN,请绑定或使用京东金融APP付款码进行付款| |89 |C100056| 风控校验失败 |很抱歉,支付失败,请尝试使用其他银行卡或支付方式| |90 |C100057| 商户不支持付款码支付| 抱歉,该商户不支持付款码支付| |91 |C100058| 创建订单异常 |系统处理异常,请稍后再试| |92 |C100059| 创建二维码异常| 系统处理异常,请稍后再试| |93 |C100060| 请求的金额不一样 |你多次请求的金额不一样,请重新下单支付| |94 |C100061| 闪付入参金额错误 |闪付入参金额错误| |95 |C100062| 闪付入参密码错误 |闪付入参密码错误| |96 |C100063| 订单号为空或者长度超限 |闪付入参订单号错误| |97 |C100064| 支付密码异常 |密码读取异常,请您稍后重试| |98 |C100065| 调用卡中心异常 |系统异常,请您重新支付| |99 |C100066| 调用交易系统异常 |系统异常,请您重新支付| |100| C100067| 过于频繁支付 |支付请求过于频繁,请您稍后重试| |101| C100068 |商写支付结果调用异常 |系统异常,请您重新支付| |102| C100069 |商户路由不存在商户异常| 商户信息异常,请稍后重试| |103| C100070 |商户传入的用户身份证或姓名为空 |很抱歉,身份信息为空,请核对后重试| |104| C100071 |更新新用户pin失败 |系统处理异常,请稍后再试| |105| C100072 |新用户实名异常 |系统处理异常,请稍后再试| |106| C100073 |支付后逻辑异常 |系统处理异常,请稍后再试| |107| C100074 |调用卡中心卡存储异常| 系统处理异常,请稍后再试| |108| C100075 |订单号已经存在 |订单号已存在,请勿重复提交| |109| C100076 |产品支付异常 |系统处理异常,请稍后再试| |110| C100077 |短信不能为空 |短信验证码错误,请检查后重新输入| |111| C100078 |支付密码不能为空 |支付密码错误,请检查后重新输入| |112| C100079 |支付请求营销参数有误 |营销参数异常,请您重新支付| |113| C100080 |处理中| 支付处理中,请您稍后查询| |114| C100081 |营销鉴权失败 |优惠信息获取异常,请您稍后再试| |115| C100082 |短信验证码过期 |该验证码已过期,请重新获取短信验证码| |116| C100083 |调用青龙系统异常 |系统异常,请稍后重试| |117| C100084 |查不到运单号 |运单号查询异常,请稍后重试| |118| C100085 |京东订单信息查询异常 |信息查询有误,请稍后重试| |119| C100086 |订单不存在 |很抱歉,该笔订单不存在| |120| C100087 |订单已完成 |该笔订单已完成,请勿重复操作| |121| C100088 |很抱歉,该商户不支持此卡,请尝试使用其他银行卡 |很抱歉,该商户不支持此卡,请尝试使用其他银行卡| |122| C100089 |扫码支付处理中,撤销订单,返回状态| 很抱歉,支付失败,请您重新支付| |123| C100090 |AKS系统异常 |系统异常,请稍后重试| |124| C100091 |批次号不存在 |系统处理异常,请稍后再试| |125| C100092 |很抱歉,该商户不支持指纹支付| 很抱歉,该商户不支持指纹支付| |126| C100093 |网络异常 |很抱歉,网络异常,请稍后重试| |127| C100094 |支付通道报文加解密异常 |系统异常,请重新支付| |128| C100095 |密码输入错误 次,您还有 次尝试机会 |密码输入错误,你还有 次尝试机会| |129| C100096 |支付密码锁定 |支付密码错误次数超限,您可以选择忘记密码或2小时候再试| |130| C100097 |银行系统异常 |请立即调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作| |131| C100098 |用户支付中,需要输入密码 |商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒)| |132| C100099 |当前交易异常 |当前交易异常,请降低金额重试,或点击“查看解决方法”解除限制| |133| C100100 |商户无权限 |请开通商户号权限。请联系产品或商务申| |134| C100101 |二维码已过期,请用户在微信上刷新后再试 请收银员提示用户,请用户在微信上刷新条码,然后请收银员重新扫码。 直接将错误展示给收银员|| |135| C100102 |订单已撤销 当前订单状态为“订单已撤销”,请提示用户重新支付|| |136| C100103 |授权码参数错误 每个二维码仅限使用一次,请刷新再试|| |137| C100104 |支付帐号错误 |请确认支付方是否相同| |138| C100105 |付款码已扣款 |请让买方更新付款码| |139| C100106 |支付授权码无效 |用户刷新条码后,重新扫码发起请求| |140| C100107 |无效付款码 |每个二维码仅限使用一次,请刷新再试| |141| C100108 |用户银行卡余额不足 |建议买家更换支付宝进行支付或者更换其它付款方式| |142| C100109 |余额支付功能关闭 |用户打开余额支付开关后,再重新进行支付| |143| C100110 |唤起移动收银台失败 |用户刷新条码后,重新扫码发起请求| |144| C100111 |用户的无线支付开关关闭 |用户在PC上打开无线支付开关后,再重新发起支付| |145| C100112 |支付失败 |用户刷新条码后,重新发起请求,如果重试一次后仍未成功,更换其它方式付款| |146| C100113 |支付有风险 |更换其它付款方式| |147| C100114 |商户门店编号无效 |检查传入的门店编号是否有效| |148| C100115 |商户公众号appid和用户openid不匹配 |如果是没有绑定,商户方提供正式的商户号和appid进行绑定;检查是否用对公众号appid和用户openid| |149| C100116 |sub_openid参数的值无效 |仔细检查用户openID值,传入正确的值| |150| C100117 |验证商户交易权限 |检查商户配置是否正确| |151| C100118 |第三方接口调用 |检查服务器网络/联系第三方是否有网络抖动| |152| C100119 |不支持的交易类型 |验证上送的交易类型字段| |153| C100120 |通过父级商户号和子商户号获取子商户 |验证上送的父级商户号是否正确| |154| C100121 |支付网关返回状态非200 |联系管理员排查| |155| C100122 |验证支付业务 |检查商户配置是否正确| |156| C100123 |返回结果失败| 业务处理失败| |157| C100124 |商户号100590014546通知异常 |商户上送的通知地址不可达| |158| C100125 |请求过于频繁 |降低请求频率| |159| C100126 |商户状态异常 |与客服联系| |160| C100127 |授权验证失败 |调用银行接口超时,请等异步通知或发起查询来确认订单状态| |161| C100128 |文档必填参数没有传,xxxx表示文档中必填为是的参数 |检查必填字段是否有传入或者必填参数名是否有误| |162| C100129 |xml参数解析出错,且编码格式必须utf-8 |检查编码格式或xml格式| |163| C100130 |金额必须小于或等于5000000 |检查total_fee| |164| C100131 |不支持的签名方法 |检查sign_type| |165| C100132 |字段超长 |请检查字段的长度| |166| C100133 |账户错误 || |167| C100134 |订单状态异常|| |168| C100135 |订单已存在 || |169| C100136 |金额必须大于等于1 || 5)返回密文串样例: ``` { "success":"当调用成功时返回true", "errCode":"调用失败时返回错误原因代码" "errCodeDes":"错误描述" "merchantNo":"110047938", "cipherJson:"这里的值是返回明文串加密得到的值", "sign":"这里的值是对返回明文串按照ASCII正序排序后加盐, 再用md5加签得到的值" } ``` 6)解密cipherJson字段后 注意:请先对明文验签成功再解析业务内容 ``` { "resultCode":"请先判断此字段返回值,再根据业务需要进行相应处理", "errCode":"业务处理异常时的错误代码", "errCodeDes":"业务处理异常时的详细描述", "merchantNo":"22318136", "outTradeNo":"110047938000000000", "tradeNo":"110047938000000000", "payFinishTime":"20180211165446", "currency":"RMB" "amount":"1" "piType":"JDPAY" "subTradeType":"SALE" "deadlineTime":"20180212165400" "tradeTime":"20180211165400" } ```