关于开放平台
飞瀚开放平台面向广大开发者,提供线上数字营销、企业福利等一站式解决方案。商户及开发者可查阅平台 API 文档,了解当前已开放的各类业务接口,灵活选用在线直充、卡密发放、实物购买等服务并自主完成接口对接。平台具备完善的商品与活动支撑能力,可全面满足商户综合权益运营需求,助力企业实现福利发放、活动营销等多场景应用。
我司作为虚拟商品充值供应商,简称 CP;调用我方接口开展业务的合作商户,统一称为业务合作方(SP)。
平台服务概览
申请接入
当您需要飞翰开放平台提供对接服务时,即可提交申请,我们十分欢迎您,并安排专人为您对接!
开发指南
您可在此详细了解对接业务的各种规范,帮您快速开发。
常用工具
您可以在此查看常见问题,下载SDK以及其他开发工具。
API 文档
了解飞翰开放平台目前提供的所有可对接的业务接口以及对接方案详情。
关于接口的说明
数据传输格式:该接口使用HTTP协议,请求数据传输格式如下:
【接口URL】?【参数名称1】=【参数值1】&【参数名称2】=【参数值2】……
联调环境
http://apitest.ofpay.com
A08566
md5(of111111) 小写
OFCARD
⚠️ 该数据只能测试环境使用,正式环境禁止使用测试账号。
对接流程
创建项目
会员实名认证后登陆 api.ofpay.com 创建项目,通过我司商务审核之后生成一个A开头的编号(如A08566)。
IP白名单
向我司对接商务提供SP服务器的出口IP地址(可多个IP)和秘钥(keystr)进行绑定。
商品价格设定
通知我司商务商品设定协议价格。
资金权限开通
通知我司商务开通账户资金权限和商品资金权限。
账户充值
向我司账户上打款后,方可正式下单。
对账方式
SP可以登陆接口后台查看交易记录进行对账,也可以使用对账接口进行自动对账。
生产环境地址:api2.ofpay.com(支持HTTP和HTTPS)
开发指南
HTTP请求方式:POST, GET
签名算法(MD5)
包体 = 参数1 + 参数2 + ... + KeyStr md5_str = md5(包体).toUpperCase() // 32位大写
全局返回值
| 参数名 | 类型 | 说明 |
|---|---|---|
| retcode | string | 操作返回代码,1成功,其他数字具体错误在err_msg返回 |
| err_msg | string | 错误描述,如请求得到正确返回,此处将为空 |
订单状态说明
| 状态码 | 说明 |
|---|---|
| 0 | 充值中 |
| 1 | 充值成功 |
| 9 | 充值失败(可退款) |
| -1 | 查不到订单(需人工核实) |
基础接口
用户余额查询
v6.0此接口可以查询SP用户的信用点余额,可以提醒SP商户补充信用点
http://apitest.ofpay.com/newqueryuserinfo.do
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码,如A08566 |
| userpws | 是 | string | 项目密码的md5值(32位小写) |
| version | 是 | string | 固定值6.0 |
返回参数
| 名称 | 类型 | 备注 |
|---|---|---|
| retcode | string | 1成功 |
| totalBalance | string | 账户余额 |
| oufeiBalance | string | 欧飞账户资金余额 |
| feihanBalance | string | 飞翰资金账户余额 |
返回示例
<?xml version="1.0" encoding="GB2312"?> <userinfo> <err_msg/> <retcode>1</retcode> <userId>A08566</userId> <totalBalance>100120801.5</totalBalance> <oufeiBalance>100120301.5</oufeiBalance> <feihanBalance>500</feihanBalance> </userinfo>
商品详情查询
v6.0根据商品编号查询商品信息
http://apitest.ofpay.com/querycardinfo.do
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码 |
| userpws | 是 | string | 项目密码md5值(32位小写) |
| cardid | 是 | string | 商品编号,由我司商务提供 |
| version | 是 | string | 固定值6.0 |
返回示例
<?xml version="1.0" encoding="gb2312"?>
<cardinfo>
<err_msg></err_msg>
<retcode>1</retcode>
<ret_cardinfos>
<card>
<cardid>220612</cardid>
<pervalue>1</pervalue>
<inprice>1</inprice>
<cardname>Q币1元直充</cardname>
<innum>30</innum>
</card>
</ret_cardinfos>
</cardinfo>
订单充值状态查询
v6.0此接口用于下单之后查询充值状态
http://apitest.ofpay.com/api/query.do
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码 |
| spbillid | 是 | string | SP商户订单号 |
返回状态
| 状态码 | 说明 |
|---|---|
| 0 | 充值中(需要等待结果) |
| 1 | 充值成功 |
| 9 | 充值失败(可给客户退款) |
| -1 | 查不到此订单(不能作为失败处理) |
订单详情查询
v6.0根据外部订单号查询订单详情,支持XML和JSON格式返回
http://apitest.ofpay.com/queryOrderInfo.do
包体 = userid + userpws + sporder_id md5_str = md5(包体 + KeyStr).toUpperCase()
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码 |
| userpws | 是 | string | 项目密码md5值 |
| sporder_id | 是 | string | 商家下单时传入的订单号 |
| md5_str | 是 | string | 签名串 |
| version | 是 | string | 固定值6.0 |
| format | 否 | string | xml或json,默认xml |
对账接口
订单列表查询
v6.0⚠️ 此接口只查询3天内的订单
http://apitest.ofpay.com/querybill.do
包体 = userid + userpws + cardid + starttime + endtime md5_str = md5(包体 + KeyStr).toUpperCase()
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码 |
| userpws | 是 | string | 项目密码md5值 |
| cardid | 否 | string | 商品编码,不填为全部 |
| orderstat | 否 | int | 订单状态,默认5 |
| classtype | 否 | int | 类目编号,默认0所有 |
| starttime | 是 | string | 开始时间(yyyyMMdd) |
| endtime | 是 | string | 结束时间(yyyyMMdd) |
| md5_str | 是 | string | 签名串 |
| version | 是 | string | 固定值6.0 |
返回格式
CP流水号|SP订单号|商品编号|商品数量|充值账号|订单金额|订单时间|订单状态 订单总数:xxx|订单总额:xxx
账务明细查询
v6.0⚠️ 不可跨月查询
http://apitest.ofpay.com/financeQuery.do
包体 = userid + userpws + starttime + endtime + pagenum + pagesize md5_str = md5(包体 + KeyStr).toUpperCase()
直充接口
归属地查询
v6.0⚠️ 接口不支持json格式请求
http://apitest.ofpay.com/queryMobileInfo.do
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userid | 是 | string | SP项目编码 |
| phoneno | 是 | string | 7或11位手机号码 |
返回示例
{"city":"广州","operator":"移动","phoneNo":"1581585","province":"广东","retCode":"1"}
直充下单
v6.0直充卡密类通用接口,支持话费、流量,游戏等多种直充和卡密
http://apitest.ofpay.com/newOnlineOrder.do
包体 = userId + userPws + cardId + buyNum + spOrderId + orderTime + customerNo md5Str = md5(包体 + KeyStr).toUpperCase()
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userId | 是 | string | SP项目编码 |
| userPws | 是 | string | 项目密码md5值(32位小写) |
| cardId | 是 | string | 商品编码,话费固定值140101 |
| buyNum | 是 | string | 购买数量 |
| spOrderId | 是 | string | Sp商家的订单号,唯一 |
| orderTime | 是 | string | 订单时间(yyyyMMddHHmmss) |
| customerNo | 否 | string | 充值账号 |
| md5Str | 是 | string | 签名 |
| retUrl | 否 | string | 充值回调地址 |
| version | 是 | string | 固定值6.0 |
下单回调说明
- 当
retUrl不为空时,系统将在有结果时发送成功信息 - 回调参数:
ret_code(1成功/9撤销)、sporder_id、ordersuccesstime、err_msg - 提交方式:POST
实物接口
物流查询
v6.0http://api2.ofpay.com/queryExpressTrack
输入参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| userId | 是 | string | SP项目编码 |
| userPws | 是 | string | 项目密码md5值(32位小写) |
| spOrderId | 是 | string | 商家传给欧飞的唯一单号 |
| expressNo | 否 | string | 物流单号 |
| expressCompanyNo | 否 | string | 物流公司编号 |
| md5Str | 是 | string | 签名串 |
| version | 是 | string | 固定值6.0 |
实物下单
v6.0实物下单接口,与直充下单共用接口,需要额外传 receiveInfo 参数
http://api2.ofpay.com/newOnlineOrder.do
额外请求参数
| 名称 | 是否必须 | 类型 | 备注 |
|---|---|---|---|
| receiveInfo | 是 | string | 收件人信息(JSON,URLEncodeGBK编码) |
receiveInfo格式
{
"receiverName": "收件人姓名",
"receiverMobile": "收件人手机号",
"address": "详细地址(必须包含省市)"
}
实物下单回调说明
- 下单回调:系统请求
ret_code(1成功/9失败)、sporder_id、ordersuccesstime、err_msg - 发货回调:
orderType=PHYSICAL、expressNo、expressCompanyType、ret_code=2表示发货
错误码列表
| Code | Msg |
|---|---|
| 1 | 成功 |
| 1001 | 商户名验证错误 |
| 1002 | 商户IP验证错误 |
| 1003 | MD5串验证错误 |
| 1004 | 此商品暂不可用 |
| 1005 | 购买的商品数量超出系统要求 |
| 1006 | 充值金额超出系统限制 |
| 1007 | 账户金额不足 |
| 1008 | 缺少必需参数 |
| 1010 | 查询结果为空 |
| 12 | 库存不足 |
| 319 | 充值的手机号不正确 |
| 321 | 暂时不支持此类手机号的充值 |
| 331 | 订单生成失败 |
| 4001 | 支付异常 |
| 2015 | 对账接口维护 |
| 9998 | 参数格式错误 |
| 9999 | 未知错误(不能作失败处理,需要人工核实) |
接口地址
| 环境 | 地址 |
|---|---|
| 测试环境 | http://apitest.ofpay.com |
| 生产环境 | http://api2.ofpay.com (HTTP/HTTPS) |