帝国异步支付系统,同时完美兼容帝国本身支付功能。彻底解决帝国支付掉单问题。

支付扩展说明

  • 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

功能:获取错误信息