支付接口介绍
使用此接口可以实现支付宝、QQ钱包、微信支付与财付通的即时到账,免签约,无需企业认证。
本文阅读对象:商户系统(在线购物平台、人工收银系统、自动化智能收银系统或其他)集成开心支付涉及的技术架构师,研发工程师,测试工程师,系统运维工程师。
接口申请方式
共有两种接口模式:
(一)普通支付商户
可以获得一个支付商户,目前认证费是5元。可在线申请:接入申请,在线申请之后即可登录使用!
(二)合作支付商户
获得一个合作者身份TOKEN,可以集成到你开发的程序里面,通过接口无限申请普通支付商户,并且每个普通支付商户单独结算,相对独立。申请需要进行企业或开发者资质认证,请联系人工申请QQ58888,申请之后会将合作者身份TOKEN给你!(内测暂不开放)
协议规则
传输方式:HTTP
数据格式:JSON
签名算法:MD5
字符编码:UTF-8
[API]查询商户余额
URL地址:https://xpay.cctzz.cc/api.php?act=paymentBalance&pid={商户ID}&key={商户密钥}
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | paymentBalance | 此API固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | xxxxxxxxxxxxxx |
返回结果:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
| 返回信息 | msg | String | 查询余额成功! | |
| 余额 | money | String | 100.00 |
[API]查询单个代收订单
URL地址:https://xpay.cctzz.cc/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | order | 此API固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | xxxxxxxxxxxxxx | |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 |
返回结果:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
| 返回信息 | msg | String | 查询订单号成功! | |
| 易支付订单号 | trade_no | String | 2016080622555342651 | 开心支付订单号 |
| 商户订单号 | out_trade_no | String | 20160806151343349 | 商户系统内部的订单号 |
| 支付方式 | type | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付 |
| 商户ID | pid | Int | 1001 | 发起支付的商户ID |
| 创建订单时间 | addtime | String | 2016-08-06 22:55:52 | |
| 完成交易时间 | endtime | String | 2016-08-06 22:55:52 | |
| 商品名称 | name | String | VIP会员 | |
| 商品金额 | money | String | 1.00 | |
| 支付状态 | status | Int | 0 | 1为支付成功,0为未支付 |
[API]批量查询代收订单
URL地址:https://xpay.cctzz.cc/api.php?act=orders&pid={商户ID}&key={商户密钥}
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | orders | 此API固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | xxxxxxxxxxxxxx | |
| 查询订单数量 | limit | 否 | Int | 20 | 返回的订单数量,最大50 |
| 页码 | page | 否 | Int | 1 | 当前查询的页码 |
返回结果:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
| 返回信息 | msg | String | 查询结算记录成功! | |
| 订单列表 | data | Array | 订单列表 |
[API]查询单个代付订单
URL地址:https://xpay.cctzz.cc/api.php?act=paymentOrder&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | paymentOrder | 此API固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | xxxxxxxxxxxxxx | |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 |
返回结果:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
| 返回信息 | msg | String | 查询订单号成功! | |
| 开心支付订单号 | trade_no | String | 2016080622555342651 | 开心支付订单号 |
| 商户订单号 | out_trade_no | String | 20160806151343349 | 商户系统内部的订单号 |
| 代付方式 | type | String | alipay | alipay:支付宝,wxpay:微信支付 |
| 商户ID | pid | Int | 1001 | 发起代付的商户ID |
| 创建订单时间 | addtime | String | 2016-08-06 22:55:52 | |
| 完成交易时间 | endtime | String | 2016-08-06 22:55:52 | |
| 代付金额 | money | String | 1.00 | |
| 代付状态 | status | Int | 0 | 1为代付成功,0为未代付 |
[API]批量查询代付订单
URL地址:https://xpay.cctzz.cc/api.php?act=paymentOrders&pid={商户ID}&key={商户密钥}
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | paymentOrders | 此API固定值 |
| 商户ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | xxxxxxxxxxxxxx | |
| 查询订单数量 | limit | 否 | Int | 20 | 返回的订单数量,最大50 |
| 页码 | page | 否 | Int | 1 | 当前查询的页码 |
返回结果:
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
| 返回信息 | msg | String | 查询结算记录成功! | |
| 订单列表 | data | Array | 订单列表 |
发起支付请求
URL地址:https://xpay.cctzz.cc/submit.php
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 支付通道ID | pay_id | 是 | Int | 1 | 通道ID请联系客服 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | https://xpay.cctzz.cc/notify_url.php | 服务器异步通知地址 |
| 跳转通知地址 | return_url | 是 | String | https://xpay.cctzz.cc/return_url.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 网站名称 | sitename | 否 | String | 彩虹云任务 | |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
结果参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 状态 | code | 是 | Int | 1 | 1为成功,其他为失败 |
| 说明 | msg | 是 | String | 发起成功 | 状态说明 |
| 数据 | data | 否 | Array | 状态为成功时才有此参数 |
data参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 平台订单号 | trade_no | 是 | String | 20160806151343349 | 支付平台的订单号 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户提交的订单号 |
| 订单金额 | money | 是 | String | 1.00 | 商户提交过来的金额 |
| 支付链接 | pay_url | 是 | String | https://xpay.cctzz.cc/pay.php | 跳转的支付链接 |
发起网关支付请求
URL地址:https://xpay.cctzz.cc/ebanking.php
POST数据:pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 支付方式 | type | 是 | String | gateway | gateway:网银,alipay:支付宝, qqpay:QQ钱包,wxpay:微信支付, usdt:虚拟币支付 |
| 银行卡类型 | card_type | 否 | Int | 1 | 1:储蓄卡,2:信用卡 支付方式为gateway时必填 |
| 银行编码 | bank_code | 否 | String | 01000000 | 01000000:中国邮储银行
01020000:工商银行 01030000:农业银行 01040000:中国银行 01050000:建设银行 03010000:交通银行 03020000:中信银行 03030000:光大银行 03040000:华夏银行 03050000:民生银行 03060000:广发银行 03070000:平安银行 03080000:招商银行 03090000:兴业银行 03100000:浦发银行 03180000:渤海银行 支付方式为gateway时必填 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | https://xpay.cctzz.cc/notify_url.php | 服务器异步通知地址 |
| 跳转通知地址 | return_url | 是 | String | https://xpay.cctzz.cc/return_url.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 网站名称 | sitename | 否 | String | 彩虹云任务 | |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
支付结果通知
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式:GET
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 易支付订单号 | trade_no | 是 | String | 20160806151343349021 | 开心支付订单号 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
| 支付方式 | type | 是 | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付, union:云闪付,gateway:网银, usdt:虚拟币支付 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 支付状态 | trade_status | 是 | String | TRADE_SUCCESS | |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
发起代付请求
URL地址:https://xpay.cctzz.cc/payment_submit.php
POST数据:pid={商户ID}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&card_name={收款姓名}&card_num={收款卡号}&bank_name={收款银行}&money={金额}&sign={签名字符串}&sign_type=MD5
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 代付网关 | gateway | 否 | String | agent |
不填写使用系统默认的。
pay060:okpay, pay061:租机, pay062:HIPAY, pay063:HZ支付, pay064:UU支付, |
| 代付方式 | type | 是 | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付, union:云闪付,gateway:网银, usdt:虚拟币 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | https://xpay.cctzz.cc/notify_url.php | 服务器异步通知地址 |
| 收款姓名 | card_name | 否 | String | 张三 | 人民币代付必填 |
| 收款卡号 | card_num | 否 | String | 888888888888888 | 人民币代付必填 |
| 收款银行 | bank_name | 否 | String | 工商银行 | 人民币代付必填 |
| 收款银行支行 | branch_name | 否 | String | 工商银行北京支行 | 人民币代付部分通道必填 |
| 收款地址 | address | 否 | String | TGmgvL1Y7mdKKFpxtGfmX21b2b9txxxxx | 虚拟币代付必填 |
| 代付金额 | money | 是 | String | 1.00 | |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
支付结果通知
通知类型:服务器异步通知(notify_url)
请求方式:GET
请求参数说明:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户ID | pid | 是 | Int | 1001 | |
| 代付订单号 | trade_no | 是 | String | 20160806151343349021 | 开心支付平台订单号 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
| 代付金额 | money | 是 | String | 1.00 | |
| 付款状态 | payment_status | 是 | String | PAYMENT_SUCCESS | PAYMENT_SUCCESS:代付成功; PAYMENT_FAIL:代付失败,已退回额度 |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
服务器异步通知页面特性
必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
开心支付是用GET方式发送通知信息,因此该页面中获取参数的方式,如:$_GET[‘out_trade_no’];
开心支付主动发起通知,该方式才会被启用;
只有在开心支付的交易管理中存在该笔交易,且发生了交易状态的改变,开心支付才会通过该方式发起服务器通知;
服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;
第一次交易状态改变时,不仅会返回同步处理结果,而且服务器异步通知页面也会收到开心支付发来的处理结果通知;
程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给开心支付的字符不是success这7个字符,开心支付服务器会不断重发通知,直到超过10次通知;
程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,开心支付会收不到success字符,会被开心支付服务器判定为该页面程序运行出现异常,而重发处理结果通知;
cookies、session等在此页面会失效,即无法获取这些数据;
该方式的调试与运行必须在服务器上,即互联网上能访问;
该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;
当商户收到服务器异步通知并打印出success时,服务器异步通知参数才会失效。也就是说在开心支付发送同一条异步通知时(包含商户并未成功打印出success导致开心支付重发数次通知),服务器异步通知参数是不变的。
收款SDK下载
W_Sdk.zip
SDK版本:V1.1
代付SDK下载
W_Sdk.zip
SDK版本:V1.1