/** * 领取优惠券 * */ public function pull() { if ($this->isAjax()) { $this->_check_login(); $c_id = intval($_REQUEST['c_id']); $c_id or die('id invalid.'); $ccModel = D('TaoCoupon'); $detail = $ccModel->info($c_id); $detail or die('id invalid.'); if ($detail['is_active'] == 0) { $this->ajaxReturn('', '该优惠券已下架,请选择商家其他的优惠券', 0); } $localTimeObj = LocalTime::getInstance(); $nowtime = $localTimeObj->gmtime(); $today = $localTimeObj->local_strtotime(date('Y-m-d 23:59:59')); //是否过期 if ($detail['expiry_type'] == 1 && $detail['expiry'] < $today) { $this->ajaxReturn('', '该优惠券已过期,请选择商家其他的优惠券', 0); } //剩余数量 /* if($detail['fetched_amount'] >= $detail['amount']){ $this->ajaxReturn('', '该优惠券已发放完毕,请选择其他的优惠券', 0); } */ //领取限制 $ccrModel = M('TaoCouponRecords'); //每个账户一张 if ($detail['data']['fetch_limit'] == 101) { if ($ccrModel->field('id')->where("c_id='{$c_id}' AND user_id='" . $this->_user['user_id'] . "'")->find()) { $this->ajaxReturn('', '您已领取过该优惠券,请选择其他的优惠券', 0); } } else { if ($detail['data']['fetch_limit'] == 102) { $b_time = $localTimeObj->local_strtotime(date('Y-m-d 00:00:00')); $e_time = $today; $where = "c_id='{$c_id}' AND user_id='" . $this->_user['user_id'] . "'"; $where .= " AND fetch_time>='{$b_time}' AND fetch_time<='{$e_time}'"; if ($ccrModel->field('id')->where($where)->find()) { $this->ajaxReturn('', '您今天已领取过该优惠券,请选择其他的优惠券', 0); } } } //付费情况 if ($detail['price_type'] != 1) { $userModel = D('User'); $user = $userModel->info($this->_user['user_id'], array('money', 'credit')); //付费 if ($detail['price_type'] == 2) { if ($user['money'] < $detail['price']) { $this->ajaxReturn('', '您的账户金额不足,请先到帐号中心充值再来购买。请点击<a href="' . reUrl('Payment/pay') . '" target="_blank">在线充值</a>', 0); } $spend = Consume::spend($this->_user['user_id'], $detail['price'], Consume::TYPE_MONEY); } else { if ($detail['price_type'] == 3) { if ($user['credit'] < $detail['price']) { $this->ajaxReturn('', '您的账户积分不足,请选择其他的优惠券', 0); } $spend = Consume::spend($this->_user['user_id'], $detail['price'], Consume::TYPE_CREDIT); } } if ($spend !== 1) { $this->ajaxReturn('', '支付失败,请重试', 0); } } $data = array('c_id' => $c_id, 'user_id' => $this->_user['user_id'], 'nick' => $this->_user['nick'], 'fetch_time' => $nowtime); $result = $ccrModel->add($data); if ($result) { $ccmService = service('TaoShop'); $shop = $ccmService->info($detail['s_id']); //更新领取数量 $ccModel->update($c_id, array('fetched_amount' => $detail['fetched_amount'] + 1)); //更新昨日、今日、本周、本月等领取数量 $yestoday = $nowtime - 24 * 3600; $ccdModel = D('TaoCouponData'); $r = $ccdModel->info($c_id, array('yesterdayfetched', 'dayfetched', 'weekfetched', 'monthfetched', 'updatetime')); $yesterdayfetched = date('Ymd', $r['updatetime']) == date('Ymd', $yestoday) ? $r['dayfetched'] : $r['yesterdayfetched']; $dayfetched = date('Ymd', $r['updatetime']) == date('Ymd', $nowtime) ? $r['dayfetched'] + 1 : 1; $weekfetched = date('YW', $r['updatetime']) == date('YW', $nowtime) ? $r['weekfetched'] + 1 : 1; $monthfetched = date('Ym', $r['updatetime']) == date('Ym', $nowtime) ? $r['monthfetched'] + 1 : 1; $data = array('yesterdayfetched' => $yesterdayfetched, 'dayfetched' => $dayfetched, 'weekfetched' => $weekfetched, 'monthfetched' => $monthfetched, 'updatetime' => $nowtime); $ccdModel->update($c_id, $data); //发表一条微博 if ($this->_CFG['sina_wb_open'] && $_SESSION['sina']['token']['access_token'] || $this->_CFG['qq_open'] && $_SESSION['qq']["access_token"]) { $title = ''; if ($detail['title']) { $title .= $detail['title']; } else { $title .= $detail['s_title']; if ($detail['c_type'] == 1) { $title .= '满' . $detail['money_max'] . '减' . $detail['money_reduce'] . '元优惠券'; } else { $title .= $detail['money_amount'] . '元代金券'; } } $url = 'http://' . $_SERVER['HTTP_HOST'] . reUrl('Tao/show?id=' . $c_id); $pic_path = tao_shop_logo($shop['pic_path']); $text = '我刚刚在#' . $this->_CFG['site_name'] . '#领取了一张【' . $title . '】,数量有限,抢完为止,一般人我不告诉!' . $url; if ($this->_CFG['sina_wb_open'] && $_SESSION['sina']['token']['access_token']) { include_once DOC_ROOT_PATH . 'Addons/plugins/login/sina.class.php'; $sina = new sina(); $sina->upload($text, $pic_path); } else { if ($this->_CFG['qq_open'] && $_SESSION['qq']["access_token"]) { include_once DOC_ROOT_PATH . 'Addons/plugins/login/qq.class.php'; $qq = new qq(); //发送微博 $qq->add_t($text); //发送空间分享 $title = '我刚刚在' . $this->_CFG['site_name'] . '领取了一张【' . $title . '】,数量有限,抢完为止,一般人我不告诉!'; $site = $_SERVER['HTTP_HOST']; $qq->add_share($title, $url, $site, $pic_path); } } } if ($detail['data']['fetch_link']) { $coupon_url = $detail['data']['fetch_link']; } else { $coupon_url = 'http://ecrm.taobao.com/shopbonusapply/buyer_apply.htm?activity_id=' . $detail['data']['activity_id'] . '&seller_id=' . $detail['data']['seller_id']; } $data = array('shop_click_url' => $shop['shop_click_url'], 'coupon_url' => $coupon_url); $this->ajaxReturn($data, '领取成功', 1); } else { $this->ajaxReturn('', '领取失败', 0); } } }
<?php if (array_key_exists('recipeURL', $_POST)) { require_once '../consume.php'; $consume = new Consume(); $gotAllRequirements = array(); $recipes = $consume->parseRecipeFromURL($_POST['recipeURL']); foreach ($recipes as $i => $recipe) { $requires = $recipe->getRequires(); $good = true; foreach ($requires as $type => $fields) { foreach ($fields as $field) { if (!array_key_exists('field' . $field['name'], $_POST)) { $good = false; } } } $gotAllRequirements[$i] = $good; } session_start(); } //generate a list of available recipies $basePath = pathinfo($_SERVER['REQUEST_URI']); $basePath = ($_SERVER['HTTPS'] ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $basePath['dirname']; $recipies = array(); $stylesheets = array(); if ($handle = opendir('../recipes/')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $info = pathinfo("../recipes/{$file}"); switch ($info['extension']) {
/** * 确认完成 * */ public function finish() { if ($this->isAjax()) { $id = intval($_REQUEST['id']); $record = M('payment')->where("id='{$id}'")->find(); if ($record['status'] == 104) { $this->ajaxReturn('', '该交易已完成', 0); } //记录日志 Consume::increase($record['user_id'], $record['amount'], Consume::TYPE_MONEY); M('payment')->where("id='{$id}'")->save(array('status' => 104)); $this->ajaxReturn('', '操作成功', 1); } }
protected function setValue($newValue) { //Check that newValue matches each assertion $failedAssertions = false; foreach ($this->assertions as $assertion) { if (preg_match($assertion, $newValue) <= 0) { $failedAssertions = true; Consume::error('Failed Assertion: ' . $assertion, 'setValue', 'Variable', __LINE__); return; } } //Run any transformations foreach ($this->transformations as $pattern => $replacement) { $newValue = preg_replace($pattern, $replacement, $newValue); } if (is_array($this->value)) { $this->value[] = $newValue; } else { if ($this->value === null) { $this->value = $newValue; } else { $this->value = array($this->value, $newValue); } } }
public function uc_updatecredit() { $time = $_GET['time']; if (time() - $time > 10) { exit; } $auth = $_GET['auth']; $uid = intval($_GET['uid']); $credit = intval($_GET['credit']); $amount = intval($_GET['amount']); if (!$uid || !$credit || empty($auth) || !$amount || md5($uid . $credit . $amount . $time . C('AUTH')) != $auth) { return; } $increase = Consume::increase($uid, $amount, Consume::TYPE_CREDIT); }
private function _pay_notify_alipay_warrant() { import('@.Com.payment.PaymentFactory'); $payment = PaymentFactory::getPayment('AlipayWarrant'); $result = $payment->verifyNotify(); if ($result !== false) { $result['trade_status'] = trim($result['trade_status']); if ($result['trade_status'] == 'WAIT_BUYER_PAY' || $result['trade_status'] == 'WAIT_SELLER_SEND_GOODS' || $result['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS' || $result['trade_status'] == 'TRADE_FINISHED') { $record = M('payment')->where("out_trade_no='{$result['out_trade_no']}'")->find(); if ($record['status'] == 104) { exit('success'); } if ($record && $record['amount'] == $result['total_fee']) { $status = 102; //等待买家付款 if ($result['trade_status'] == 'WAIT_BUYER_PAY') { $status = 103; } else { if ($result['trade_status'] == 'WAIT_SELLER_SEND_GOODS') { //自动发货 $response = $payment->send_goods(array('trade_no' => $result['trade_no'])); if ($response) { $status = 105; } else { $status = 102; } } else { if ($result['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') { $status = 105; } else { if ($result['trade_status'] == 'TRADE_FINISHED') { if ($record && $record['amount'] == $result['total_fee']) { //记录日志 Consume::increase($record['user_id'], $result['total_fee'], Consume::TYPE_MONEY); $status = 104; } else { $status = $record['status']; } } } } } M('payment')->where("out_trade_no='{$result['out_trade_no']}'")->save(array('status' => $status, 'trade_no' => $result['trade_no'])); exit('success'); } else { exit('fail'); } } else { exit('fail'); } } else { exit('fail'); } }
/** * 领取优惠券 * */ public function pull() { if ($this->isAjax()) { $this->_check_login(); $localTimeObj = LocalTime::getInstance(); $nowtime = $localTimeObj->gmtime(); $today = $localTimeObj->local_strtotime(date('Y-m-d 23:59:59')); $cccModel = D('CouponCodeCodes'); $ip = get_client_ip(); //同一IP领取数量限制 $begin_time = $localTimeObj->local_strtotime(date('Y-m-d 00:00:00')); if ($this->_CFG['ip_fetch_limit'] && $cccModel->where("fetch_time>='{$begin_time}' AND fetch_time<='{$today}' AND ip='{$ip}'")->count() >= intval($this->_CFG['ip_fetch_limit'])) { $this->ajaxReturn('', '您今天领取的优惠券数量已超过限制,请明天再来', 0); } $c_id = intval($_REQUEST['c_id']); $c_id or die('id invalid.'); $ccModel = D('CouponCode'); $detail = $ccModel->info($c_id); $detail or die('id invalid.'); if ($detail['is_active'] == 0) { $this->ajaxReturn('', '该优惠券已下架,请选择商家其他的优惠券', 0); } //是否过期 if ($detail['expiry_type'] == 1 && $detail['expiry'] < $today) { $this->ajaxReturn('', '该优惠券已过期,请选择商家其他的优惠券', 0); } //剩余数量 if ($detail['fetched_amount'] >= $detail['amount']) { $this->ajaxReturn('', '该优惠券已发放完毕,请选择其他的优惠券', 0); } //领取帐号限制 if ($detail['data']['fetch_account_limit'] != 200 && intval($_SESSION['login_type']) != $detail['data']['fetch_account_limit']) { $fetch_account_limit_conf = CouponCodeConf::fetch_account_limit_conf(); $this->ajaxReturn('', $fetch_account_limit_conf[$detail['data']['fetch_account_limit']], 0); } //领取数量限制 //每个账户一张 if ($detail['data']['fetch_limit'] == 101) { if ($cccModel->getOneByUid($this->_user['user_id'], $c_id)) { $this->ajaxReturn('', '您已领取过该优惠券,请选择其他的优惠券', 0); } } else { if ($detail['data']['fetch_limit'] == 102) { $b_time = $localTimeObj->local_strtotime(date('Y-m-d 00:00:00')); $e_time = $today; $params = array('b_time' => $b_time, 'e_time' => $e_time); if ($cccModel->getOneByUid($this->_user['user_id'], $c_id, $params)) { $this->ajaxReturn('', '您今天已领取过该优惠券,请选择其他的优惠券', 0); } } } //付费情况 if ($detail['price_type'] != 1) { $userModel = D('User'); $user = $userModel->info($this->_user['user_id'], array('money', 'credit')); //付费 if ($detail['price_type'] == 2) { if ($user['money'] < $detail['price']) { $this->ajaxReturn('', '您的账户金额不足,请先到帐号中心充值再来购买。请点击<a href="' . reUrl('Payment/pay') . '" target="_blank">在线充值</a>', 0); } $spend = Consume::spend($this->_user['user_id'], $detail['price'], Consume::TYPE_MONEY); } else { if ($detail['price_type'] == 3) { if ($user['credit'] < $detail['price']) { $this->ajaxReturn('', '您的账户积分不足,请选择其他的优惠券', 0); } $spend = Consume::spend($this->_user['user_id'], $detail['price'], Consume::TYPE_CREDIT); } } if ($spend !== 1) { $this->ajaxReturn('', '支付失败,请重试', 0); } } $code = $cccModel->pull($c_id, $this->_user['user_id'], $this->_user['nick'], $nowtime, $ip); if ($code) { //更新领取数量 $ccModel->update($c_id, array('fetched_amount' => $detail['fetched_amount'] + 1)); //更新昨日、今日、本周、本月等领取数量 $yestoday = $nowtime - 24 * 3600; $ccdModel = D('CouponCodeData'); $r = $ccdModel->info($c_id, array('yesterdayfetched', 'dayfetched', 'weekfetched', 'monthfetched', 'updatetime')); $yesterdayfetched = date('Ymd', $r['updatetime']) == date('Ymd', $yestoday) ? $r['dayfetched'] : $r['yesterdayfetched']; $dayfetched = date('Ymd', $r['updatetime']) == date('Ymd', $nowtime) ? $r['dayfetched'] + 1 : 1; $weekfetched = date('YW', $r['updatetime']) == date('YW', $nowtime) ? $r['weekfetched'] + 1 : 1; $monthfetched = date('Ym', $r['updatetime']) == date('Ym', $nowtime) ? $r['monthfetched'] + 1 : 1; $data = array('yesterdayfetched' => $yesterdayfetched, 'dayfetched' => $dayfetched, 'weekfetched' => $weekfetched, 'monthfetched' => $monthfetched, 'updatetime' => $nowtime); $ccdModel->update($c_id, $data); //发表一条微博 if ($this->_CFG['sina_wb_open'] && $_SESSION['sina']['token']['access_token'] || $this->_CFG['qq_open'] && $_SESSION['qq']["access_token"]) { $ccmService = service('CouponCodeMall'); $mall = $ccmService->info($detail['m_id']); $title = ''; if ($detail['title']) { $title .= $detail['title']; } else { $title .= $mall['name']; if ($detail['c_type'] == 1) { $title .= '满' . $detail['money_max'] . '减' . $detail['money_reduce'] . '元优惠券'; } else { $title .= $detail['money_amount'] . '元代金券'; } } $url = 'http://' . $_SERVER['HTTP_HOST'] . reUrl('Code/view?id=' . $c_id); $pic_path = 'http://' . $_SERVER['HTTP_HOST'] . FixedUploadedFileUrl($mall['figure_image']); $text = '我刚刚在#' . $this->_CFG['site_name'] . '#领取了一张【' . $title . '】,数量有限,抢完为止,一般人我不告诉!' . $url; if ($this->_CFG['sina_wb_open'] && $_SESSION['sina']['token']['access_token']) { include_once DOC_ROOT_PATH . 'Addons/plugins/login/sina.class.php'; $sina = new sina(); $sina->upload($text, $pic_path); } else { if ($this->_CFG['qq_open'] && $_SESSION['qq']["access_token"]) { include_once DOC_ROOT_PATH . 'Addons/plugins/login/qq.class.php'; $qq = new qq(); //发送微博 $qq->add_t($text); //发送空间分享 $title = '我刚刚在' . $this->_CFG['site_name'] . '领取了一张【' . $title . '】,数量有限,抢完为止,一般人我不告诉!'; $site = $_SERVER['HTTP_HOST']; $qq->add_share($title, $url, $site, $pic_path); } } } $this->ajaxReturn($code, '领取成功', 1); } else { $this->ajaxReturn('', '领取失败', 0); } } }