set_adapter($adapter_name, $adapter_config); } /** * 构造适配器 * @param $adapter_name 支付模块code * @param $adapter_config 支付模块配置 */ public function set_adapter($adapter_name, $adapter_config = array()) { if (!is_string($adapter_name)) return false; else { $class_name = ucwords($adapter_name); pc_base::load_app_class($class_name,'','0'); $this->adapter_instance = new $class_name($adapter_config); } return $this->adapter_instance; } public function __call($method_name, $method_args) { if (method_exists($this, $method_name)) return call_user_func_array(array(& $this, $method_name), $method_args); elseif ( !empty($this->adapter_instance) && ($this->adapter_instance instanceof paymentabstract) && method_exists($this->adapter_instance, $method_name) ) return call_user_func_array(array(& $this->adapter_instance, $method_name), $method_args); } } ?>db = pc_base::load_model('pay_payment_model'); $this->modules_path = $modules_path; } /** * 获取支付类型列表 */ public function get_list() { $list = $this->get_payment(); $install = $this->get_intallpayment(); if(is_array($list)) { foreach ($list as $code => $payment ) { if (isset($install[$code])) { $install[$code]['pay_desc'] = $list[$code]['pay_desc']; unset($list[$code]); } } } $all = @array_merge($install, $list); return array('data' => $all, array( 'all' => count($all), 'install' => count($install) ) ); } /** * 获取插件目录信息 * @param unknown_type $code */ public function get_payment( $code = '') { $modules = $this->read_payment($this->modules_path.DIRECTORY_SEPARATOR.'classes'); foreach($modules as $payment) { if ( empty($code) || $payment['code']) { $config = array(); foreach ($payment['config'] as $conf) { $name = $conf['name']; $conf['name'] = L($name); if ($conf['type'] == 'select') { $conf['range'] = L($name.'_range'); } $config[$name] = $conf; } } $payment_info[$payment['code']] = array( "pay_id" => 0, "pay_code" => $payment['code'], "pay_name" => $payment['name'], "pay_desc" => $payment['desc'], "pay_fee" => '0', "config" => $config, "is_cod" => $payment['is_cod'], "is_online" => $payment['is_online'], "enabled" => '0', "sort_order" => "", "author" => $payment['author'], "website" => $payment['website'], "version" => $payment['version'] ); } if (empty($code)) { return $payment_info; } else { return $payment_info[$code]; } } /** * 取得数据库中的支付列表 * @param $code */ public function get_intallpayment($code = '') { if (empty($code)) { $intallpayment = array(); $result = $this->db->select(); foreach($result as $r) { $r['pay_code'] = ucwords($r['pay_code']); $intallpayment[$r['pay_code']] = $r; } return $intallpayment; } else { return $this->db->get_one(array('pay_code'=>ucwords($code))); } } /** * 读取插件目录中插件列表 * @param unknown_type $directory */ public function read_payment($directory = ".") { $dir = @opendir($directory); $set_modules = true; $modules = array(); while (($file = @readdir($dir))!== false) { if ( preg_match( "/^[A-Z]{1}.*?\\.class.php\$/", $file ) ) { include_once( $directory.DIRECTORY_SEPARATOR.$file ); } } @closedir($dir); foreach ($modules as $key => $value ) { asort($modules[$key] ); } asort( $modules ); return $modules; } } ?>$username, 'userid'=>$userid,'money'=>$value, 'trade_sn'=>$trade_sn, 'pay_type'=>$pay_type, 'payment'=>$payment, 'status'=>$status, 'type'=>1, 'adminnote'=>$op_username, 'usernote'=>$note)); } /** * 添加点数入账记录 * 添加点数入账记录操作放放 * @param integer $value 入账金额 * @param integer $userid 用户ID * @param string $username 用户名 * @param integer $trade_sn 操作订单ID,默认为自动生成 * @param string $pay_type 入账类型 (可选值 offline 线下充值,recharge 在线充值,selfincome 自助获取) * @param string $payment 入账方式 (如后台充值,支付宝,银行汇款/转账等此处为自定义) * @param string $status 入账状态 (可选值 succ 默认,入账成功,failed 入账失败) * @param string $op_username 管理员信息 */ public static function point($value, $userid = '' , $username = '', $trade_sn = '', $pay_type = '', $payment = '', $op_username = '', $status = 'succ', $note = '') { return self::_add(array('username'=>$username, 'userid'=>$userid,'money'=>$value, 'trade_sn'=>$trade_sn, 'pay_type'=>$pay_type, 'payment'=>$payment, 'status'=>$status, 'type'=>2, 'adminnote'=>$op_username, 'usernote'=>$note)); } /** * 添加入账记录 * @param array $data 添加入账记录参数 */ private static function _add($data) { $data['money'] = isset($data['money']) && floatval($data['money']) ? floatval($data['money']) : 0; $data['userid'] = isset($data['userid']) && intval($data['userid']) ? intval($data['userid']) : 0; $data['username'] = isset($data['username']) ? trim($data['username']) : ''; $data['trade_sn'] = (isset($data['trade_sn']) && $data['trade_sn']) ? trim($data['trade_sn']) : create_sn(); $data['pay_type'] = isset($data['pay_type']) ? trim($data['pay_type']) : 'selfincome'; $data['payment'] = isset($data['payment']) ? trim($data['payment']) : ''; $data['adminnote'] = isset($data['op_username']) ? trim($data['op_username']) : ''; $data['usernote'] = isset($data['usernote']) ? trim($data['usernote']) : ''; $data['status'] = isset($data['status']) ? trim($data['status']) : 'succ'; $data['type'] = isset($data['type']) && intval($data['type']) ? intval($data['type']) : 0; $data['addtime'] = SYS_TIME; $data['ip'] = ip(); //检察消费类型 if (!in_array($data['type'], array(1,2))) { return false; } //检查入账类型 if (!in_array($data['pay_type'], array('offline','recharge','selfincome'))) { return false; } //检查入账状态 if (!in_array($data['status'], array('succ','error','failed'))) { return false; } //检查消费描述 if (empty($data['payment'])) { return false; } //检查消费金额 if (empty($data['money'])) { return false; } //检查userid和username并偿试再次的获取 if (empty($data['userid']) || empty($data['username'])) { if (defined('IN_ADMIN')) { return false; } elseif (!$data['userid'] = param::get_cookie('_userid') || !$data['username'] = param::get_cookie('_username')) { return false; } else { return false; } } //检查op_userid和op_username并偿试再次的获取 if (defined('IN_ADMIN') && empty($data['adminnote'])) { $data['adminnote'] = param::get_cookie('admin_username'); } //数据库连接 if (empty(self::$db)) { self::connect(); } $member_db = pc_base::load_model('member_model'); $sql = array(); if ($data['type'] == 1) {//金钱方式充值 $sql = array('amount'=>"+=".$data['money']); } elseif ($data['type'] == 2) { //积分方式充值 $sql = array('point'=>'+='.$data['money']); } else { return false; } //进入数据库操作 $insertid = self::$db->insert($data,true); if($insertid && $data['status'] == 'succ') { return $member_db->update($sql, array('userid'=>$data['userid'], 'username'=>$data['username'])) ? true : false; } else { return false; } } }2f39db58739ded.jpeg" width="100" height="75" alt="解密时速600公里磁浮|工程样车明年下线">

解密时速600公里磁浮|工程样车明年下线

  • 未来的智能楼宇是什么样的?这家企业已

    未来的智能楼宇是什么样的?这家企业已

  • 深访对话2019幸福荧光跑领跑嘉宾

    深访对话2019幸福荧光跑领跑嘉宾

  • 媒体:麻将机等新型祭品有辱清明节本意

    媒体:麻将机等新型祭品有辱清明节本意

  • 小编精选

    相关推荐
    新闻聚焦
    猜你喜欢
    热门推荐
    • 时代中国:千亿路上的债务隐忧

        时代中国控股董事会主席、行政总裁岑钊雄 文/乐居财经研究院 魏薇 曾在2018年提出千亿目标的时代中国,已在冲刺路上走了......

      05-15    来源:未知

      分享
    • 浩沙健身陷入闭店漩涡 或与浩沙国际"闪

        行业分析人士认为或许与去年浩沙国际闪崩有关 国内最早的连锁健身品牌浩沙健身目前在北京出现多家闭店情况。昨天,北......

      06-06    来源:未知

      分享
    • 防总部署长江防汛:以防御98年量级大洪水

        原标题:国家防总检查长江流域防汛抗旱工作:坚持科学防控中新网4月5日电据水利部网站消息,日前,国家防总秘书......

      06-14    来源:新浪新闻

      分享
    • 2019互联网趋势报告完整版

        原标题:昂山素季邀王毅访缅传递哪些信号?应缅甸外交部长昂山素季邀请,中国外长王毅5日开始对缅甸进行为期两......

      06-18    来源:新浪新闻

      分享
    • 新疆莎车煤矿事故已致5人遇难 仍有5人被

        原标题:新疆莎车县天利煤矿冒顶事故已致5人遇难仍有5人被困新华社乌鲁木齐4月5日电(记者刘兵)经过当地救援力......

      04-05    来源:新浪新闻

      分享
    • 洪秀柱表态:“国共论坛”不会从此不办

        原标题:洪秀柱表态:“国共论坛”不会从此不办中国台湾网4月5日讯国民党主席洪秀柱5日表示,“国共论坛”不会......

      04-05    来源:新浪新闻

      分享
    • 解密时速600公里磁浮|工程样车明年下线

        5月23日,我国时速600公里高速磁浮试验样车在青岛下线,这是参观人员在样车上参观(5月23日摄)。 新华社 资料图 5月23日,......

      06-06    来源:未知

      分享
    • 辽宁劳动者可享受终身职业培训

        原标题:辽宁省劳动者可享终身职业培训来源:辽宁日报4月4日,记者从省人社厅获悉,《2016年全省职业能力建设工......

      04-05    来源:新浪新闻

      分享
    • 广东出现超强厄尔尼诺 多地或现50年一遇

        原标题:广东今年三防形势严峻韶关等多地或现50年一遇洪水中新社广州4月5日电(记者唐贵江)记者5日从广东省防总获......

      04-05    来源:新浪新闻

      分享
    • 江苏盐城遭遇特大暴雨龙卷风 一幼儿园受

        6月23日15时前后,江苏省盐城市阜宁、射阳等地出现强雷电、短时强降雨、冰雹、雷雨大风等强对流天气,局地遭龙卷风袭击......

      06-24    来源:中新网

      分享
    返回列表
    Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。