帝国异步支付系统,同时完美兼容帝国本身支付功能。彻底解决帝国支付掉单问题。
支付扩展说明
- EapiExtendFpay.php 为该扩展的核心文件
- pay目录为支付平台扩展,扩展一个平台一般只需实现支付跳转(redirect)与异步验证(notify)两个方法即可。
- 默认支付平台集成了虎皮椒支付(FpayXunhu.php)官网:https://www.xunhupay.com/
使用此类需要在数据库中新建一个订单表 [!db.pre!]fpay_order用来存储相关订单,若你想继续将订单信息保存到[!db.pre!]enewspayrecord表中,可以在订单完成后自行写入对应数据。
创建订单表
在后台的执行SQL创建
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for [!db.pre!]fpay_order
-- ----------------------------
DROP TABLE IF EXISTS ` [!db.pre!]fpay_order`;
CREATE TABLE `[!db.pre!]fpay_order` (
`orderid` bigint(18) unsigned NOT NULL DEFAULT '0',
`ctime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '订单时间',
`ptime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '支付时间',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '订单状态 0:未支付 1:已支付',
`price` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '金额',
`type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0:积分 1:余额 2:充值类型 3:商城支付 4:游客支付',
`uid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '会员uid',
`payid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '支付平台id',
`tid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '充值卡类型id',
`description` varchar(100) NOT NULL DEFAULT '' COMMENT '订单描述',
`ip` varchar(20) NOT NULL DEFAULT '' COMMENT '订单ip',
PRIMARY KEY (`orderid`),
KEY `uid` (`uid`) USING BTREE,
KEY `status` (`status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
load
功能:加载支付平台
参数:
- $name 支付平台名称 如 FpayXunhu.php填写xunhu即可
- $conf 支付配置,根据实际平台填写。类型为数组
- $cache 是否采用单例模式 默认为 true
示例:
$fpay = $api->extend('fpay'); // 加载支付扩展
$conf = [
'appId' => '',
'appSecret' => ''
]; // 支付平台配置
$payplatform = $fpay->load('xunhu' , $conf); // 加载支付平台
// ... 其它一系列操作
buildOrderid
功能:生成一个订单号,精确到微秒。
createOrder
功能:创建一个订单
示例:
$fpay = $api->extend('fpay'); // 加载支付扩展
$order = $fpay->createOrder([
'price' => 100, // 金额
'uid' => 1, // 用户id
'description' => '充值100元',
'payid' => 1, // 支付平台ID
// ... 其它配置
]);
if(false === $order){
var_dump($fpay->getError()); // 创建失败,打印错误信息
}else{
var_dump($order); // 成功,打印订单信息
}
参数:
- $conf 订单配置,请根据订单表字段按需传入
getOrder
功能:获取一个订单
参数:
- $orderid 订单号
completeOrder
功能:完成一个订单,会自动根据订单类型完成对应的充值操作。
参数:
- $orderid 订单号
complete_fen_order
功能:完成一个积分订单
参数:
- $order 订单信息,通过getOrder获取的结果
complete_money_order
功能:完成一个现金订单
参数:
- $order 订单信息,通过getOrder获取的结果
complete_buygroup_order
功能:完成一个充值类型订单
参数:
- $order 订单信息,通过getOrder获取的结果
complete_shop_order
功能:完成一个商城订单
参数:
- $order 订单信息,通过getOrder获取的结果
complete_other_order
功能:完成一个自定义订单
参数:
- $order 订单信息,通过getOrder获取的结果,tid表示要充值的积分
getOrderType
功能:将帝国默认的订单类型转换成数字
参数:
- $name 订单类型名称
getOrderList
功能:获取订单列表
参数:
- $data 查询条件数组。支持 uid(用户ID) starttime(开始时间)endtime(结束时间) status(订单状态)payid(支付类型)
- $pagination 翻页配置。默认为 20,1
- $orderby 排序方式。默认为 orderid desc
getError
功能:获取错误信息