微信支付宝类接口 ================================= 扫码支付接口 ------------ 功能说明 ~~~~~~~~~~~~~~~~ 调用本接口后,跳转二维码页面,用户使用支付宝或者微信扫码支付。 调用方式:页面浏览器 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=======================+=====================+============+=====================================================================================================================================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 209 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二维码支付类型 | pay\_type | 定长2位String | 必须 | 04 : 微信 05 : 支付宝 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 请求类型 | request\_type | 定长2位String | 必须 | 00 : PC端(汇付页面显示二维码) 01 : 移动端(汇付页面显示二维码) 02:返回商户ret\_url,由商户自己根据qrcode\_url生成二维码 如果需要直接返回二维码地址,请对接APP支付接口(218) | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作员 | oper\_user\_Id | 变长32位String | 可选 | | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 变长32位String | 可选 | | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 变长12位String | 可选 | 单位秒 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户前台应答地址 | ret\_url | 变长128位的String | 可选 | 请求类型为后端时,必须输入 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二级商户号 | secondary\_mer\_id | 定长10位的String | 可选 | 对于开启二级商户模式的商户,必须输入其配下的二级商户号 | +--------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 分账账户串(div\_detail )内容: +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须**| **说明** | +===================+===================+==================+=============+===========================================================+ | 分账客户号 | divCustId | 变长16位String | 必须 | div\_detail参数下的二级参数 分账客户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账账户号 | divAcctId | 变长9位String | 必须 | div\_detail参数下的二级参数 分账账户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账金额 | divAmt | 变长14位String | 必须 | div\_detail参数下的二级参数 分账金额,保留两位小数 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 是否冻结标志 | divFreezeFg | 定长2位String | 必须 | div\_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=======================+=====================+============+=====================================================================================================================================================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 209 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 209000--调用成功,其他见返回码 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回码 | bg\_bank\_code | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回描述 | bg\_bank\_message | 变长200位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长1024位String | 必须 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二维码支付类型 | pay\_type | 定长2位String | 必须 | 04 : 微信 05 : 支付宝 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 请求类型 | request\_type | 定长2位String | 必须 | 00 : PC端(汇付页面显示二维码) 01 : 移动端(汇付页面显示二维码) 02:返回商户ret\_url,由商户自己根据qrcode\_url生成二维码 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二维码链接 | qrcode\_url | 变长128位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作员 | oper\_user\_id | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 固定14位String | 可选 | 格式为YYYYMMDDHHmmss | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 外部订单流水号 | out\_trans\_id | 变长64位String | 可选 | 外部订单流水号,指支付宝、微信、银联流水号 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户前台应答地址 | ret\_url | 变长128位的String | 可选 | 请求类型为后端时,必须输入 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 209000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 209002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 209003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 209004 | 交易关闭 | +-----------------------------------------------+------------------------------------------------------+ | 209098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 209099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 209100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 209101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 209102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 209103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 209108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 209109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 209110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 209104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209105 | 账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 209721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 209722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 209723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 209728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 209729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 209726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 209741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 209732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 209724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 209202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 209744 | 商户不支持扫码支付 | +-----------------------------------------------+------------------------------------------------------+ | 209204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 209303 | 商户支付基础信息未配置 | +-----------------------------------------------+------------------------------------------------------+ | 209321 | 支付手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 209323 | 支付手续费只能向商户收取 | +-----------------------------------------------+------------------------------------------------------+ | 209314 | 支付手续费账户状态不正常 | +-----------------------------------------------+------------------------------------------------------+ | 209215 | 请补录身份信息 | +-----------------------------------------------+------------------------------------------------------+ | 209804 | 商户超限额或限次 | +-----------------------------------------------+------------------------------------------------------+ | 209805 | 商户未开通该功能权限 | +-----------------------------------------------+------------------------------------------------------+ | 209806 | 商户交易限制 | +-----------------------------------------------+------------------------------------------------------+ | 209341 | 订单已关闭 | +-----------------------------------------------+------------------------------------------------------+ | 209342 | 已支付成功 | +-----------------------------------------------+------------------------------------------------------+ | 209343 | 已支付失败 | +-----------------------------------------------+------------------------------------------------------+ | 209344 | 订单信息不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 209345 | 未获取二维码链接 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "209", "mer_cust_id": "6666000000026086", "user_cust_id": "6666000000026190", "order_id": "209017108", "order_date": "20170829", "trans_amt": "0.03", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "*1erwer.868@", "ret_url": "", "extension": "u", "div_detail": "[{'divCustId':'6666000000026185','divAcctId':'79704','divAmt':'0.02','divFreezeFg':'01'},{'divCustId':'6666000000026086','divAcctId':'79506','divAmt':'0.01','divFreezeFg':'00'}]", "device_info": "测试测qq", "goods_desc": "分账串,有冻结", "goods_type": "试测试试qq", "oper_user_id": "试试qq", "order_expire_time": "9900", "pay_type": "04", "request_type": "01" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "209"; String merCustId = "6666000000026086"; String version = "10"; httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); PrintWriter out = httpServletResponse.getWriter(); out.println(); out.println(""); out.println(""); out.println(" sender"); out.println(" "); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(""); out.flush(); out.close(); .. 成功响应: .. code:: json 200 { "cmd_id": "209", "resp_code": "209000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "209", "resp_code": "209099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 页面展示 ~~~~~~~~~~~~~~~~ 反扫消费接口 ------------ 功能说明 ~~~~~~~~~~~~~~~~ 用户条码支付,商户通过扫码枪等设备扫描用户付款码的收款交易。 调用方式:系统调用 反扫业务流程图及说明 .. image:: _static/images/215_flow.png 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+======================+=====================+============+==========================================================================================================================================================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 215 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码支付类型 | pay\_type | 定长2位String | 可选 | 07 : 微信 08 : 支付宝 09 : 银联 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户。详见下表 分账账户串 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | MCC,银联支付时必须 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码信息 | auth\_code | 变成128位String | 必须 | 扫码设备读出的条形码或者二维码信息 支付宝:28开头,18位长度 微信:10、11、12、13、14、15开头,18位长度 银联:62开头,19位长度 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作员 | oper\_user\_Id | 变长32位String | 可选 | | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码设备号 | device\_info | 变长32位String | 可选 | | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二级商户号 | secondary\_mer\_id | 定长10位的String | 可选 | 对于开启二级商户模式的商户,必须输入其配下的二级商户号 | +--------------------+----------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 分账账户串(div\_detail )内容: +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须**| **说明** | +===================+===================+==================+=============+===========================================================+ | 分账客户号 | divCustId | 变长16位String | 必须 | div\_detail参数下的二级参数 分账客户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账账户号 | divAcctId | 变长9位String | 必须 | div\_detail参数下的二级参数 分账账户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账金额 | divAmt | 变长14位String | 必须 | div\_detail参数下的二级参数 分账金额,保留两位小数 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 是否冻结标志 | divFreezeFg | 定长2位String | 必须 | div\_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+=====================+============+==========================================================================================================================================================================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 215 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 215000—交易成功 215002—请求受理中 其他见返回码 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回码 | bg\_bank\_code | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回描述 | bg\_bank\_message | 变长200位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码支付类型 | pay\_type | 定长2位String | 可选 | 07 : 微信 08 : 支付宝 09 : 银联 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户。详见下表 分账账户串 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | MCC,银联支付时必须 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码信息 | auth\_code | 变成128位String | 必须 | 扫码设备读出的条形码或者二维码信息 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作员 | oper\_user\_id | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 外部订单流水号 | out\_trans\_id | 变长64位String | 可选 | 外部订单流水号,指支付宝、微信、银联流水号 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 215000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 215002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 215003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 215004 | 交易关闭 | +-----------------------------------------------+------------------------------------------------------+ | 215099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 215100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 215101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 215102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 215103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 215108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 215109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 215110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 215104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215105 | 账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215111 | 用户客户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 215104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215112 | 账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 215727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 215721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 215722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 215723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 215728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 215729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 215726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 215741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 215732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 215724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 215326 | 商户不支持反扫支付 | +-----------------------------------------------+------------------------------------------------------+ | 215329 | 商品类型不能为空 | +-----------------------------------------------+------------------------------------------------------+ | 215202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 215204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 215303 | 商户支付基础信息未配置 | +-----------------------------------------------+------------------------------------------------------+ | 215321 | 支付手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 215323 | 支付手续费只能向商户收取 | +-----------------------------------------------+------------------------------------------------------+ | 215314 | 支付手续费账户状态不正常 | +-----------------------------------------------+------------------------------------------------------+ | 215215 | 请补录身份信息 | +-----------------------------------------------+------------------------------------------------------+ | 215804 | 商户超限额或限次 | +-----------------------------------------------+------------------------------------------------------+ | 215805 | 商户未开通该功能权限 | +-----------------------------------------------+------------------------------------------------------+ | 215806 | 商户交易限制 | +-----------------------------------------------+------------------------------------------------------+ | 215745 | 反扫支付成功,分账失败 | +-----------------------------------------------+------------------------------------------------------+ | 215336 | 微信扫码信息不正确 | +-----------------------------------------------+------------------------------------------------------+ | 215337 | 支付宝扫码信息不正确 | +-----------------------------------------------+------------------------------------------------------+ | 215338 | 银联扫码信息不正确 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "215", "mer_cust_id": "6666000000002619", "user_cust_id": "6666000000005942", "order_id": "28157171990214", "order_date": "20170824", "pay_type": "07", "trans_amt": "0.02", "div_detail": "[{'divCustId':'6666000000002962','divAcctId':'3133','divAmt':'0.01','divFreezeFg':'01'},{'divCustId':'6666000000002619','divAcctId':'2744','divAmt':'0.01','divFreezeFg':'00'}]", "goods_desc": "t", "auth_code": "130131142378809767", "goods_type": "5812", "oper_user_id": "test_oper_user_id", "device_info": "test_device_info", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "tess" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "215"; String merCustId = "6666000000026086"; String version = "10"; String contentType = "application/x-www-form-urlencoded"; String charset = "UTF-8"; String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue; jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset); jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send(); String body = httpResponse.bodyText(); String resultObj = parseResult(body);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "215", "resp_code": "215000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "215", "resp_code": "215099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 反扫撤销接口 ------------ 功能说明 ~~~~~~~~~~~~~~~~ 用于撤销反扫交易 调用方式:系统调用 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+==============================+=====================+================+=======================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为223 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 商户的唯一标识 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 原支付流水号 | orginal\_platform\_seq\_id | 变长18位String | 必须 | 原交易返回的平台流水号 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 备注 | remark | 变长255位的String | 可选 | | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+------------------------------+---------------------+----------------+-----------------------------------------------------------------------+ 返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须** | **说明** | +====================+=====================+=====================+================+=======================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 每一种消息类型代表一种交易,此处为223 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 返回码 | resp\_code | 定长3位String | 必须 | 223000:成功 223002: 请求已受理 223099:系统异常 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 返回内容 | resp\_desc | 变长String | 可选 | | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 商户的唯一标识 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 平台流水号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 备注 | remark | 变长255位的String | 可选 | | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+---------------------+---------------------+----------------+-----------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 223000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 223002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 223003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 223098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 223099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 223100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 223101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 223102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 223103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 223104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 223107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 223108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 223109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 223202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 223204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 223300 | 原支付交易不存在 | +-----------------------------------------------+------------------------------------------------------+ | 223301 | 该订单状态不可退款 | +-----------------------------------------------+------------------------------------------------------+ | 223302 | 订单已退款 | +-----------------------------------------------+------------------------------------------------------+ | 223306 | 调用PA批量转账接口失败 | +-----------------------------------------------+------------------------------------------------------+ | 223308 | 非反扫交易不支持撤销 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "223", "mer_cust_id": "6666000000217291", "order_date": "20171212", "order_id": "fansao012", "orginal_platform_seq_id": "201712120001065124", "remark": "反扫撤销", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "商户私有域测试", "extension": "" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "223"; String merCustId = "6666000000026086"; String version = "10"; String contentType = "application/x-www-form-urlencoded"; String charset = "UTF-8"; String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue; jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset); jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send(); String body = httpResponse.bodyText(); String resultObj = parseResult(body);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "223", "resp_code": "223000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "223", "resp_code": "223099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } APP 支付(支付宝、微信、银联各种支付) ------------------------------------- 功能说明 ~~~~~~~~~~~~~~~~ 本接口支持支付宝正扫、微信正扫、银联正扫、微信 APP 支付、微信公众号支付、支付宝统一下单和小程序支付功能。 调用方式:系统调用 微信 APP 支付业务流程说明: .. image:: _static/images/wx_flow.png 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=======================+======================+============+==============================================================================================================================================================================+ | 版本号 | Version | 定长2位String | 必须 | 目前固定为10 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 218 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 付款人汇付客户号 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 支付类型 | pay\_type | 定长2位String | 必须 | 04:微信正扫; 05:支付正扫; 10 : 微信APP支付; 12:支付宝统一下单; 13:微信公众号; 14:apple pay; 18: 银联正扫; 19: 小程序支付 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 定长16位String | 可选 | (入账客户号、入账账户号) 和 分账串必填一项,且只能填一项 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 入账账户号 | in\_acct\_id | 变长9位String | 可选 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账串 | div\_detail | 变长String | 可选 | (入账客户号、入账账户号) 和 分账串必填一项,且只能填一项; 分账串定义可参照下表; 注:如果支付时不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 是否原生态 | is\_raw | 定长1位String | 可选 | 微信公众号支付时的参数 是否原生态 是:1 否:0 注:为空时,默认1 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | APPID | app\_id | 变长32位String | 可选 | 商户在微信申请的APPID; 支付类型为微信APP支付、微信公众号支付、微信小程序支付时不能为空 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 买家用户ID | buyer\_id | 变长100位String | 可选 | 支付宝统一下单时必填;微信公众号支付、微信小程序支付时: 联调环境下传空 生产环境下不能为空 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 附加信可选息 | attach\_info | 变长128位String | 可选 | 微信公众号支付的参数 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品标记 | good\_tag | 变长32位String | 可选 | 微信公众号支付的参数 商品标记,优惠标志等 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 固定14位String | 可选 | 微信公众号支付的参数 格式为YYYYMMDDHHmmss | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | IP地址 | ip\_addr | 变长20位String | 可选 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 经纬度 | location\_val | 变长30位String | 可选 | 参数格式:116.538799,39.983523 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 支付返回地址 | ret\_url | 变长128位的String | 可选 | 微信公众号支付时,必须输入 用于微信支付成功后跳转的页面; 支付宝统一下单时,必须输入 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二级商户号 | secondary\_mer\_id | 定长10位的String | 可选 | 对于开启二级商户模式的商户,必须输入其配下的二级商户号 | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备信息 | dev\_info\_json | 变长2000位的String | 可选 | | +--------------------+-----------------------+----------------------+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 分账账户串(div\_detail )内容: +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须**| **说明** | +===================+===================+==================+=============+===========================================================+ | 分账客户号 | divCustId | 变长16位String | 必须 | div\_detail参数下的二级参数 分账客户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账账户号 | divAcctId | 变长9位String | 必须 | div\_detail参数下的二级参数 分账账户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账金额 | divAmt | 变长14位String | 必须 | div\_detail参数下的二级参数 分账金额,保留两位小数 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 是否冻结标志 | divFreezeFg | 定长2位String | 必须 | div\_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ 注:如果支付时不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号 同步返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+===================+============+===================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 218002--调用成功,其他见返回码 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回码 | bg\_bank\_code | 变长32位String | 可选 | | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回描述 | bg\_bank\_message | 变长200位String | 可选 | | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 支付地址 | pay\_url | 变长64位String | 可选 | 支付宝统一下单返回参数 支付宝浏览器下直接用此链接请求支付宝支付(注:目前部分通道不支持返回支付地址) 微信公众号也有可能返回支付地址,在未返回支付信息时,使用支付地址。 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 动态口令 | token\_id | 变长64位String | 可选 | 微信公众号参数 根据token\_id组装如下url地址,在微信下可直接唤起支付 https://pay.swiftpass.cn/pay/jspay?token_id=9a0610bc519e782e6275e8c7dd94a445&showwxtitle=1 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 支付信息 | pay\_info | 变长String | 可选 | 微信公众号支付时,数据格式如下: {"appId":"wx1f87d44db95cba7a","timeStamp":"1514459875237","status":"0","signType":"MD5","package":"prepay\_id=wx20171228191755dff683fea20032942684","callback\_url":"https://www.baidu.com","nonceStr":"1514459875237","paySign":"5DEE76A6C0CB7BE924BDB11945D591CA"} 微信APP支付时,数据格式如下: {"sign":"F21465FEAE87F4C02E639D846B2CFCC2","timestamp":"1504863344","noncestr":"1504863344725","partnerid":"12723495","prepayid":"wx20170908173544b0662982990254372413","package":"Sign=WXPay","appid":"324125"} 是微信sdk唤起APP支付的参数 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+-------------------+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 异步返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=======================+=====================+============+===============================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 218 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 218000—交易成功,其他见返回码 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 银行返回码 | bg\_bank\_code | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 银行返回描述 | bg\_bank\_message | 变长200位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 支付地址 | pay\_url | 变长64位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 动态口令 | token\_id | 变长64位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 支付信息 | pay\_info | 变长String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 支付类型 | pay\_type | 定长2位String | 必须 | 04:微信正扫 05:支付宝正扫 10: 微信APP支付 12:支付宝统一下单 13:微信公众号 14:apple pay | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 定长16位String | 可选 | (入账客户号、入账账户号) 和 分账账户串必填一项 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 入账账户号 | in\_acct\_id | 变长9位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 可选 | (入账客户号、入账账户号) 和 分账账户串必填一项; | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 是否原生态 | is\_raw | 定长1位String | 可选 | 微信公众号支付时的参数 是否原生态 是:1 否:0 注:为空时,默认1 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | APPID | app\_id | 变长32位String | 可选 | 商户在微信的APPID | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 买家用户ID | buyer\_id | 变长100位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 附加信可选息 | attach\_info | 变长128位String | 可选 | 微信公众号支付的参数 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商品标记 | good\_tag | 变长32位String | 可选 | 微信公众号支付的参数 商品标记,优惠标志等 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 变长12位String | 可选 | 微信公众号支付的参数 单位秒 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | IP地址 | ip\_addr | 变长20位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 经纬度 | location\_val | 变长30位String | 可选 | | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 外部订单流水号 | out\_trans\_id | 变长64位String | 可选 | 外部订单流水号,指支付宝、微信、银联流水号 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 支付返回地址 | ret\_url | 变长128位的String | 可选 | 微信公众号支付时,必须输入 用于微信支付成功后跳转的页面 支付宝统一下单时,必须输入 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+-----------------------+---------------------+------------+-----------------------------------------------------------------------------------------------+ 微信 APP 支付商户端开发示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **ios调起支付主要方法:** java .. code:: java //注册APPID: //商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下: [WXApi registerApp:\\@"wxd930ea5d5a258f4f" withDescription:\\@"demo 2.0"]; //唤起微信APP: PayReq \*request = [[[PayReq alloc] init] autorelease]; request.partnerId = \\@"10000100"; request.prepayId= \\@"1101000000140415649af9fc314aa427"; request.package = \\@"Sign=WXPay"; request.nonceStr= \\@"a462b76e7436e98e0ed6e13c64b4fd1c"; request.timeStamp= \\@"1397527777"; request.sign= \\@"582282D72DD2B03AD892830965F428CB16E7A256"; [WXApi sendReq:request]; .. **Android调起支付主要方法:** java .. code:: java //注册APPID: //商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下: final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null); // 将该app注册到微信 msgApi.registerApp("wxd930ea5d5a258f4f"); //唤起微信APP: IWXAPI api; PayReq request = new PayReq(); request.appId = "wxd930ea5d5a258f4f"; request.partnerId = "1900000109"; request.prepayId= "1101000000140415649af9fc314aa427",; request.packageValue = "Sign=WXPay"; request.nonceStr= "1101000000140429eb40476f8896f4c9"; request.timeStamp= "1398746574"; request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B"; api.sendReq(request); .. **注:以上参数值来源于同步返回参数pay\_info中** **详细内容请参照 微信官网APP支付_ ** .. _微信官网APP支付: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5 微信公众号开发示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **公众号原生态js支付接口(推荐使用)** - 使用示例 需要注意: 所有传入参数都是字符串类型! 使用 JavaScript、 PHP等弱类型语言需要关注一下。示例代码如下: java .. code:: java WeixinJSBridge.invoke('getBrandWCPayRequest',{ "appId" : "wx2421b1c4370ec43b", //公众号名称, 由商户传入 "timeStamp":" 1395712654", //时间戳, 自 1970 年以来的秒数 "nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串 "package" : "prepay\_id=u802345jgfjsdfgsdg888", "signType" : "MD5", //微信签名方式: "paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 },function(res){ if(res.err\_msg == "get\_brand\_wcpay\_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示: res.err\_msg将在用户支付成功后返回 ok, 但并不保证它绝对可靠。 }); .. 如有疑惑请参照 微信官网公众号支付_ .. _微信官网公众号支付: https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 - 交互模式 请求: 后台请求交互模式 返回结果+通知: 后台请求交互模式+后台通知交互模式 - 请求参数 +----------------------+-------------+--------+----------+----------------------------------+ | 字段名 | 变量名 | 必填 | 类型 | 说明 | +======================+=============+========+==========+==================================+ | 公众号 id | appId | 是 | String | 对应接口3.3中返回的payInfo信息 | +----------------------+-------------+--------+----------+----------------------------------+ | 时间戳 | timeStamp | 是 | String | 对应接口3.3中返回的payInfo信息 | +----------------------+-------------+--------+----------+----------------------------------+ | 随机字符串 | nonceStr | 是 | String | | +----------------------+-------------+--------+----------+----------------------------------+ | 订单详情扩展字符串 | Package | 是 | String | 对应接口3.3中返回的payInfo信息 | +----------------------+-------------+--------+----------+----------------------------------+ | 签名方式 | signType | 是 | String | 对应接口3.3中返回的payInfo信息 | +----------------------+-------------+--------+----------+----------------------------------+ | 签名 | paySign | 是 | String | 对应接口3.3中返回的payInfo信息 | +----------------------+-------------+--------+----------+----------------------------------+ - 返回结果: +------------+--------------------------------------------------------+ | 返回值 | 说明 | +============+========================================================+ | err\_msg | get\_brand\_wcpay\_request:ok 支付成功 | +------------+--------------------------------------------------------+ | | get\_brand\_wcpay\_request:cancel 支付过程中用户取消 | +------------+--------------------------------------------------------+ | | get\_brand\_wcpay\_request:fail 支付失败 | +------------+--------------------------------------------------------+ 注:JS API 的返回结果 get\_brand\_wcpay\_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get\_brand\_wcpay\_request:cancel 或者get\_brand\_wcpay\_request:fail 可以统一处理为用户遇到错误或者主动放弃, 不必细化区分。 - 获取当前微信版本号 由于微信 5.0 版本后才加入微信支付模块,低版本用户调用微信支付功能将无效。 因此,建议商户通过 user agent 来确定用户当前的版本号后再调用支付接口。 以 iPhone 版本为例,可以通过 user agent 可获取如下微信版本示例信息: .. code:: java "Mozilla/5.0(iphone;CPU iphone OS 5\_1\_1 like Mac OS X) AppleWebKit/534.46(KHTML,likeGeocko) Mobile/9B206 MicroMessenger/5.0" .. 其中 5.0 为用户安装的微信版本号, 商户可以判定版本号是否高于或者等于5.0。 **公众号非原生支付** - 接口功能 初始化 JSAPI 请求, 通过生成 token\_id 来进行交互验证。 如调用时是用的原生态 js 支付, 此接口可以忽略 - 交互模式 请求: 后台请求交互模式 返回结果+通知: 后台请求交互模式+后台通知交互模式 - 显示微信安全支付标题 对于商户具有支付权限且需要调用微信支付的页面,为了让用户增加购买信心,确认交易环境安全, 微信强烈建议商户使用“微信安全支付” 标题。安全支付标题的如下图。 .. image:: _static/images/wx_safe_pay_icon.png - 显示支付安全标题, 需将原始链接添加上"showwxpaytitle=1"的尾串。 通过这种方式,商户的页面将出现微信安全支付的标识。 例如,原始 URL 为:htp://weixin.qq.com 显示安全支付标题的 URL 为:htp://weixin.qq.com?showwxpaytitle=1。 当用户在微信里打开 http://weixin.qq.com 不会直接出现微信安全支付的标题,而打开htp://weixin.qq.com?showwxpaytitle=1 后将出现微信安全支付标题。 - 请求参数 请求 url: https://pay.swiftpass.cn/pay/jspay 请求参数为 http queryString, 即: https://pay.swiftpass.cn/pay/jspay?token_id=xxx 如 https://pay.swiftpass.cn/pay/jspay?token_id=9a0610bc519e782e6275e8c7dd94a445&showwxtitle=1 在服务号中点击这个链接就可调起支付(用户点击页面中的微信支付按钮时实际上就是点击的这个链接,此种方式无需配置支付授权目录,也不用像原生态 jsapi 支付那样获取那些参数后续的操作, 测试时可以将组装好的这个链接放到手机微信端文件传输助手点击调起支付界面) +------------+------------------+---------------+--------+--------------------------------------------------------+ | 序号 | 字段 | 说明 | 必填 | 备注 | +============+==================+===============+========+========================================================+ | 业务参数 | | | | | +------------+------------------+---------------+--------+--------------------------------------------------------+ | 1 | token\_id | VARCHAR(64) | 是 | 动态口令 | +------------+------------------+---------------+--------+--------------------------------------------------------+ | 2 | showwxpaytitle | CHAR(1) | 是 | 取值 1 或 0, 请填写: 1, 用于页面显示微信 安全支付 | +------------+------------------+---------------+--------+--------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 218000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 218002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 218003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 218004 | 交易关闭 | +-----------------------------------------------+------------------------------------------------------+ | 218098 | 系统超时 | +-----------------------------------------------+------------------------------------------------------+ | 218099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 218100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 218101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 218102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 218103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218107 | 消息类型与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 218108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 218109 | 版本号与签名内容不一致 | +-----------------------------------------------+------------------------------------------------------+ | 218110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 218104 | 用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218331 | 微信APP和支付宝APP支付时,APPID不能为空 | +-----------------------------------------------+------------------------------------------------------+ | 218332 | 支付宝统一下单时,买家用户ID不能为空 | +-----------------------------------------------+------------------------------------------------------+ | 218232 | 出账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218228 | (入账客户号、入账账户号)与分账串信息必须输入一项 | +-----------------------------------------------+------------------------------------------------------+ | 218230 | 入账客户号和入账账户号必须同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 218231 | 入账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218229 | (入账客户号、入账账户号)与分账串信息不可同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 218112 | 账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 218114 | 入账账户类型错误 | +-----------------------------------------------+------------------------------------------------------+ | 218727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 218721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 218722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 218723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 218726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 218732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 218330 | 商户没有入驻 | +-----------------------------------------------+------------------------------------------------------+ | 218202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 218204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 218303 | 商户支付基础信息未配置 | +-----------------------------------------------+------------------------------------------------------+ | 218321 | 支付手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 218323 | 支付手续费只能向商户收取 | +-----------------------------------------------+------------------------------------------------------+ | 218314 | 支付手续费账户状态不正常 | +-----------------------------------------------+------------------------------------------------------+ | 218215 | 请补录身份信息 | +-----------------------------------------------+------------------------------------------------------+ | 218804 | 商户超限额或限次 | +-----------------------------------------------+------------------------------------------------------+ | 218805 | 商户未开通该功能权限 | +-----------------------------------------------+------------------------------------------------------+ | 218806 | 商户交易限制 | +-----------------------------------------------+------------------------------------------------------+ | 218746 | 支付成功,分账失败 | +-----------------------------------------------+------------------------------------------------------+ | 218341 | 订单已关闭 | +-----------------------------------------------+------------------------------------------------------+ | 218342 | 已支付成功 | +-----------------------------------------------+------------------------------------------------------+ | 218343 | 已支付失败 | +-----------------------------------------------+------------------------------------------------------+ | 218344 | 订单信息不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 218345 | 未获取二维码链接 | +-----------------------------------------------+------------------------------------------------------+ | 218346 | 未获取支付信息 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{"version":"10","cmd_id":"218","mer_cust_id":"6666000000217291", "user_cust_id":"","order_date":"20170921","order_id":"210014670","pay_type":"13", "trans_amt":"0.02","div_detail":"[ {'divCustId':'6666000000307920','divAcctId':'310545','divAmt':'0.01','divFreezeFg':'00'}, {'divCustId':'6666000000217291','divAcctId':'219871','divAmt':'0.01','divFreezeFg':'00'}]", "in_cust_id":"","in_acct_id":"","app_id":"000","is_raw":"1","buyer_logon_id":"quxiangzhen@21cn.com", "buyer_id":"000","goods_desc":"商品描述","goods_type":"5812","attch_info":"attch_info", "good_tag":"good_tag","device_info":"device_info","ip_addr":"ip_addr","location_val":"location_val", "order_expire_time":"","ret_url":"https://www.baidu.com/index.php?tn=monline_3_dg", "bg_ret_url":"http://192.168.0.74:8001/npayCallBack/asyncHandle.json","mer_priv":"","extension":"" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "218"; String merCustId = "6666000000026086"; String version = "10"; String contentType = "application/x-www-form-urlencoded"; String charset = "UTF-8"; String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue; jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset); jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send(); String body = httpResponse.bodyText(); String resultObj = parseResult(body);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "218", "resp_code": "218000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "218", "resp_code": "218099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } H5 收银台 -------- 功能说明 ~~~~~~~~~~~~~~~~ 商户调用该接口,跳转到汇付的 H5 收银台,收银台目前支持快捷支付、微信公众号支付 调用方式:页面浏览器 收银台业务流程说明: .. image:: _static/images/cashier_desk_flow.png 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+=======================+=====================+============================+========================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 219 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 付款人汇付客户号 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 定长16位String | 可选 | (入账客户号、入账账户号) 和 分账串必填一项,且只能填一项 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 入账账户号 | in\_acct\_id | 变长9位String | 可选 | | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 分账串 | div\_detail | 变长String | 可选 | (入账客户号、入账账户号) 和 分账串必填一项,且只能填一项; 分账串定义可参照下表; | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 变长12位String | 可选 | 单位秒 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 页面返回URL | ret\_url | 变长128位的String | 可选 | 用于支付完成跳转的结果页面 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 扩展域 | Extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 网站名字 | app\_name | 变长64位String | 必须(微信H5支付)其他可选 | APP:app的名字WAP:网站名字 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 应用唯一标识 | appInfo\_id | 变长64位String | 必须(微信H5支付)其他可选 | 苹果APP:IOS应用唯一标识 安卓APP:APP包名WAP:网站首页URL,须保证公网能正常访问到 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 扫码设备号 | device\_info | 变长32位String | 必须(微信H5支付)其他可选 | 苹果APP:1 安卓APP:2 IOS手机网站: 3 ANDROID手机网站:4 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ | 设备IP地址 | ip\_addr | 变长20位的String | 可选 | 微信必传 | +--------------------+-----------------------+---------------------+----------------------------+----------------------------------------------------------------------------------------+ 分账账户串(div\_detail )内容: +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须**| **说明** | +===================+===================+==================+=============+===========================================================+ | 分账客户号 | divCustId | 变长16位String | 必须 | div\_detail参数下的二级参数 分账客户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账账户号 | divAcctId | 变长9位String | 必须 | div\_detail参数下的二级参数 分账账户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账金额 | divAmt | 变长14位String | 必须 | div\_detail参数下的二级参数 分账金额,保留两位小数 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 是否冻结标志 | divFreezeFg | 定长2位String | 必须 | div\_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ 注:如果支付时不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号 同步返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=====================+==================+============+=====================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 219、208、218 如果用户在收银台页面选择了快捷支付,则返回的cmdId是208; 如果用户选择了微信支付,则返回的cmdId是218 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 208002、218002--处理中,其他见返回码 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 商户的唯一标识 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 付款人汇付客户号; 快捷支付时,如果用户未在汇付开过户的话,会自动开户,并返回当前付款人在汇付的客户号 | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 动态口令 | token\_id | 变长64位String | 可选 | 动态口令, 用于后续接口调用中使用(微信支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 支付信息 | pay\_info | 变长String | 可选 | json格式字符串,作用于原生态 js 支付时的参数; (微信支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 变长8位String | 必须 | 付款人快捷支付时的银行卡所属银行代号(快捷支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | 付款人快捷支付时的银行卡掩码 (快捷支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 绑定银行卡ID | bind\_card\_id | 变长20位String | 必须 | 付款人快捷支付时的快捷绑卡的ID (快捷支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ | 借贷标记 | dc\_flag | 定长1位String | | (快捷支付时的返回参数) | +------------------------+---------------------+------------------+------------+---------------------------------------------------------------------------------------------------------------------+ 异步返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +========================+=======================+=====================+============+================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 208、218 如果用户在收银台页面选择了快捷支付,则返回的cmdId是208; 如果用户选择了微信支付,则返回的cmdId是218 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 208000、218000—交易成功,其他见返回码 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+10位系统流水号 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一,20位内的字母或数字组合 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 开户银行代号 | bank\_id | 变长8位String | 必须 | 具体见附件:开户银行代号 (快捷支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 银行卡号 | card\_no | 变长32位String | 必须 | 返回银行卡号掩码 (快捷支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 绑定银行卡ID | bind\_card\_id | 变长20位String | 必须 | 本次快捷绑卡的ID (快捷支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 借贷标记 | dc\_flag | 定长1位String | 必须 | 0--借记,储蓄卡 1--贷记,信用卡 (快捷支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 是否原生态 | is\_raw | 定长1位String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 动态口令 | token\_id | 变长64位String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 支付信息 | pay\_info | 变长String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 买家用户ID | buyer\_id | 变长100位String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 附加信可选息 | attach\_info | 变长128位String | 可选 | (微信支付时的返回参数) | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 订单超时时间 | order\_expire\_time | 变长12位String | 可选 | 单位秒 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 入账客户号 | in\_cust\_id | 定长16位String | 可选 | | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 入账账户号 | in\_acct\_id | 变长9位String | 可选 | | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 可选 | | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 支付返回地址 | ret\_url | 变长128位的String | 可选 | | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知商户开户结果 注意:1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ | 扩展域 | Extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+-----------------------+---------------------+------------+----------------------------------------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-----------------------------------------------+------------------------------------------------------+ |**返回码** |**返回描述** | +-----------------------------------------------+------------------------------------------------------+ | 208000 | 支付成功 | +-----------------------------------------------+------------------------------------------------------+ | 208001 | 支付请求受理中 | +-----------------------------------------------+------------------------------------------------------+ | 208099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 218000 | 交易成功 | +-----------------------------------------------+------------------------------------------------------+ | 218002 | 请求已受理 | +-----------------------------------------------+------------------------------------------------------+ | 218003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 218099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 219003 | 交易失败 | +-----------------------------------------------+------------------------------------------------------+ | 219099 | 系统异常 | +-----------------------------------------------+------------------------------------------------------+ | 219100 | 请求参数非法 | +-----------------------------------------------+------------------------------------------------------+ | 219101 | 商户无此接口权限 | +-----------------------------------------------+------------------------------------------------------+ | 219102 | 验证签名失败 | +-----------------------------------------------+------------------------------------------------------+ | 219110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 219103 | 商户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 219201 | 页面数据被篡改 | +-----------------------------------------------+------------------------------------------------------+ | 219202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 219232 | 出账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 219228 | (入账客户号、入账账户号)与分账串信息必须输入一项 | +-----------------------------------------------+------------------------------------------------------+ | 219230 | 入账客户号和入账账户号必须同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 219231 | 入账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 219229 | (入账客户号、入账账户号)与分账串信息不可同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 219112 | 账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 219114 | 入账账户类型错误 | +-----------------------------------------------+------------------------------------------------------+ | 219727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 219721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 219722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 219723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 219728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 219729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 219726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 219725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 219741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 219732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 219724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 219321 | 操作超时,请重试 | +-----------------------------------------------+------------------------------------------------------+ | 219747 | 商户收银台未配置 | +-----------------------------------------------+------------------------------------------------------+ | 219335 | 信息被篡改 | +-----------------------------------------------+------------------------------------------------------+ | 218332 | 买家用户ID不能为空 | +-----------------------------------------------+------------------------------------------------------+ | 218334 | 支付返回地址不能为空 | +-----------------------------------------------+------------------------------------------------------+ | 218232 | 出账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218228 | (入账客户号、入账账户号)与分账串信息必须输入一项 | +-----------------------------------------------+------------------------------------------------------+ | 218230 | 入账客户号和入账账户号必须同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 218231 | 入账用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218229 | (入账客户号、入账账户号)与分账串信息不可同时输入 | +-----------------------------------------------+------------------------------------------------------+ | 218112 | 账号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 218114 | 入账账户类型错误 | +-----------------------------------------------+------------------------------------------------------+ | 218727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 218721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 218722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 218723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 218726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 218741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 218732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 218724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 218330 | 商户没有入驻 | +-----------------------------------------------+------------------------------------------------------+ | 218303 | 商户支付基础信息未配置 | +-----------------------------------------------+------------------------------------------------------+ | 218321 | 支付手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 218323 | 支付手续费只能向商户收取 | +-----------------------------------------------+------------------------------------------------------+ | 218314 | 支付手续费账户状态不正常 | +-----------------------------------------------+------------------------------------------------------+ | 218110 | 商户号不存在 | +-----------------------------------------------+------------------------------------------------------+ | 218201 | 页面数据被篡改 | +-----------------------------------------------+------------------------------------------------------+ | 218321 | 操作超时,请重试 | +-----------------------------------------------+------------------------------------------------------+ | 218746 | 支付成功,分账失败 | +-----------------------------------------------+------------------------------------------------------+ | 208201 | 页面数据被篡改 | +-----------------------------------------------+------------------------------------------------------+ | 208202 | 交易订单号重复 | +-----------------------------------------------+------------------------------------------------------+ | 208203 | 账户可用余额不足 | +-----------------------------------------------+------------------------------------------------------+ | 208204 | 商户配置异常 | +-----------------------------------------------+------------------------------------------------------+ | 208205 | 短信验证码验证失败 | +-----------------------------------------------+------------------------------------------------------+ | 208206 | 短信验证码发送手机号与验证手机号不一致 | +-----------------------------------------------+------------------------------------------------------+ | 208208 | 短信验证码已失效请重新获取 | +-----------------------------------------------+------------------------------------------------------+ | 208211 | 短信验证码发送失败 | +-----------------------------------------------+------------------------------------------------------+ | 208214 | 查询出现异常 | +-----------------------------------------------+------------------------------------------------------+ | 208215 | 请补录身份信息 | +-----------------------------------------------+------------------------------------------------------+ | 208216 | 短信验证码发送过于频繁或单日发送次数超限 | +-----------------------------------------------+------------------------------------------------------+ | 208301 | 只有个人用户和个体户能快捷支付 | +-----------------------------------------------+------------------------------------------------------+ | 208302 | 商户支付基础信息未配置 | +-----------------------------------------------+------------------------------------------------------+ | 208303 | 支付手续费账户状态不正常 | +-----------------------------------------------+------------------------------------------------------+ | 208304 | 支付手续费未配置 | +-----------------------------------------------+------------------------------------------------------+ | 208306 | 身份证实名验证错误 | +-----------------------------------------------+------------------------------------------------------+ | 208307 | 银行卡信息与上次绑卡信息不一致,请解绑后再提交绑卡 | +-----------------------------------------------+------------------------------------------------------+ | 208308 | 个人用户信息校验失败 | +-----------------------------------------------+------------------------------------------------------+ | 208309 | 开户手续费收取失败 | +-----------------------------------------------+------------------------------------------------------+ | 208310 | 该笔交易已结束 | +-----------------------------------------------+------------------------------------------------------+ | 208311 | 无任何银行信息 | +-----------------------------------------------+------------------------------------------------------+ | 208314 | 验证码发送失败 | +-----------------------------------------------+------------------------------------------------------+ | 208315 | 验证码发送成功 | +-----------------------------------------------+------------------------------------------------------+ | 208317 | 用户有快捷卡正在绑定中,请勿重复绑卡 | +-----------------------------------------------+------------------------------------------------------+ | 208319 | 验证码发送中 | +-----------------------------------------------+------------------------------------------------------+ | 208320 | 银行卡解绑失败 | +-----------------------------------------------+------------------------------------------------------+ | 208321 | 操作超时,请重试 | +-----------------------------------------------+------------------------------------------------------+ | 208322 | 省份地区信息非法 | +-----------------------------------------------+------------------------------------------------------+ | 208324 | 银行卡信息验证失败 | +-----------------------------------------------+------------------------------------------------------+ | 208325 | 银行卡号与银行、卡类型信息不匹配 | +-----------------------------------------------+------------------------------------------------------+ | 208721 | 分账串内容不能超过五个 | +-----------------------------------------------+------------------------------------------------------+ | 208722 | 分账串部分字段为空 | +-----------------------------------------------+------------------------------------------------------+ | 208723 | 分账串金额格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 208724 | 分账串累计金额不等于订单金额 | +-----------------------------------------------+------------------------------------------------------+ | 208725 | 分账信息用户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 208726 | 分账信息账户状态异常 | +-----------------------------------------------+------------------------------------------------------+ | 208727 | 分账信息异常 | +-----------------------------------------------+------------------------------------------------------+ | 208728 | 分账串账户信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 208729 | 分账串账户异常 | +-----------------------------------------------+------------------------------------------------------+ | 208732 | 分账串客户号信息格式错误 | +-----------------------------------------------+------------------------------------------------------+ | 208739 | 快捷支付短信发送异常 | +-----------------------------------------------+------------------------------------------------------+ | 208741 | 分账串内容重复 | +-----------------------------------------------+------------------------------------------------------+ | 208742 | 快捷支付成功,分账失败 | +-----------------------------------------------+------------------------------------------------------+ | 208743 | 请获取验证码 | +-----------------------------------------------+------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "219", "mer_cust_id": "6666000000002619", "user_cust_id": "6666000000005942", "order_id": "201710268889", "order_date": "20171027", "trans_amt": "0.02", "in_cust_id": "", "in_acct_id": "", "div_detail": "[{'divCustId':'6666000000002619','divAcctId':'2744','divAmt':'0.01','divFreezeFg':'00'},{'divCustId':'6666000000007485','divAcctId':'7791','divAmt':'0.01','divFreezeFg':'00'}]", "goods_desc": "商品描述", "goods_type": "5812", "order_expire_time": "000", "ret_url": "https://www.baidu.com/", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "219"; String merCustId = "6666000000026086"; String version = "10"; httpServletResponse.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); PrintWriter out = httpServletResponse.getWriter(); out.println(); out.println(""); out.println(""); out.println(" sender"); out.println(" "); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(" "); out.println(""); out.flush(); out.close(); .. 成功响应: .. code:: json 200 { "cmd_id": "219", "resp_code": "219000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "219", "resp_code": "219099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } 页面展示 ~~~~~~~~~~~~~~~~ .. image:: _static/images/cashier_desk_page.png H5 支付 ------ 功能说明 ~~~~~~~~~~~~~~~~ 调用本接口时,返回微信 H5 支付地址,用于唤起微信支付。 调用方式:页面浏览器 请求参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 | +====================+======================+=====================+============================+==========================================================================================================================================================================================================================================================================+ | 版本号 | version | 定长2位String | 必须 | 目前固定为10 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 固定226 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码支付类型 | pay\_type | 定长2位String | 必须 | 16 : 微信H5 17 : 支付宝H5 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户。详见下表 分账账户串 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 可选 | | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品标记 | good\_tag | 变长32位String | 可选 | 商品标记,优惠标志等 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 网站名字 | app\_name | 变长64位String | 必须(微信H5支付)其他可选 | APP:app的名字WAP:网站名字 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应用唯一标识 | appInfo\_id | 变长64位String | 必须(微信H5支付)其他可选 | 苹果APP:IOS应用唯一标识 安卓APP:APP包名WAP:网站首页URL,须保证公网能正常访问到 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码设备号 | device\_info | 变长32位String | 必须(微信H5支付)其他可选 | 苹果APP:1 安卓APP:2 IOS手机网站: 3 ANDROID手机网站:4 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 二级商户号 | secondary\_mer\_id | 定长10位的String | 可选 | 对于开启二级商户模式的商户,必须输入其配下的二级商户号 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备IP地址 | ip\_addr | 变长20位的String | 可选 | 微信必传 | +--------------------+----------------------+---------------------+----------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 分账账户串(div\_detail )内容: +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** | **是否必须**| **说明** | +===================+===================+==================+=============+===========================================================+ | 分账客户号 | divCustId | 变长16位String | 必须 | div\_detail参数下的二级参数 分账客户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账账户号 | divAcctId | 变长9位String | 必须 | div\_detail参数下的二级参数 分账账户号 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 分账金额 | divAmt | 变长14位String | 必须 | div\_detail参数下的二级参数 分账金额,保留两位小数 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ | 是否冻结标志 | divFreezeFg | 定长2位String | 必须 | div\_detail参数下的二级参数 冻结标志 01:冻结; 00:不冻结 | +-------------------+-------------------+------------------+-------------+-----------------------------------------------------------+ 注:如果支付时不需要分账给多个人的话,就不要传分账账户串,直接传入账客户号和入账账户号 同步返回参数 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **参数中文名称** | **参数名称** | **数据格式** |**是否必须**| **说明** | +========================+=====================+=====================+============+==========================================================================================================================================================================================================================================================================+ | 消息类型 | cmd\_id | 定长3位String | 必须 | 226 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回码 | resp\_code | 定长6位String | 必须 | 226000—交易成功 226002—请求受理中 其他见返回码 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 应答返回描述 | resp\_desc | 变长String | 必须 | 返回码的对应中文描述 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户客户号 | mer\_cust\_id | 定长16位String | 必须 | 由汇付生成,商户的唯一性标识 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 用户客户号 | user\_cust\_id | 定长16位String | 可选 | 由汇付生成,用户的唯一性标识 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单日期 | order\_date | 定长8位String | 必须 | 格式为YYYYMMDD,例如:20160307 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 订单号 | order\_id | 变长20位String | 必须 | 由商户生成,必须保证唯一, 20位内的字母或数字组合 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扫码支付类型 | pay\_type | 定长2位String | 必须 | 16 : 微信H5 17 : 支付宝H5 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 交易金额 | trans\_amt | 变长14位String | 必须 | 金额格式是###.00 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 分账账户串 | div\_detail | 变长String | 必须 | 业务类型为支付时必传,分账账户必须是入账客户的账户。详见下表 分账账户串 数据格式: [{'divCustId':'6666000000025350','divAcctId':'78276','divAmt':'50.00','divFreezeFg':'00'},{'divCustId':'6666000000025666','divAcctId':'78841','divAmt':'50.00','divFreezeFg':'01'}] | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品描述 | goods\_desc | 变长127位String | 必须 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商品类型 | goods\_type | 定长4位String | 可选 | MCC,银联支付时必须 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 支付地址 | pay\_url | 变长64位String | 可选 | 用于拉起微信收银台的URL | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 操作员 | oper\_user\_id | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 设备号 | device\_info | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 本平台交易唯一标识号 | platform\_seq\_id | 定长18位String | 必须 | 组成规则:8位本平台日期+ 10位系统流水号 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户后台应答地址 | bg\_ret\_url | 变长128位的String | 必须 | 通过后台异步通知结果 注意: 1) 使用时不要包含中文 2) 必须是外网地址 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 商户私有域 | mer\_priv | 变长120位的String | 可选 | 为商户的自定义字段,该字段在交易完成后由本平台原样返回 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 扩展域 | extension | 变长512位的String | 可选 | 用于扩展请求参数 | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 通道返回码 | bg\_channel\_code | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 通道返回描述 | bg\_channel\_msg | 变长200位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回码 | bg\_bank\_code | 变长32位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 银行返回描述 | bg\_bank\_message | 变长200位String | 可选 | | +------------------------+---------------------+---------------------+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 返回码 ~~~~~~~~~~~~~ +-----------------------------------------------+---------------------------------------------------------+ | **H5 支付接口(cmd\_id=226)** | | +-----------------------------------------------+---------------------------------------------------------+ | 226000 | 交易成功 | +-----------------------------------------------+---------------------------------------------------------+ | 226002 | 请求已受理 | +-----------------------------------------------+---------------------------------------------------------+ | 226003 | 交易失败 | +-----------------------------------------------+---------------------------------------------------------+ | 226099 | 系统异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226100 | 请求参数非法 | +-----------------------------------------------+---------------------------------------------------------+ | 226101 | 商户无此接口权限 | +-----------------------------------------------+---------------------------------------------------------+ | 226102 | 验证签名失败 | +-----------------------------------------------+---------------------------------------------------------+ | 226103 | 商户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226104 | 用户状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226107 | 消息类型与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 226108 | 商户客户号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 226109 | 版本号与签名内容不一致 | +-----------------------------------------------+---------------------------------------------------------+ | 226110 | 商户号不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 226721 | 分账串内容不能超过五个 | +-----------------------------------------------+---------------------------------------------------------+ | 226727 | 分账信息异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226204 | 商户配置异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226748 | 二级商户号不存在 | +-----------------------------------------------+---------------------------------------------------------+ | 226749 | 二级商户号状态异常 | +-----------------------------------------------+---------------------------------------------------------+ | 226202 | 交易订单号重复 | +-----------------------------------------------+---------------------------------------------------------+ 代码示例 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java .. code:: java String valueObj = "{ "version": "10", "cmd_id": "226", "mer_cust_id": "6666000000037133", "user_cust_id": "", "order_id": "2018041300095", "order_date": "20180419", "pay_type": "16", "trans_amt": "0.01", "div_detail": "[{'divCustId':'6666000000037137','divAcctId':'92127','divAmt':'0.01','divFreezeFg':'00'}]", "goods_desc": "1", "good_tag": "", "app_name": "111", "appinfo_id": "idids00000", "goods_type": "1222", "oper_user_id": "test_oper_user_id", "device_info": "1", "bg_ret_url": "http://192.168.0.74:8001/npayCallBack/asyncHandle.json", "mer_priv": "tess", "secondary_mer_id": "NP09050001" }"; String testUrl = "http://192.168.3.170:8083/npay/merchantRequest"; String checkValue = sign(valueObj); String cmdId = "226"; String merCustId = "6666000000026086"; String version = "10"; String contentType = "application/x-www-form-urlencoded"; String charset = "UTF-8"; String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_id=" + merCustId + "&check_value=" + checkValue; jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUrl).charset(charset); jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentType).body(postStr).send(); String body = httpResponse.bodyText(); String resultObj = parseResult(body);//解密 .. 成功响应: .. code:: json 200 { "cmd_id": "226", "resp_code": "226000", "resp_desc": "交易成功", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... } .. 失败响应: .. code:: json 200 { "cmd_id": "226", "resp_code": "226099", "resp_desc": "交易失败", "mer_cust_id" : "6666000000026086", "order_date": "20180327", "order_id": "10000000001", ....... }