user) { return $this->location('home'); } } # 列表页 public function lists() { # 记录列表页渠道pv、uv数 if (Dever::project('source')) { Dever::load('source/lib/core')->save($this->user['id'], 'list', $this->source); } $where['cate_id'] = $this->cate; $where['buy'] = 1; $data = Dever::db('journal/info')->getAll($where); if ($data) { foreach ($data as $k => $v) { if ($v['cash'] > 0) { $data[$k]['price'] = '¥' . number_format($v['cash'], 2); } else { $data[$k]['price'] = '免费'; } $data[$k]['ding'] = '销量:' . $v['num_ding']; $data[$k]['pay_url'] = $this->url('pay', array('id' => $v['id'])); } } return $data; } # 列表页 我已购买的兑换码 public function lists_code() { $where['create_uid'] = $this->user['id']; $where['type'] = 3; $data = Dever::db('journal/order')->getAll($where); if ($data) { foreach ($data as $k => $v) { $info = Dever::db('journal/info')->one($v['product_id']); $data[$k]['code_string'] = '阅读码:' . $v['code']; $data[$k]['name'] = $info['name']; } } return $data; } # 详细信息 public function info() { $id = Dever::input('id'); # 记录购买页渠道pv、uv数 if (Dever::project('source')) { Dever::load('source/lib/core')->save($this->user['id'], 'buy', $this->source, array('journal_id' => $id)); } $info = Dever::db('journal/info')->one($id); $info['buy'] = '正在购买《' . $info['name'] . '》'; $buy = Dever::db('journal/buy')->one(array('id' => $id)); if ($buy) { $info['buy_desc'] = $buy['buy_content']; } else { $info['buy_desc'] = ''; } return $info; } # 生成二维码 public function code() { $id = Dever::input('id'); $type = 4; $uid = $this->user['id']; $scene = $uid . ',' . $type . ',' . $id; $path = Dever::config('base')->applet_index; $send['project'] = Dever::input('project', 1); $send['send'] = $scene; $send['width'] = 152; $send['path'] = $path; $code = Dever::load('wechat_applet/code.get', $send); return $code; } # 小刊购买成功 public function success() { $config = Dever::db('main/config')->one(1); $id = Dever::input('id'); $config['list'] = $this->url('list'); $config['buy'] = $this->url('pay', array('id' => $id)); return $config; } # 小刊购买 public function buy() { $id = Dever::input('id'); $data = Dever::db('journal/buy_num')->getAll(array('info_id' => $id)); $info = Dever::db('journal/info')->one($id); if ($data) { foreach ($data as $k => $v) { if ($v['price'] > 0) { $data[$k]['price'] = '¥' . number_format($v['price'], 2); } elseif ($info['cash'] > 0) { $data[$k]['price'] = '¥' . number_format($info['cash'] * $v['num'], 2); } else { $data[$k]['price'] = '免费'; } if (!$v['name']) { $data[$k]['name'] = '购买' . $v['num'] . '本'; } $data[$k]['cate'] = $info['cate_id']; $data[$k]['pay_url'] = $this->url('buy.pay', array('buy_id' => $v['id'], 'journal_id' => $v['info_id'])); } } return $data; } # 小刊购买 public function pay() { $uid = $this->user['id']; $buy_id = Dever::input('buy_id'); $journal_id = Dever::input('journal_id'); if (!$buy_id) { Dever::alert('请传入正确的支付ID'); } if (!$journal_id) { Dever::alert('请传入正确的小刊ID'); } $info = Dever::db('journal/info')->one($journal_id); $buy = Dever::db('journal/buy_num')->one($buy_id); if (!$buy || !$info) { Dever::alert('请传入正确的小刊ID'); } if (!$buy['name']) { $buy['name'] = '购买' . $buy['num'] . '本'; } $user = Dever::db('passport/user')->one($uid); $wechat = Dever::db('passport/wechat')->one(array('uid' => $uid, 'type' => 2)); $order_id = $this->createOrder('JP'); $order_data['order_id'] = $order_id; $order_data['product_id'] = $journal_id; $order_data['buy_id'] = $buy_id; $order_data['uid'] = $uid; $order_data['type'] = 1; $order_data['status'] = 1; $order_data['name'] = $info['name'] . '-' . $buy['name']; //$order_data['num'] = Dever::input('num', 1); $order_data['num'] = $buy['num']; if (isset($buy['price']) && $buy['price'] && $buy['price'] > 0) { $order_data['cash'] = $buy['price']; } else { $order_data['cash'] = $info['cash'] * $order_data['num']; } $order_data['system'] = 2; if ($this->source) { $order_data['source'] = $this->source; } if ($this->seller) { $order_data['seller_id'] = $this->seller; } if ($this->type == 2) { # 购买兑换码 $order_data['type'] = 3; } $id = Dever::db('journal/order')->insert($order_data); if (!$id) { Dever::alert('支付失败'); } //$param参数 $refer = $this->url('success', array('id' => $journal_id, 'buy' => $buy_id)); $param = array ( 'account_id' => 2, 'project_id' => 1, 'uid' => $uid, 'username' => $user['username'], 'name' => $order_data['name'], 'cash' => $order_data['cash'], //'cash' => '0.01', 'openid' => $wechat['openid'], 'product_id' => $journal_id . '-' . $buy_id, 'order_id' => $order_id, 'refer' => $refer ); return Dever::load('pay/api.page', $param); } }