1. 接口介绍 H5收银台接口主要针对商户需要对接聚合支付在线支付收银台,在聚合支付收银台完成在线支付的功能。聚合支付服务会根据商户在浏览器中请求数据验证商户身份,以及验证请求信息是否被篡改。验证通过后,会在浏览器中展示H5收银台页面,用户可以在相关收银台页面中完成订单的支付功能。 ``` 调用地址: https://payx.jd.com/cashier/h5/saveOrder 编码格式: UTF-8 调用方式:POST 数据格式:application/JSON ``` 2. 请求参数列表 |序号 |参数名称 |参数编码|是否必填 |参数类型 |描述| |---|---|---|---|--|--| |1 |版本号| version |是| String(30)| 当前固定填写:V1.0.0| |2 |应用id |appId |是 |String(100) |聚合支付分配appId| |3 |商户号 |merchantNo| 是| String(100)| 聚合商户号:请保持和PayRequest对象中merchantNo保持一致,系统会做强一致性校验| |4 |订单号 |orderId| 否 |String(32) |商户订单号| |5 |订单金额 |amount| 否 |String(12) |订单金额(单位:分):| |6 |实物虚拟商品标识| virtualType |是 |String(2)| 实物虚拟商品标识:<br>00:实物,<br>01:虚拟| |7 |请求来源| sourcePlat| 是 |String(12) |请求来源PC,H5,APP区分相关交易来源是从PC H5 还是APP| |8 |交易名称| tradeName |是 |String(32)| 交易名称:相关交易描述| |9 |交易详情 |tradeDesc |否 |String(128)| 相关交易详情| |10 |下单账号:账户体系 |userId |否| String(32) |下单账号:账户体系第三方账户系统,如果存在,需要填写| |11 |订单类型 |orderType| 否 |String(12) |订单类型:商城内单必传| |12 |支付成功异步通知地址| successNotifyUrl |否 |String(256) |支付成功异步通知地址:<br>带金额(一单一码)方式:如果需要异步通知商户,请填写相关url| |13 |订单失效时间 |expireTime |否 |String(32) |订单失效时间单位:秒,<br>超过有效期后,不能支付如果需要设置订单失效时间,请填写该字段| |14 |支付渠道 |piType| 否 |String(128)| DPAY("JDPAY", "京东支付")WX("WX", "微信支付")<br>ALIPAY("ALIPAY", "支付宝支付")等具体请:参考枚举:com.jd.jr.aggre.base.common.enums.PiTypeEnum.java请传递对应枚举的code,如果需要展示多个支付类型,请通过英文逗号分隔,如:JDPAY,WX商户对接在线收银台支付时,请确认商户已经开通了哪些支付方式:如:京东支付、微信支付等如果不传递,聚合支付平台会查询商户开通了哪些支付产品,然后在收银台展示,如果商户需要收银台根据特殊产品展示商户需要展示的支付方式时,请传递相关参数| |15 |交易备注| remark| 否 |String(32) |如果需要相关备注信息,请传递该字段| |16 |外部请求ip |outTradeIp |是 |String(32) |商户请求传递ip地址| |17 |外部请求port| outTradePort| 是 |String(32)| 商户请求传递端口| |18 |备用扩展字段| extMap |否| String(256) |备用扩展字段:json格式:{key:value}| 4. 参数特殊说明 1) 在以上的请求参数中,商户号是在注册开通聚合支付功能的时候,聚合支付商户管理系统为用户分配的。 2) 外部订单号是商户自己的订单号。 3) 签名规则详见:签名算法 4) 为保证信息安全,表单中的各个字段除了merchant(商户号)、签名(sign)以外,其余字段全部采用3DES进行加密 5. 样例 1)统一下单接口请求报文明文如下: ``` { "version": "V1.0.0", "appId": "jw", "merchantNo": "110047782", "orderId": "111111111344578", "amount": "209", "userId": "609804455@qq.com", "virtualType": "00", "successNotifyUrl": "https://payx.jd.com", "piType": "JDPAY,WX", "sourcePlat": "H5", "expireTime": "120", "tradeName": "向华为手机商户付款", "remark": "小白兔买糖", "outTradeIp": "172.25.33.61", "outTradePort": "443" } ``` 2)支付请求数据集合参数样例: ``` { "merchantNo":"110047938", "cipherJson:"这里的值是对明文源串样例加密得到的值", "sign":"这里的值是对明文源串样例按照ASCII正序排序后加盐,再用md5加签得到的值" } ``` 最终加密以及加签后,调用聚合支付H5收银台信息接口的请求url样例: ``` https://payx.jd.com/cashier/h5/saveOrder?merchantNo=110047782&cipherJson=AOMgGP7u1n8EguuAMjcj5TRTHk2UWGTnTChUbEf0U1cAau6UUC1VwLS_4pQtvjtOzi2MaTPQn8BlplGHhB5-67v9z6C69fXtdFeCGYcCpDXq7nUCqfrvsO2_3BE6D4zi-iKKYsZsMowH7HjWgy72hr11G6pyqbfLkQT0Jy-k_hldybafB1_Fr3tlJlkPnn4i4U59lEarCgvSOt2Drsw6fyhYpUxtGrGPeVQhbFsB8GCsaGwCGt19LCtQh6ySg9gr-ZX_IrCYhqzEnfBHZlN5vbzZO93hgh2zgee-vDNqoz_X59pJc-b2HBAsDAkRizmvcRx-MMJW3Jy5RES4ORU245vdwwUTJyDJEhEfe-rslDJTp8duyYRIK9Rn3Wlnwt1LOcy8HvuvGskV_t7-xmcG-ZRSBWZxEImT9Qd2SYwY563r1lygHTQdX_RfftOXmaZhoyWTOMQDSzPRcvajR68HXTbQmTBQW37oiQI7assPZOc&sign=fa01dfce3d065075b0723edab42244d8 ``` 说明: ``` 上面样例中除merchant和sign字段外,各字段均需要进行3DES加密 2)请求和响应报文加密后结构一致,解密加密字符串后可以得到源文。 ```