SDK & DEMO

JAVA 版 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支付参数

其他语言 DEMO

目前还支持php、C#、Python三种语言,可以在开发说明-> 加解签简介 中下载关于签名的demo。

手机 SDK

APP+ SDK 提供了多种主流支付渠道,商户只需要一次接入即可完成多个渠道的接入。APP+ SDK 包括客户端 SDK 和服务端 SDK 两部分,适配了 Android、iOS 移动端平台。

相关组件下载

Android SDK

iOS SDK

服务端 DEMO

流程说明

_images/sdk_flow.png

接入步骤

  • 第一步:下载客户端 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转码