API接口文档(全部通用)

 

=====================

码支付创建订单接口参数介绍

=====================

参数名

中文

范围

说明

 

id

 

 

码支付ID

 

无符号整数bigint类型

 

码支付注册所生成

 

 

key

 

 

通信密钥

 

字符串string 6-100位字符

 

不要传递sign加密用的

 

type

 

 

支付方式

 

整数int 1位 1,2,3

 

1:支付宝 2:QQ钱包 3:微信支付。默认值:1

 

 

act

 

版本类型

 

整数int 1位 1或0

 

即时到账和代收款。默认:即时到账

 

 

price

 

 

商品价格

 

浮点float 保留2位小数

 

最大值99999.99最小值0.01

 

pay_id

 

唯一标识

 

字符串string 不可留空

 

用户ID,订单ID,用户名确保是唯一

 

 

param

 

 

自定义参数

 

字符串string 可留空

 

原封返回 避免特殊字符

notify_url 异步通知地址 字符串string 100位字符 付款后POST通知。优先级最高 留空为系统设置中的通知地址可提高保密性

 

return_url

 

同步通知地址

 

字符串string 可留空

 

付款后用户跳转页面

 

token 创建订单令牌 字符串string 可留空 该值为明码传递 可方便快捷创建订单跟sign参数2选1

 

sign

 

 

数据MD5签名

 

字符串string 可留空

 

数据加密md5(a=1&b=2&c=3替换密钥)将需要构造的参数按首字母排序并拼接成url参数 如首字母相同则依次比对下一个字母

此参数跟token参数2选1如果看不懂可传递token参数

 

call

 

 

回调函数

 

字符串string 可留空

 

js回调的函数名

参考值:callback

 

chart

 

 

编码

 

字符串string 可留空

 

utf-8或gb2312默认utf-8

 

page

 

付款页面方式

 

 

整数int 1位 1,2,3,4

 

展示付款页面不同的方式

4:返回JSON 3:需传入call值为callback时返回JS函数

 

style

 

 

页面风格

 

整数int 1位 1,2,3,4....

 

暂不支持后期开放

 

outTime

 

 

二维码超时(秒)

 

整数int 6位

 

二维码超时设置(秒) 默认值360

 

pay_type

 

授权支付宝官方接口

 

整数0或1 默认为0

 

1为启用支付宝官方接口

(无需辅助 即时到账 自动生成二维码 授权后生效)

 

 

qrcode_url

 

二维码控制

 

字符串string 可留空

 

默认是云端上传的二维码 自行实现则传该值 如:qrcode.php 会传回参数type=1&money=1&tag=0根据money值可展示本地二维码

 

以上参数请留意红色标识部分 其他部分根据需求添加。

 

以上参数包含了配置文件参数。

 

 

 

创建订单接口地址:

http://api5.codeqrs.com/creat_order/

 

https协议创建订单:

https://api.codeqrs.com/creat_order/

 

如使用支付宝付款 创建订单为admin用户充值100元:

 

下面是快速创建订单示例 可方便快捷创建订单 但安全性低于MD5签名数据

http://api2.codeqrs.com/creat_order?id=10041&token=888888&&price=100&pay_id=admin&type=1

详细介绍快捷集成文档:https://codepay.fateqq.com/apiword/ByG0W5cqe.html

 

 

MD5签名数据创建订单必须参数名:

id  type  price  pay_id  sign

PHP MD5签名数据创建订单代码示例

<?php
$codepay_id="这里改成您的码支付ID";//这里改成码支付ID
$codepay_key="这里改成您的码支付密钥"; //这是您的通讯密钥

$data = array(
    "id" => $codepay_id,//你的码支付ID
    "pay_id" => "admin", //唯一标识 可以是用户ID,用户名,session_id(),订单ID,ip 付款后返回
    "type" => 1,//1支付宝支付 3微信支付 2QQ钱包
    "price" => 100,//金额100元
    "param" => "",//自定义参数
    "notify_url"=>"",//通知地址
    "return_url"=>"http://codepay.fateqq.com/",//跳转地址
); //构造需要传递的参数

ksort($data); //重新排序$data数组
reset($data); //内部指针指向数组中的第一个元素

$sign = ''; //初始化需要签名的字符为空
$urls = ''; //初始化URL参数为空

foreach ($data AS $key => $val) { //遍历需要传递的参数
    if ($val == ''||$key == 'sign') continue; //跳过这些不参数签名
    if ($sign != '') { //后面追加&拼接URL
        $sign .= "&";
        $urls .= "&";
    }
    $sign .= "$key=$val"; //拼接为url参数形式
    $urls .= "$key=" . urlencode($val); //拼接为url参数形式并URL编码参数值

}
$query = $urls . '&sign=' . md5($sign .$codepay_key); //创建订单所需的参数
$url = "http://api5.codeqrs.com/creat_order/?{$query}"; //支付页面

header("Location:{$url}"); //跳转到支付页面

注意任何情况下不要把通信密钥key参数明码传递出来

 

 

=====================

创建订单返回参数

=====================

 

参数名 中文 范围 说明

 

status

 

状态

 

 

整数2位 有负数

 

0:成功 -1:失败 -2:参数有误

 

 

money

 

 

金额

 

浮点float保留2位小数

 

实际付款金额

 

price

 

 

原价

 

浮点float保留2位小数

 

提交订单的原价

 

type

 

 

支付类型

 

整数int 1位 1,2,3

 

1:支付宝 2:QQ钱包 3:微信支付。默认值:1

 

tag

 

 

支付备注

 

整数int 3位

 

非支付宝无视。默认为:0

 

msg

 

 

信息

 

字符串string

 

 

返回的错误信息为英文

 

order_id

 

 

云端订单ID

 

字符串string 50位

 

默认0或不返回

 

serverTime

 

 

云端时间戳

 

整数int 11位

 

准确核对订单超时

 

endTime

 

 

订单过期时间戳

 

整数int 11位

 

超过此时间订单将过期

 

notiry_key

 

 

同步通知秘钥

 

字符串string 50位

 

用于同步通知 原封返给云端

 

qrcode

 

 

二维码地址

 

字符串string

 

展示在网页用于扫码支付

,软件版需自己在云端上传

 

 

支付宝创建100元订单成功后的返回示例 page参数为4时返回JSON:

 

{
    "msg": "ok",
    "qrcode": "//codepay.fateqq.com/qr/1/3/100/0.png",
    "status": 0,
    "chart": "utf-8",
    "order_id": 888888888,
    "pay_id": "admin",
    "type": 1,
    "price": "100.00",
    "money": "100.00",
    "userID": 1,
    "notiry_key":"codepay_notiry_key", 
    "tag": 0,
    "serverTime": 1481453112,
    "endTime": 1481453412
}

 

 

以上云端返回的数据请原封发送到云端通知服务器即可实现付款同步通知。

接口中已经实现了该功能 如有改动请保留该功能的实现。

 

 

 

=====================================================

付款通知接口参数表(用于处理业务)

=====================================================

 

 

 

参数名

中文

范围

说明

 

pay_id

 

 

用户标识

 

 

字符串string 100位

 

提交的付款人的唯一标识

 

 

money

 

 

付款金额

 

浮点float保留2位小数

 

实际付款金额

 

 

price

 

 

订单原价

 

浮点float保留2位小数

 

订单提交的金额

 

 

type

 

 

支付方式

 

整数int 1位 1,2,3

 

1:支付宝 2:QQ钱包 3:微信支付。默认值:1

 

pay_no

 

 

流水号

 

字符串string 50位

 

付款后生成的唯一流水号

 

param

 

 

自定义参数

 

字符串string 100位

 

原封返回提交什么返回什么

 

pay_time

 

 

付款时间

 

整数int 10位

 

付款的时间戳

 

pay_tag

 

 

付款备注

 

整数int 3位

 

支付宝才有其他均为默认值0

 

sign

 

数据签名

 

字符串string 32位

 

验证订单是否为合法

 

 

 

通知返回的参数示例如下:

chart=utf-8&money=100.00&pay_id=admin&pay_no=20170217200040022100010042408995&pay_time=1487597795&status=2&tag=0&type=1&sign=c47f3cba123456b6b24542110a8928af

 

PHP通知验证:

<?php
ksort($_POST); //排序post参数
reset($_POST); //内部指针指向数组中的第一个元素
$codepay_key="这里改成您的码支付密钥"; //这是您的密钥
$sign = '';//初始化
foreach ($_POST AS $key => $val) { //遍历POST参数
    if ($val == '' || $key == 'sign') continue; //跳过这些不签名
    if ($sign) $sign .= '&'; //第一个字符串签名不加& 其他加&连接起来参数
    $sign .= "$key=$val"; //拼接为url参数形式
}
if (!$_POST['pay_no'] || md5($sign . $codepay_key) != $_POST['sign']) { //不合法的数据
    exit('fail');  //返回失败 继续补单
} else { //合法的数据
    //业务处理
    $pay_id = $_POST['pay_id']; //需要充值的ID 或订单号 或用户名
    $money = (float)$_POST['money']; //实际付款金额
    $price = (float)$_POST['price']; //订单的原价
    $param = $_POST['param']; //自定义参数
    $pay_no = $_POST['pay_no']; //流水号
    exit('success'); //返回成功 不要删除哦
}

 

业务处理完成返回:success

业务处理失败还需要下次继续通知返回:fail

 

注意:您一定要验证是否有pay_no参数值,因为只有该值才是付款成功

请先登录
登录