对接文档

创建订单接口

请求地址:(下单网关):https://api.payflowshub.com/api/gateway

请求方式:GET|POST 请求参数:

说明 参数 类型 是否必填 签名 描述 示例值
商户配置 user_id string 平台分配的商户ID 200000
sign_type string 商户生成签名字符串所使用的签名算法类型,目前支持MD5 MD5
notify_url string 服务器异步回调地址 https://www.baidui.com
return_url string 页面同步跳转地址 https://www.baidui.com
接口公共参数 method string 接口名称 topay
sign string 商户请求参数的签名串,详见签名 详见示例
订单必传参数 order_id string 商户平台唯一订单号 2023072011ywqrMDN3gLmw
order_amount string 下单金额1.00精确两位数 0.02
pay_type string 选择的支付方式 支付方式标识,例:aliscan
自动获取参数 client_ip string 客户端的ip地址 1.83.1.74
client_system string 发起支付客户端的设备类型(pc,android,ios) pc
订单可选参数 order_name string 下单的商品名称 orderQuery
remarks string 订单备注,此字段按照原样返回 测试
return_type string 返回类型 json或html,默认为json json
php请求示例:
use vhpay\lib\TradeServer;
 
include_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lib/TradeServer.php';
 
//获取配置
$config include_once "./config.php";
$server new TradeServer($config);
 
//订单必传参数
$input['order_id'] = uniqid();          //订单id
$input['order_amount'] = "1.0";         //下单金额,单位元
$input['pay_type'] = "aliscan";         //支付方式
 
//程序获取参数
$input['client_ip'] = $server->ip();
$input['client_system'] = $server->browser();
 
//接口名称,请阅读开发文档
$input['method'] = 'topay';
 
//配置参数
$input['user_id'] = $server->config['user_id'];
$input['notify_url'] = strtolower($server->config['notify_url']);      //服务器异步回调地址
$input['return_url'] = strtolower($server->config['return_url']);     //页面同步跳转地址
//设置需要签名的参数
$server->signRule = ['order_id''order_amount''pay_type''notify_url''return_url'];
$input['sign'] = $server->setSign($input$server->config['token']);
$input['sign_type'] = $server->config['sign_type'];
 
echo $server->unifiedOrder($input);
签名字符串参考例子
notify_url=http://XXXXXX/users/testNotify&order_amount=2000&order_id=1686992740623&pay_type=zfbklhb&return_url=http://XXXXXXX/users/testNotify&key=XXXX

签名 大写!!

http请求示例:
https://api.payflowshub.com/api/gateway?method=topay&order_id=5f19097bb032f&order_amount=1.0&pay_type=aliscan&user_id
=200000&notify_url=https://test.xvpay.cn/vhscan/notify.php&return_url=https://test.xvpay.cn&client_ip=127.0.0.1&client_system=pc&sign=ACADEB2D7B050CB9C5503E354AA0A85D
json响应参数:

提示:支付方式为支付宝App(pay_type=aliapp)支付时,只会放回json数据,返回qrcode_url返回值为App中请求支付orderInfo参数

参数 类型 描述 示例值
code string 网关返回状态码:10000为成功,20000为失败 10000
msg string 网关返回描述;SUCCESS:响应成功 SUCCESS
pay_type string 订单的支付方式 支付方式标识,例:aliscan
trade_no string CobraPay支付订单号 2023072011PjnZrBK41w9y
total_amount string 交易金额 0.02
qrcode_url string 支付二维码地址 https://api.payflowshub.com/uploads/0e4d0755c8858ae580795e7fa4e715eb.png
url string 支付页面地址 https://api.payflowshub.com/tmp/0e4d0755c8858ae580795e7fa4e715eb.html
pay_url string 支付页面地址 https://api.payflowshub.com/tmp/0e4d0755c8858ae580795e7fa4e715eb.html
create_time string 订单创建时间 2023-01-21 15:54:08
trade_status string 订单支付状态, WAIT:等待支付 WAIT

订单金额校对,以total_amount为准!!!

{
    code: 10000,
    msg: "SUCCESS",
    pay_type: "aliscan",
    trade_no: "2023072309qQgQY5gVlgKr",
    buyer_pay_amount: "1.00",
    total_amount: "1.00",
    qrcode_url: "https://api.payflowshub.com/uploads/bd5ec298c28ea6ed6e50c47f38ae4560.png",
    url: "https://api.payflowshub.com/tmp/bd5ec298c28ea6ed6e50c47f38ae4560.html",
    pay_url: "https://api.payflowshub.com/tmp/bd5ec298c28ea6ed6e50c47f38ae4560.html",
    create_time: "2023-07-23 09:28:24",
    trade_status: "WAIT"
}
异常响应:
{
    code: 20000,
    msg: "订单创建失败"
}

异步通知响应

响应参数:
参数 类型 描述 示例值 签名
user_id string 码商id 200000
trade_no string CobraPay订单号 2023072011PjnZrBK41w9y
order_id string 商家订单号 123
buyer_pay_amount string 买家付款的金额 0.02
order_amount string 交易金额 0.02
pay_type string 订单的支付方式 aliscan
success_time string 订单支付成功时间 2023-01-21 15:54:08
account_id string 码商收款账户id 5
trade_status string 订单支付状态, WAIT:等待支付;SUCCESS:支付成功;FAIL:支付失败 SUCCESS
return_url string 网站跳转地址 https://www.baidu.com
notify_url string 回调网址 https://www.baidu.com
sign string 签名(详见签名说明) B56C9DC23141595839B31D015460010A

订单金额校对,以order_amount为准!!!

响应示例:
{ 
    'user_id' : '200000',
    'trade_no' : '2023080416GR1gORnjyKw8',
    'order_id' : '123213',
    'buyer_pay_amount' : '100.00',
    'order_amount' : '100.00',
    'pay_type' : 'aliscan',
    'success_time' : '1596530254',
    'trade_status' : 'SUCCESS',
    'account_id' : '5',
    'return_url' : 'https://www.baidu.com',
    'notify_url' : 'https://www.baidu.com',
    'sign' : '53F9F816D478D324E7F19BC5C78EA8ED',
}

验签说明 接口中返回的notify_url,order_id,order_amount,return_url,pay_type 将这5个参数按字典序排序参数,详见签名说明

签名字符串参考

notify_url=http://XXX/users/testNotify&order_amount=2000.00&order_id=1686992113220&pay_type=zfbklhb&return_url=http://XXXX/users/testNotify&key=XXXX

注意: 验签成功后 请返回 success; 避免系统重复发送异步通知。异步通知接口示例如下

$arr $_POST;
//TODO 1、进行签名验证
$config include_once "./config.php";
$server new TradeServer($config);
//设置支付接口需要签名的参数
$server->signRule = ['order_id''order_amount''pay_type''notify_url''return_url'];
$arr['notify_url'] = $config['notify_url'];
$result $server->checkSign($arr$config);
if($result){
    if($arr['trade_status'] == 'SUCCESS') {
        //TODO 2、处理业务逻辑
        //判断该笔订单是否在商户网站中已经做过处理
        //如果没有做过处理,根据订单号(trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        //请务必判断请求时的order_amount与通知时获取的total_amount为一致的
        //如果有做过处理,不执行商户的业务程序
        //TODO 3、告知上游支付,异同消息接收成功
        echo "SUCCESS";  //请不要修改或删除
    }
}

签名说明

采用商户的token进行签名和验签;

//签名步骤一:按字典序排序参数
ksort($data);
$string $this->toUrlParams($data);
//签名步骤二:在string后加入商户token
$string $string "&key=" . $token;
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);

 public function toUrlParams($data)
    {
        $buff "";
        foreach ($data as $k => $v) {
            if (in_array($k$this->signRule)) {
                $buff .= $k "=" . $v "&";
            }
        }
        $buff trim($buff"&");
        return $buff;
    }

订单查询接口

请求地址:https://api.payflowshub.com/api/gateway 请求方式:GET|POST

请求参数:
参数 类型 是否必填 签名 描述 示例值
user_id string 平台分配的商户ID 200000
type String type=0平台订单号 type =1 商户订单号 0
trade_no string 平台唯一订单号 2023072011ywqrMDN3gLmw
method string 接口名称 orderQuery
sign string 签名(详见签名说明)。只是为了保证user_id和token一致,接口返回数据不需要验签 B56C9DC23141595839B31D015460010A
响应参数:
参数 类型 描述 示例值
code string 网关返回状态码:10000为成功,20000为失败 10000
msg string 网关返回描述;SUCCESS:响应成功 SUCCESS
trade_no string 平台订单号 2023072011PjnZrBK41w9y
order_id string 商户订单号 6073eb9220047
order_amount string 提交金额 0.02
buyer_pay_amount string 交易金额 0.02
create_time string 订单创建时间 2023-01-21 15:54:08
success_time string 订单支付成功时间,未成功不返回 2023-01-21 15:54:08
pay_type string 订单的支付方式 wgpay
trade_status string 订单支付状态, WAIT:等待支付;SUCCESS:支付成功;FAIL:支付失败 SUCCESS
响应示例:
{
	"code": 10000,
	"msg": "SUCCESS",
	"trade_no": "2023072311ywqwwzxWZlv7",
	"order_id": "6073eb9220047",
	"buyer_pay_amount": "1.00",
	"order_amount": "1.00",
	"create_time": "2023-07-23 11:13:11",
	"pay_type": "wgpay",
	"trade_status": "WAIT"
}
异常响应:
{
	"code": 20000,
	"msg": "订单不存在"
}

API 提现功能

创建提现订单

请求地址:(下单网关):https://api.payflowshub.com/api/drawing

请求方式:GET|POST

请求参数:

说明 参数 类型 是否必填 签名 描述 示例值
商户配置 user_id string 平台分配的商户ID 200000
notify_url string 服务器异步回调地址 https://www.baidui.com
sign string 商户请求参数的签名串,详见签名 详见示例
订单必传参数 apiorder_id string 商户提现订单号 2023072011ywqrMDN3gLmw
money string 下单金额1.00精确两位数 如500.02
bank_name string 银行名称 如中国银行、如支付宝出款,填写支付宝
bank_user_name string 收款人名称 如张三
card_number string 银行卡号/支付宝号 9999
bank_account string 出款源 银行卡出款 bank 、支付宝出款填zfb
order_remarks string 提现订单备注 如无,填空
phone string 手机号 如无,填空
请求参数示例:
{
    "user_id": "300001",
    "apiorder_id": "apitx_1711607471494",
    "bank_name": "支付宝",
    "bank_user_name": "李四",
    "card_number": "9990990",
    "money": "5000.00",
    "notify_url": "http://www.test.com/users/testNotify",
    "order_remarks": "",
    "bank_account": "zfb",
    "phone":"889977654",
    "sign": "E354F6D0D724AF8F55410C8FA22BBBFF"
}

封签字符串参考:

apiorder_id=apitx_1711607471494&bank_account=zfb&bank_name=支付宝&bank_user_name=李四&card_number=9990990&money=5000.00&notify_url=http://www.test.com/users/testNotify&order_remarks=&phone=889977654&user_id=300012&key=XXXXXXXXXXX

签名 大写!!

json响应参数:

提示:支付方式为支付宝App(pay_type=aliapp)支付时,只会放回json数据,返回qrcode_url返回值为App中请求支付orderInfo参数

参数 类型 描述 示例值
code string 网关返回状态码:1为成功 0为失败 1 成功 0 失败
message string 网关返回描述;SUCCESS:响应成功 SUCCESS
orderId string 提现订单号 如,daifu16849479355pYn
service string 提现手续费 如5.00
{
	"code": 1,
	"message": "提现订单创建成功",
	"data": {
		"orderId": "daifu16849479355pYn",
		"service": "5.00"
	}
}
异常响应:
{
	"code": 0,
	"message": "签名错误",
}

提现订单异步通知响应

参数:
参数 类型 描述 示例值 签名
user_id string 商户用户id 200000
apiorder_id string 商户平台提现订单 2023072011PjnZrBK41w9y
oredr_df string 系统提现订单号 2023072011PjnZrBK41w9y
money string 提现金额 500.00
service string 手续费 5.00
remarks string 提现备注 提现订单已处理
success_time string 提现处理时间 2023-01-21 15:54:08
status string 提现状态 1 未处理,2,提现成功,3.提现失败
bank_name string 银行名称 中国银行
bank_user_name string 收款人姓名 张三
card_number string 银行卡号 9999999
sign string 签名(详见签名说明) B56C9DC23141595839B31D015460010A
响应示例:
{ 
    'user_id' : '200000',
    'apiorder_id' : '2023080416GR1gORnjyKw8',
    'oredr_df' : '123213',
    'money' : '100.00',
    'service' : '5.00',
    'remarks' : '提现订单已处理',
    'success_time' : '2023-01-21 15:54:08',
    'status' : '2,
    'bank_name' : '中国银行',
    'bank_user_name' : '张三',
    'card_number' : '9999999999',
    'sign' : '53F9F816D478D324E7F19BC5C78EA8ED',
}

请返回 success; 避免系统重复发送异步通知。异步通知接口示例如下

api提现订单查询接口

请求地址:https://api.payflowshub.com/api/drawingOrderStatus
请求方式:GET|POST

请求参数:
参数 类型 是否必填 签名 描述 示例值
user_id string 平台分配的商户ID 200000
apiorder_id String 商户提现订单号, 0
sign string 签名(详见签名说明)。只是为了保证user_id和token一致,接口返回数据不需要验签 B56C9DC23141595839B31D015460010A
响应参数:
参数 类型 描述 示例值
code string 网关返回状态码:1为成功,0为失败 1
message string 查询成功 查询成功
apiorder_id string 商户提现订单号 2023072011PjnZrBK41w9y
status string 1 未处理 2,提现成功 3 提现失败 2
create_time string 提交金额 2023-05-25 01:37:37
compelte_time string 处理时间 2023-05-25 01:37:37
money string 提现金额 500.00
desc string 备注 5.00
service string 提现手续费 测试备注
响应示例:
{
	"code": 1,
	"message": "查询成功",
	"data": {
		"apiorder_id": "apitx_1684949842550",
		"status": 2,
		"create_time": "2023-05-25 01:37:22",
		"compelte_time": "2023-05-25 01:37:37",
		"money": "900.00",
		"desc": "测试金额",
		"service": "5.00"
	}
}

api 商户余额查询

请求地址:https://api.payflowshub.com/api/getUserBalance
请求方式:GET|POST

请求参数:
参数 类型 是否必填 签名 描述 示例值
user_id string 平台分配的商户ID 200000
sign string 签名(详见签名说明)。只是为了保证user_id和token一致,接口返回数据不需要验签 B56C9DC23141595839B31D015460010A
响应参数:
参数 类型 描述 示例值
code string 网关返回状态码:1为成功,0为失败 1
message string 查询成功 查询成功
balance string 商户余额 5706.36
freezeBalance string 商户冻结余额 "17623.00"
响应示例:
{
	"code": 1,
	"message": "查询成功",
	"data": {
		"balance": "5706.36",
		"freezeBalance": "17623.00"
	}
}