SDK & DEMO¶
JAVA 版 DEMO¶
DEMO 分别提供了页面浏览器调用方式的快捷支付 APP 版接口和后台系统调用方式的 APP 支付接口调用示例。使用 DEMO 之前商户需要申请 CFCA 加解签证(商户在汇付开户后,会有邮件通知下载)
硬件需求
服务可以部署在 linux 和 windows 等具有 JVM 环境的服务容器内,比如 jboss,tomcat 等(暂提供 jboss)。安装 JDK1.7 并配置好 JDK 的环境变量。
部署服务
将证书文件放到服务器 $path 目录下,上传 war 包到服务器。
启动服务器
- Windows服务器下执行**/jboss/bin/standalone.bat -DmerCertPath=#商户证书地址.pfx -DpfxparTest=#密码 -DhsCertPath=#汇付证书地址.cer
如:**/jboss/bin/standalone.bat -DpfxFile=”/app/etc/product/888888-NEW.pfx” -DpfxFilePwd=”123456” -DcerFile=”/app/etc/product/CFCA_ACS_TEST_OCA31.cer”
- Linux服务器下,执行**/jboss/bin/standalone.sh -DmerCertPath=#商户证书地址.pfx -DpfxparTest=#密码 -DhsCertPath=#汇付证书地址.cer
如:**/jboss/bin/standalone.sh -DpfxFile=”/app/etc/product/888888-NEW.pfx” -DpfxFilePwd=”123456” -DcerFile=”/app/etc/product/CFCA_ACS_TEST_OCA31.cer”
接口 | 调用方式 | 访问地址 | 说明 |
---|---|---|---|
快捷支付 APP 版接口 | 页面浏览器提交 | http://ip:port/service-demo/quickPay/pay.json | 请求后跳转快捷支付页面 |
APP 支付接口 | 后台系统调用 | http://ip:port/service-demo/appPay/pay?pay_type=10 | 请求后返回APP支付参数 |
手机 SDK¶
APP+ SDK 提供了多种主流支付渠道,商户只需要一次接入即可完成多个渠道的接入。APP+ SDK 包括客户端 SDK 和服务端 SDK 两部分,适配了 Android、iOS 移动端平台。
相关组件下载
流程说明¶

接入步骤¶
- 第一步:下载客户端 SDK ;
- 第二步:商户 APP 嵌入客户端 SDK ;
- 第三步:商户服务端提供 2 个 HTTP 接口,分别是快捷支付接口和 APP 支付接口;
- 第四步:商户服务端添加异步回调处理 ,用于接收交易结果的事件通知;
- 第五步:商户客户端可以添加轮询处理,向后端获取交易结果(后台可调用交易状态查询接口获取交易结果);
快捷支付接口¶
商户服务端提供此接口给客户端 SDK 调用。当商户 APP 发起快捷支付时,客户端 SDK 会调用此接口,跳转到汇付的快捷支付页面,用户完成支付后跳转支付结果页面。
调用方式:页面提交方式
请求参数
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
设备号 | device_info | 变长32位 | 可选 | |
IP地址 | ip_addr | 变长20位 | 可选 | |
经纬度 | location_val | 变长20位 | 可选 | |
设备信息 | dev_info_json | 变长2000位 | 可选 | 该字段是由客户端 SDK 调用商户此接口时,传过来的。服务端请将该参数透传给快捷支付( APP 版)接口 |
支付参数 | self_param_info | 可选 | 该字段是商户的 APP 调用 客户端 SDK 时传的参数,再由客户端 SDK 透传给此接口。此字段内容商户可以自定义 | |
扩展域 | extension | 变长512位 | 可选 | 用于扩展请求参数 |
返回参数
返回结果页面
注:如果商户服务端请求支快捷支付时传的 ret_url 不为空,则跳转到商户的 ret_url,由商户解签处理快捷支付结果。否则跳转到 APP+ 的结果页面,商户不需要处理快捷支付同步接口,只需要接收并处理异步消息。
APP 支付接口¶
商户服务端提供此接口给客户端 SDK 调用。当商户 APP 发起微信或者支付宝支付时,客户端 SDK 会调用此接口,获取微信或者支付宝的支付参数,然后再唤起微信或者支付宝支付。
调用方式:系统调用
请求参数
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
设备号 | device_info | 变长32位 | 可选 | |
IP地址 | ip_addr | 变长20位 | 可选 | |
经纬度 | location_val | 变长20位 | 可选 | |
设备信息 | dev_info_json | 变长2000位 | 可选 | 该字段是由客户端 SDK 调用商户此接口时,传过来的。服务端请将该参数透传给 APP 支付接口 |
支付类型 | pay_type | 定长2位 | 必须 | 15:支付宝;10 : 微信APP支付; |
支付参数 | self_param_info | 可选 | 该字段是商户的 APP 调用 客户端 SDK 时传的参数,再由客户端 SDK 透传给此接口。此字段内容商户可以自定义 | |
扩展域 | extension | 变长512位 | 可选 | 用于扩展请求参数 |
返回参数
参数中文名称 | 参数名称 | 数据格式 | 是否必须 | 说明 |
---|---|---|---|---|
应答返回码 | resp_code | 定长6位String | 必须 | 218002:请求已受理;218003:交易失败;218098:系统超时;其他请参考 APP支付返回码 |
应答返回描述 | resp_desc | 变长String | 必须 | 返回码的对应中文描述 |
支付地址 | pay_url | 变长1024位 | 必须 | 用于支付宝支付 |
支付信息 | pay_info | 定长16位String | 必须 | 用于微信APP支付 |
扩展域 | extension | 变长512位的String | 可选 |
注意事项:
1、请将返回参数以 json 格式写入到 response 对象的 body 区,且 body 区只有返回参数,如果是 java 开发则可以添加注解@ResponseBody
body区格式:
%7B%22pay_url%22%3A%22%22%2C%22resp_desc%22%3A%22%E4%BA%8C%E7%BA%A7%E5%95%86%E6%88%B7%E5%8F%B7%E4%B8%8D%E5%AD%98%E5%9C%A8%22%2C%22platform_seq_id%22%3A%22%22%2C%22resp_code%22%3A%22218748%22%2C%22pay_info%22%3A%22%22%2C%22token_id%22%3A%22%22%2C%22order_id%22%3A%22TEST1513827504986%22%2C%22order_date%22%3A%2220171221%22%7D
2、为了防止乱码,返回参数需要做URLEncoder转码