public function readOrder_byID($id) { $ordermodel = new Order_model(); $query = $this->db->get_where('orders', array('id' => $id)); if ($query->num_rows !== 1) { throw new Exception("ordermodel ID {$id} not found in database"); } $rows = $query->result(); $row = $rows[0]; $ordermodel->load($row); return $ordermodel; }
public function pay_success($sn, $money, $note = '') { list($a, $id, $uid, $module, $order) = explode('-', $sn); if (!$id || !$uid) { return NULL; } // 查询支付记录 $tid = (int) substr((string) $uid, -1, 1); $data = $this->db->where('id', $id)->limit(1)->get('member_paylog_' . $tid)->row_array(); if (!$data) { return NULL; } if ($data['status']) { return $data['module']; } $money = $money > 0 ? $money : $data['value']; // 标示支付订单成功 $this->db->where('id', $id)->update('member_paylog_' . $tid, array('status' => 1, 'note' => $note)); // 更新会员表金额 $this->db->where('uid', $uid)->set('money', 'money+' . $money, FALSE)->update('member'); // 订单直接付款 if ($data['module']) { require_once FCPATH . $data['module'] . '/models/Order_model.php'; $order = new Order_model(); $order->payname = $this->db->dbprefix('member_paylog_' . $tid); $order->tablename = $this->db->dbprefix(SITE_ID . '_' . $data['module'] . '_order'); $order->order_success($data['order'], 1, $data['module']); $this->add_for_buy($money, $data['order'], $data['module']); } // 支付成功挂钩点 $this->hooks->call_hook('pay_success', $data); return $data['module']; }