Esempio n. 1
0
 public function pay()
 {
     $credit = I('get.credit', 0, 'intval');
     $json = array('error' => 0, 'message' => '', 'data' => '');
     do {
         if ($credit < 1 || $credit > 999999) {
             $user = M('user')->find($this->user_id);
             $data['body'] = "用户充值";
             $data['attach'] = "用户充值";
             $data['order_sn'] = get_order_sn('TP');
             $data['total_fee'] = $credit * 10;
             $data['time_start'] = date('YmdHis');
             $data['time_expire'] = date("YmdHis", time() + 600);
             $data['goods_tag'] = "WXG";
             // $openid = ;//session('openid')?session('openid'):cookie('openid');
             $data['openid'] = $user['openid'];
             $this->jsApiParameters = jsapipay($data, false);
             $json['data'] = json_decode($this->jsApiParameters);
             break;
         }
         #$this->error("红包状态不能支付", U('/notes'));
         $json['error'] = 1;
         $json['message'] = "红包状态不能支付";
         break;
     } while (false);
     echo json_encode($json);
     die;
 }
Esempio n. 2
0
 public function createOrder($options)
 {
     //检测手机号码格式
     $chkmobile = checkmobile($options['mobile']);
     if ($chkmobile !== 0) {
         return $chkmobile;
     }
     //var_dump($options);
     $userinfo = D('Member')->certificate($options['key']);
     if (!is_array($userinfo)) {
         return $userinfo;
     }
     //20002
     $orderModel = M('51_orders');
     //填充订单数据  status - 0: 进行中,1:已结束,2:已取消, 999:已删除
     $orderdata['orderid'] = get_order_sn();
     //订单号
     $orderdata['uid'] = $userinfo['uid'];
     $orderdata['status'] = 0;
     $orderdata['options'] = array2string($options);
     print_r(string2array($orderdata['options']));
     $result = $orderModel->create($orderdata);
 }
Esempio n. 3
0
 $orgCheckcode = GetCkVdValue();
 if ($checkcode != $orgCheckcode || empty($checkcode)) {
     echo 'nocheckcode';
     return;
 }
 $_SESSION['total_value'] = '';
 $tourer = Helper_Archive::getTourer($_POST);
 $needjifen = $usejifen ? Helper_Archive::getNeedJifen($jifentprice) : 0;
 $userinfo = $User->getInfoByMid($User->uid);
 //获取用户信息
 //这里再次判断用户积分是否满足条件.
 if ($userinfo['jifen'] < $needjifen) {
     $usejifen = 0;
     $needjifen = 0;
 }
 $ordersn = get_order_sn('08');
 //订单号
 $memberid = $User->uid ? $User->uid : 0;
 $row = getVisaInfo($productaid);
 $status = $paytype == 1 ? 1 : 0;
 $linktel = Helper_Archive::pregReplace($linktel, 2);
 $arr = array('ordersn' => $ordersn, 'webid' => $webid, 'typeid' => $typeid, 'productautoid' => $productautoid, 'productaid' => $row['aid'], 'productname' => $row['title'], 'price' => $row['price'], 'childprice' => 0, 'dingnum' => Helper_Archive::pregReplace($dingnum, 2), 'usedate' => $usedate, 'childnum' => 0, 'linkman' => Helper_Archive::pregReplace($linkman, 5), 'linktel' => Helper_Archive::pregReplace($linktel, 2), 'linkemail' => Helper_Archive::pregReplace($linkemail, 5), 'linkqq' => '', 'jifentprice' => $row['jifentprice'], 'jifenbook' => $row['jifenbook'], 'jifencomment' => $row['jifencomment'], 'addtime' => time(), 'memberid' => $memberid, 'dingjin' => Helper_Archive::pregReplace($dingjin, 5), 'paytype' => $paytype, 'usejifen' => $usejifen, 'needjifen' => $needjifen, 'status' => $status, 'remark' => Helper_Archive::pregReplace($remarkinfo, 5), 'tourer' => $tourer);
 if (Helper_Archive::addOrder($arr)) {
     $model = new CommonModule('#@__member_order');
     $orderid = $model->getField('id', "ordersn='{$ordersn}'");
     //判断是否开启在线支付
     if (!empty($choosepay) && $paytype != '3' && $choosepay != '6') {
         $url = $GLOBALS['cfg_basehost'] . '/visa/booking.php?dopost=payonline&id=' . $orderid . '&paytype=' . $choosepay;
     } else {
         //$url = "{$GLOBALS['cfg_basehost']}/visa/show_{$arr['productaid']}.html";
         $url = "{$GLOBALS['cfg_basehost']}/member/query.php?dopost=search&mobile={$linktel}";
Esempio n. 4
0
 $step = isset($_REQUEST['step']) && in_array($_REQUEST['step'], $step_list) ? $_REQUEST['step'] : 'user';
 /* 取得参数 order_id */
 $order_id = isset($_REQUEST['order_id']) ? intval($_REQUEST['order_id']) : 0;
 if ($order_id > 0) {
     $old_order = order_info($order_id);
 }
 /* 取得参数 step_act 添加还是编辑 */
 $step_act = isset($_REQUEST['step_act']) ? $_REQUEST['step_act'] : 'add';
 /* 插入订单信息 */
 if ('user' == $step) {
     /* 取得参数:user_id */
     $user_id = $_POST['anonymous'] == 1 ? 0 : intval($_POST['user']);
     /* 插入新订单,状态为无效 */
     $order = array('user_id' => $user_id, 'add_time' => gmtime(), 'order_status' => OS_INVALID, 'shipping_status' => SS_UNSHIPPED, 'pay_status' => PS_UNPAYED, 'from_ad' => 0, 'referer' => $_LANG['admin']);
     do {
         $order['order_sn'] = get_order_sn();
         if ($db->autoExecute($ecs->table('order_info'), $order, 'INSERT', '', 'SILENT')) {
             break;
         } else {
             if ($db->errno() != 1062) {
                 die($db->error());
             }
         }
     } while (true);
     // 防止订单号重复
     $order_id = $db->insert_id();
     /* todo 记录日志 */
     admin_log($order['order_sn'], 'add', 'order');
     /* 插入 pay_log */
     $sql = 'INSERT INTO ' . $ecs->table('pay_log') . " (order_id, order_amount, order_type, is_paid)" . " VALUES ('{$order_id}', 0, '" . PAY_ORDER . "', 0)";
     $db->query($sql);
Esempio n. 5
0
    {
        //推荐注册分成
        $parent_id = 0;
    }
    else
    {
        //分成功能关闭
        $parent_id = 0;
    }
    $order['parent_id'] = $parent_id;

    /* 插入订单表 */
    $error_no = 0;
    do
    {
        $order['order_sn'] = get_order_sn(); //获取新订单号
        $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');

        $error_no = $GLOBALS['db']->errno();

        if ($error_no > 0 && $error_no != 1062)
        {
            die($GLOBALS['db']->errorMsg());
        }
    }
    while ($error_no == 1062); //如果是订单号重复则重新提交数据

    $new_order_id = $db->insert_id();
    $order['order_id'] = $new_order_id;

    /* 插入订单商品 */
Esempio n. 6
0
function split_order($new_order_id)
{
    $sql = "select IF(g.supplier_id, g.supplier_id,0) AS supplier_id, og.rec_id, og.goods_number, og.goods_price from " . $GLOBALS['ecs']->table("order_goods") . " AS og left join " . $GLOBALS['ecs']->table("goods") . " AS g on og.goods_id=g.goods_id " . " where og.order_id = '{$new_order_id}' ";
    $res = $GLOBALS['db']->query($sql);
    $split_orders = array();
    $all_amount = 0;
    while ($row = $GLOBALS['db']->fetchRow($res)) {
        $split_orders[$row['supplier_id']]['goods_amount'] += $row['goods_number'] * $row['goods_price'];
        $split_orders[$row['supplier_id']]['goods_reclist'][] = $row['rec_id'];
        $split_orders[$row['supplier_id']]['order_sn'] = $split_orders[$row['supplier_id']]['order_sn'] ? $split_orders[$row['supplier_id']]['order_sn'] : get_order_sn();
        $split_orders[$row['supplier_id']]['shipping_fee'] = $GLOBALS['total']['supplier_shipping'][$row['supplier_id']]['shipping_fee'];
        $split_orders[$row['supplier_id']]['order_amount'] = $split_orders[$row['supplier_id']]['goods_amount'] + $split_orders[$row['supplier_id']]['shipping_fee'];
        $split_orders[$row['supplier_id']]['order_amount_formated'] = price_format($split_orders[$row['supplier_id']]['order_amount']);
        $all_amount += $split_orders[$row['supplier_id']]['order_amount'];
    }
    //下单来源
    $order_from = WEB_FROM;
    $count_split_orders = count($split_orders);
    foreach ($split_orders as $spkey => $split) {
        //获的返佣ID
        if ($spkey > 0) {
            $sql = "select rebate_id, rebate_paytime_start, rebate_paytime_end from " . $GLOBALS['ecs']->table('supplier_rebate') . " where supplier_id='{$spkey}' and is_pay_ok=0 order by rebate_id desc limit 0,1";
            $row = $GLOBALS['db']->getRow($sql);
            $nowtime = gmtime();
            if ($nowtime >= $row['rebate_paytime_start'] && $nowtime <= $row['rebate_paytime_end']) {
                $rebate_id = $row['rebate_id'];
            } else {
                $kkk = 'yes';
                while ($kkk == 'yes') {
                    insert_id_rebate($spkey);
                    $sql2 = "select rebate_id, rebate_paytime_start, rebate_paytime_end from " . $GLOBALS['ecs']->table('supplier_rebate') . " where supplier_id='{$spkey}' and is_pay_ok=0 order by rebate_id desc limit 0,1";
                    $row2 = $GLOBALS['db']->getRow($sql2);
                    if ($nowtime >= $row2['rebate_paytime_start'] && $nowtime <= $row2['rebate_paytime_end']) {
                        $rebate_id = $row2['rebate_id'];
                        $kkk = 'no';
                    }
                }
            }
        } else {
            $rebate_id = 0;
        }
        $order_sn = $split['order_sn'];
        if ($count_split_orders == 1) {
            $sql = "update " . $GLOBALS['ecs']->table('order_info') . " set order_sn='{$order_sn}', supplier_id='{$spkey}', parent_order_id='0', rebate_id='{$rebate_id}', froms='{$order_from}'   where order_id='{$new_order_id}' ";
            $GLOBALS['db']->query($sql);
        } else {
            $sql = "insert into " . $GLOBALS['ecs']->table('order_info') . "( " . " order_sn, user_id,\torder_status,\tshipping_status, pay_status, consignee, country,\tprovince,\tcity,\tdistrict, address, zipcode, tel,\tmobile\t, email, best_time\t,sign_building,\tpostscript,\tshipping_id,\tshipping_name,\t pay_id,\tpay_name,\thow_oos, how_surplus, pack_name,\tcard_name,\tcard_message,\tinv_payee,\tinv_content, goods_amount,\tshipping_fee,\tinsure_fee,\tpay_fee,\tpack_fee,\tcard_fee, money_paid,\tsurplus,\tintegral,\tintegral_money,\tbonus,\torder_amount,\tfrom_ad,\treferer,\tadd_time,\tconfirm_time,\tpay_time,\tshipping_time,\tpack_id,\tcard_id,\tbonus_id,\tinvoice_no,\textension_code,\textension_id,\tto_buyer,\tpay_note,\tagency_id,\tinv_type,\ttax,\tis_separate,\tparent_id,\tdiscount,\t supplier_id,\tparent_order_id, rebate_id, froms, pickup_point, is_pickup) " . "select '{$order_sn}', user_id,\torder_status,\tshipping_status, pay_status, consignee, country,\tprovince,\tcity,\tdistrict, address, zipcode, tel,\tmobile\t, email, best_time\t,sign_building,\tpostscript,\tshipping_id,\tshipping_name,\t pay_id,\tpay_name,\thow_oos, how_surplus, pack_name,\tcard_name,\tcard_message,\tinv_payee,\tinv_content\t, '" . $split['goods_amount'] . "',\t'" . $split['shipping_fee'] . "',\tinsure_fee,\tpay_fee,\tpack_fee,\tcard_fee,\tmoney_paid,\tsurplus,\tintegral,\tintegral_money,\tbonus,\t'" . $split['order_amount'] . "',\tfrom_ad,\treferer,\tadd_time,\tconfirm_time,\tpay_time,\tshipping_time,\tpack_id,\tcard_id,\tbonus_id,\tinvoice_no,\textension_code,\textension_id,\tto_buyer,\tpay_note,\tagency_id,\tinv_type,\ttax,\tis_separate,\tparent_id,\tdiscount,\t'{$spkey}',\t'{$new_order_id}', '{$rebate_id}', '{$order_from}', pickup_point, is_pickup from " . $GLOBALS['ecs']->table('order_info') . " where order_id= '{$new_order_id}' ";
            $GLOBALS['db']->query($sql);
            $order_id_new = $GLOBALS['db']->insert_id();
            foreach ($split['goods_reclist'] as $rec) {
                $sql = "update " . $GLOBALS['ecs']->table('order_goods') . " set order_id='{$order_id_new}' where rec_id='{$rec}' ";
                $GLOBALS['db']->query($sql);
            }
        }
    }
    if ($count_split_orders > 1) {
        $sql = "delete from " . $GLOBALS['ecs']->table('order_info') . " where order_id='{$new_order_id}' ";
        $GLOBALS['db']->query($sql);
    }
    $arr = array();
    $arr['suborder_list'] = $split_orders;
    $arr['all_amount'] = $all_amount;
    $arr['sub_order_count'] = $count_split_orders;
    return $arr;
}
Esempio n. 7
0
 $checkcode = $_POST['checkcode'];
 $orgCheckcode = GetCkVdValue();
 if ($checkcode != $orgCheckcode || empty($checkcode)) {
     echo 'nocheckcode';
     return;
 }
 $_SESSION['total_value'] = '';
 $needjifen = $usejifen ? Helper_Archive::getNeedJifen($jifentprice) : 0;
 $userinfo = $User->getInfoByMid($User->uid);
 //获取用户信息
 //这里再次判断用户积分是否满足条件.
 if ($userinfo['jifen'] < $needjifen) {
     $usejifen = 0;
     $needjifen = 0;
 }
 $ordersn = get_order_sn('05');
 //订单号
 $memberid = $User->uid ? $User->uid : 0;
 $info = getSpotInfo($productautoid);
 $ticketinfo = getTicketInfo($suitid);
 $status = $paytype == 1 ? 1 : 0;
 $total_store = intval($ticketinfo['number']);
 $total_dingnum = intval(Helper_Archive::pregReplace($dingnum, 2));
 if ($total_store != -1 && $total_store < $total_dingnum) {
     echo 'nonumber';
     exit;
 }
 $linktel = Helper_Archive::pregReplace($linktel, 2);
 $arr = array('ordersn' => $ordersn, 'webid' => $webid, 'typeid' => $typeid, 'productautoid' => $productautoid, 'productaid' => $productaid, 'productname' => $productname, 'price' => $ticketinfo['ourprice'], 'childprice' => 0, 'dingnum' => Helper_Archive::pregReplace($dingnum, 2), 'usedate' => $usedate, 'childnum' => $childnum, 'linkman' => Helper_Archive::pregReplace($linkman, 5), 'linktel' => Helper_Archive::pregReplace($linktel, 2), 'linkemail' => Helper_Archive::pregReplace($linkemail, 5), 'linkqq' => '', 'jifentprice' => $ticketinfo['jifentprice'], 'jifenbook' => $ticketinfo['jifenbook'], 'jifencomment' => $ticketinfo['jifencomment'], 'addtime' => time(), 'memberid' => $memberid, 'dingjin' => $dingjin, 'suitid' => $suitid, 'paytype' => $paytype, 'usejifen' => $usejifen, 'needjifen' => $needjifen, 'status' => $status, 'haschild' => 0, 'pid' => 0, 'remark' => Helper_Archive::pregReplace($remarkinfo, 5));
 if (Helper_Archive::addOrder($arr)) {
     $model = new CommonModule('#@__member_order');
Esempio n. 8
0
 function sendhongbao()
 {
     header("Content-type:text/html;charset=utf-8");
     $order_list = M('zhaopian_order')->where(array('state' => 2, 'is_send_zhaopian' => 0))->select();
     foreach ($order_list as $order) {
         $hongbao_send = M('zhaopian_pay')->where(array('id' => $order['send_id']))->find();
         $hongbao_user = M('user')->find($order['zhaopian_user_id']);
         $order_user = M('user')->find($order['user_id']);
         if (!$hongbao_send) {
             //                $bao = array(
             //                    'mch_billno' =>get_order_sn(),
             //                    'send_name' => '红包照片',
             //                    're_openid' =>$order['zhaopian_openid'],
             //                    'total_amount' => floor($order['amount'] * 0.98 * 100),
             //                    'wishing' => '恭喜您!你发布的照片有朋友购买了。',
             //                    'act_name'=> '红包照片',
             //                    'remark' => '红包照片',
             //                );
             $bao = array('partner_trade_no' => get_order_sn(), 're_user_name' => $hongbao_user['name'], 'openid' => $order['zhaopian_openid'], 'amount' => floor($order['amount'] * 0.98 * 100), 'desc' => "好消息!“{$order_user['name']}”刚刚购买了您的私货照片。");
             $send = $bao;
             $send['user_id'] = $order['zhaopian_user_id'];
             $send['addtime'] = time();
             $send['order_id'] = $order['id'];
             $send['zhaopian_id'] = $order['zhaopian_id'];
             $hongbao_id = M('zhaopian_pay')->add($send);
             if ($hongbao_id) {
                 M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('send_id' => $hongbao_id, 'send_sn' => $bao['partner_trade_no'], 'send_time' => time()));
                 $hongbao_send = M('zhaopian_pay')->find($hongbao_id);
             }
         }
         // 发送红包
         if ($hongbao_send) {
             if ($hongbao_send['state'] == 2) {
                 continue;
             }
             //                $bao = array(
             //                    'mch_billno' =>$hongbao_send['mch_billno'],
             //                    'send_name' => '红包照片',
             //                    're_openid' =>$order['zhaopian_openid'],
             //                    'total_amount' => floor($order['amount'] * 0.98 * 100),
             //                    'wishing' => '恭喜您!你发布的照片有朋友购买了。',
             //                    'act_name'=> '红包照片',
             //                    'remark' => '红包照片',
             //                );
             $bao = array('partner_trade_no' => $hongbao_send['partner_trade_no'], 're_user_name' => $hongbao_send['re_user_name'], 'openid' => $order['zhaopian_openid'], 'amount' => floor($order['amount'] * 0.98 * 100), 'desc' => "好消息!“{$order_user['name']}”刚刚购买了您的私货照片。");
             $data = sendPay($bao);
             if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                 M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('is_send_zhaopian' => 1));
                 M('zhaopian_pay')->where(array("id='{$hongbao_send['id']}'"))->save(array('state' => 2, 'payment_no' => $data['payment_no']));
                 $log = "发送红包成功, 红包编号:{$order['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/zhaopian.log');
                 echo $log . "<br/>";
             } else {
                 echo "amount:" . $order['amount'];
                 print_r($data);
                 $log = "发送红包失败, 红包编号:{$order['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/zhaopian.log');
                 echo $log . "<br/>";
             }
             sleep(5);
         }
     }
     die('ok');
 }
Esempio n. 9
0
 public function Queryorder($transaction_id)
 {
     $input = new WxPayOrderQuery();
     $input->SetTransaction_id($transaction_id);
     $result = WxPayApi::orderQuery($input);
     Log::DEBUG("query:" . json_encode($result));
     if (array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         f_log(http_build_query($result), dirname(__FILE__) . '/wzlog.log');
         $result['addtime'] = time();
         $id = M('pay_log')->add($result);
         // 更改order 状态
         // 更改 hongbao状态
         $result['out_trade_no'];
         $order = M('zhaopian_order')->where("order_sn='{$result['out_trade_no']}'")->find();
         $user = M('user')->find($order['user_id']);
         if ($order) {
             // 重复操作
             if ($order['state'] > 1) {
                 return true;
             }
             $order_data = array('pay_id' => $id, 'pay_time' => time(), 'transaction_id' => $result['transaction_id'], 'state' => 2);
             M('zhaopian_order')->where("id='{$order['id']}'")->save($order_data);
             $zhaopian = M('zhaopian')->where("id='{$order['hongbao_id']}'")->find();
             if ($zhaopian) {
                 $data = array('update_time' => time(), 'total_num' => $zhaopian['total_num'] + 1, 'total_amount' => $zhaopian['total_amount'] + $order['amount']);
                 // 自动发送红包
                 if (true) {
                     $bao = array('mch_billno' => get_order_sn('wz'), 'send_name' => '红包照片', 're_openid' => $zhaopian['openid'], 'total_amount' => floor($order['amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在照片刚刚"' . $user['name'] . '"购买了', 'act_name' => '红包照片', 'remark' => '红包照片');
                     $send = $bao;
                     $send['user_id'] = $zhaopian['user_id'];
                     $send['addtime'] = time();
                     $hongbao_id = M('zhaopian_send')->add($send);
                     if ($hongbao_id) {
                         M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('send_id' => $hongbao_id, 'send_sn' => $bao['mch_billno'], 'send_time' => time()));
                         $data = sendHongBao($bao);
                         if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                             M('zhaopian_order')->where(array("id='{$order['id']}'"))->save(array('is_send_zhaopian' => 1));
                             M('zhaopian_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 2, 'send_listid' => $data['send_listid']));
                             $user_amount = number_format($order['amount'] * 0.98, 2);
                             $msg = "你发布的照片有朋友购买了!\n\n照片标题:{$zhaopian['remark']}\n\n支付金额:¥{$order['amount']}元\n\n好友购买照片钱已经通过微信红包打给你,其中已扣除2%微信支付手续费,扣除后金额为{$user_amount}元";
                             \Wechat\Wxapi::send_wxmsg($zhaopian['openid'], '红包照片状态提醒', U('/zhao/zhaopian/detail', array('id' => $zhaopian['number_no']), true, true), $msg);
                         } else {
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 3));
                             $user_amount = number_format($order['amount'] * 0.98, 2);
                             $msg = "你发布的照片有朋友购买了!\n\n照片标题:{$zhaopian['remark']}\n\n支付金额:¥{$order['amount']}元\n\n红包将会在1~3个工作内,通过微信红包打给你,\n其中已扣除2%的微信支付手续费,扣除后金额为{$user_amount}元。\n因为微信支付到我们的账户需要1~3个工作日,我们\n的账户预存垫付的现金不足,暂时不能实时转账,希望\n理解。资金安全请你放心,如果有疑问请联系客服。";
                             \Wechat\Wxapi::send_wxmsg($zhaopian['openid'], '红包照片状态提醒', U('/zhao/zhaopian/detail', array('id' => $zhaopian['number_no']), true, true), $msg);
                             $sys_openid = "obb1AuA79tIJ-BGY7HA38FXAJwoc";
                             $msg = "重要提示! 红包发送异常!!! 可能余额不足,或支付金额异常,支付金额:{$user_amount},请及时处理.";
                             \Wechat\Wxapi::send_wxmsg($sys_openid, '红包照片状态提醒', "http://{$_SERVER['HTTP_HOST']}", $msg);
                         }
                     }
                 }
             }
         }
         return true;
     }
     return false;
 }
Esempio n. 10
0
 }
 $udate = explode("|", $udate);
 $dnum = explode("|", $dnum);
 $dprice = explode('|', $dprice);
 $memberid = $User->uid ? $User->uid : 0;
 $status = $paytype == 1 ? 1 : 0;
 //$roominfo = getRoomInfo($suitid);
 $ordersn = get_order_sn('02');
 $linktel = Helper_Archive::pregReplace($linktel, 2);
 $arr = array('ordersn' => $ordersn, 'webid' => 0, 'typeid' => $typeid, 'productautoid' => $productautoid, 'productaid' => $productaid, 'productname' => $productname, 'childprice' => 0, 'childnum' => $childnum, 'linkman' => Helper_Archive::pregReplace($linkman, 5), 'linktel' => Helper_Archive::pregReplace($linktel, 2), 'linkemail' => Helper_Archive::pregReplace($linkemail, 5), 'linkqq' => '', 'jifentprice' => $jifentprice, 'jifenbook' => $jifenbook, 'jifencomment' => $jifencomment, 'addtime' => time(), 'memberid' => $memberid, 'dingjin' => Helper_Archive::pregReplace($dingjin, 2), 'suitid' => $suitid, 'paytype' => $paytype, 'status' => $status, 'haschild' => 1, 'remark' => Helper_Archive::pregReplace($remarkinfo, 5));
 $mainid = Helper_Archive::addOrder($arr, 0);
 //主定单id
 $num = $dnum[0];
 $j = 0;
 for ($i = 0; isset($udate[$i]); $i++) {
     $ordersn = get_order_sn('02');
     //订单号
     $store_num = getCurrentStore($udate[$i], $suitid);
     if (intval($dnum[$i]) <= $store_num || $store_num == -1) {
         $arr['dingnum'] = $dnum[$i];
         //$arr['price'] = $dprice[$i];
         $arr['price'] = getActualPrice($suitid, $udate[$i]);
         $arr['usedate'] = $udate[$i];
         $arr['ordersn'] = $ordersn;
         if ($i == 0 && !empty($usejifen)) {
             $arr['usejifen'] = $usejifen;
             $arr['needjifen'] = $needjifen;
         } else {
             $arr['usejifen'] = 0;
             $arr['needjifen'] = 0;
         }
Esempio n. 11
0
 $orgCheckcode = GetCkVdValue();
 if ($checkcode != $orgCheckcode || empty($checkcode)) {
     echo 'nocheckcode';
     return;
 }
 $_SESSION['total_value'] = '';
 $tourer = Helper_Archive::getTourer($_POST);
 $needjifen = $usejifen ? Helper_Archive::getNeedJifen($jifentprice) : 0;
 $userinfo = $User->getInfoByMid($User->uid);
 //获取用户信息
 //这里再次判断用户积分是否满足条件.
 if ($userinfo['jifen'] < $needjifen) {
     $usejifen = 0;
     $needjifen = 0;
 }
 $ordersn = get_order_sn('01');
 //订单号
 $memberid = $User->uid ? $User->uid : 0;
 $insurance = $_POST['insurance'];
 $suitinfo = getLineSuitInfo($suitid);
 $priceinfo = getDayPrice($usedate, $suitid);
 $status = $suitinfo['paytype'] == 1 ? 1 : 0;
 $adultnum = Helper_Archive::pregReplace($adultnum, 2);
 $childnum = Helper_Archive::pregReplace($childnum, 2);
 $oldnum = Helper_Archive::pregReplace($oldnum, 2);
 $total_dingnum = $adultnum + $childnum + $oldnum;
 if (intval($priceinfo['number']) != -1 && intval($priceinfo['number']) < $total_dingnum) {
     echo 'nonumber';
     exit;
 }
 $linktel = Helper_Archive::pregReplace($linktel, 2);
Esempio n. 12
0
 /**
  *  提交订单
  */
 public function done_receive()
 {
     $sn_id = I('post.gift_sn');
     if (!$sn_id) {
         ecs_header("Location: " . url('receive/receive_fail') . "\n");
     }
     /* 取得购物类型 */
     $flow_type = CART_RECEIVE_GIFTS;
     /* 检查购物车中是否有商品 */
     $condition = " session_id = '" . SESS_ID . "' " . "AND parent_id = 0 AND is_gift = 0 AND rec_type = '{$flow_type}'";
     $count = $this->model->table('cart')->field('COUNT(*)')->where($condition)->getOne();
     if ($count == 0) {
         show_message(L('no_goods_in_cart'), '', '', 'warning');
     }
     /* 如果使用库存,且下订单时减库存,则减少库存 */
     if (C('use_storage') == '1' && C('stock_dec_time') == SDT_PLACE) {
         $cart_goods_stock = model('Order')->get_cart_goods();
         $_cart_goods_stock = array();
         foreach ($cart_goods_stock['goods_list'] as $value) {
             $_cart_goods_stock[$value['rec_id']] = $value['goods_number'];
         }
         model('Flow')->flow_cart_stock($_cart_goods_stock);
         unset($cart_goods_stock, $_cart_goods_stock);
     }
     // 检查用户是否已经登录 如果用户已经登录了则检查是否有默认的收货地址 如果没有登录则跳转到登录和注册页面
     if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0) {
         /* 用户没有登录且没有选定匿名购物,转向到登录页面 */
         ecs_header("Location: " . url('user/login') . "\n");
     }
     // 获取收货人信息
     $consignee = model('Order')->get_consignee($_SESSION['user_id']);
     /* 检查收货人信息是否完整 */
     if (!model('Order')->check_consignee_info($consignee, $flow_type)) {
         /* 如果不完整则转向到收货人信息填写界面 */
         ecs_header("Location: " . url('flow/consignee') . "\n");
     }
     // 处理接收信息
     $how_oos = I('post.how_oos', 0);
     $oos = L('oos.' . $how_oos);
     // 订单信息
     $order = array('shipping_id' => I('post.shipping'), 'pay_id' => I('post.payment'), 'surplus' => isset($_POST['surplus']) ? floatval($_POST['surplus']) : 0.0, 'integral' => isset($_POST['integral']) ? intval($_POST['integral']) : 0, 'need_inv' => empty($_POST['need_inv']) ? 0 : 1, 'inv_type' => $_POST['inv_type'], 'inv_payee' => trim($_POST['inv_payee']), 'inv_content' => $_POST['inv_content'], 'postscript' => trim($_POST['postscript']), 'how_oos' => isset($oos) ? addslashes("{$oos}") : '', 'need_insure' => isset($_POST['need_insure']) ? intval($_POST['need_insure']) : 0, 'user_id' => $_SESSION['user_id'], 'add_time' => gmtime(), 'order_status' => OS_UNCONFIRMED, 'shipping_status' => SS_UNSHIPPED, 'pay_status' => PS_UNPAYED, 'agency_id' => model('Order')->get_agency_by_regions(array($consignee['country'], $consignee['province'], $consignee['city'], $consignee['district'])), 'mobile_order' => 1, 'mobile_pay' => 1);
     /* 扩展信息 */
     if (isset($_SESSION['flow_type']) && intval($_SESSION['flow_type']) != CART_GENERAL_GOODS) {
         $order['extension_code'] = $_SESSION['extension_code'];
         $order['extension_id'] = $_SESSION['extension_id'];
     } else {
         $order['extension_code'] = '';
         $order['extension_id'] = 0;
     }
     /* 订单中的商品 */
     $cart_goods = model('Order')->cart_goods($flow_type);
     if (empty($cart_goods)) {
         show_message(L('no_goods_in_cart'), L('back_home'), './', 'warning');
     }
     /* 检查商品总额是否达到最低限购金额 */
     if ($flow_type == CART_GENERAL_GOODS && model('Order')->cart_amount(true, CART_GENERAL_GOODS) < C('min_goods_amount')) {
         show_message(sprintf(L('goods_amount_not_enough'), price_format(C('min_goods_amount'), false)));
     }
     /* 收货人信息 */
     foreach ($consignee as $key => $value) {
         $order[$key] = addslashes($value);
     }
     /* 订单中的总额 */
     $total = model('Users')->order_fee($order, $cart_goods, $consignee);
     $order['goods_amount'] = $total['goods_price'];
     $order['discount'] = $total['discount'];
     $order['surplus'] = $total['surplus'];
     $order['tax'] = $total['tax'];
     /* 配送方式 */
     $order['shipping_fee'] = $total['shipping_fee'];
     $order['insure_fee'] = $total['shipping_insure'];
     /* 支付方式 */
     $order['pay_fee'] = $total['pay_fee'];
     $order['cod_fee'] = $total['cod_fee'];
     $order['order_amount'] = number_format($total['amount'], 2, '.', '');
     $order['order_amount'] = 0;
     /* 如果订单金额为0(使用余额或积分或红包支付),修改订单状态为已确认、已付款 */
     if ($order['order_amount'] <= 0) {
         $order['order_status'] = OS_CONFIRMED;
         $order['confirm_time'] = gmtime();
         $order['pay_status'] = PS_PAYED;
         $order['pay_time'] = gmtime();
         $order['order_amount'] = 0;
     }
     $order['integral_money'] = $total['integral_money'];
     $order['integral'] = $total['integral'];
     if ($order['extension_code'] == 'exchange_goods') {
         $order['integral_money'] = 0;
         $order['integral'] = $total['exchange_integral'];
     }
     $order['from_ad'] = !empty($_SESSION['from_ad']) ? $_SESSION['from_ad'] : '0';
     $order['referer'] = !empty($_SESSION['referer']) ? addslashes($_SESSION['referer']) : '';
     /* 记录扩展信息 */
     if ($flow_type != CART_GENERAL_GOODS) {
         $order['extension_code'] = $_SESSION['extension_code'];
         $order['extension_id'] = $_SESSION['extension_id'];
     }
     $order['parent_id'] = 0;
     /* 插入订单表 */
     $error_no = 0;
     do {
         $order['order_sn'] = get_order_sn();
         // 获取新订单号
         $new_order = model('Common')->filter_field('order_info', $order);
         $this->model->table('order_info')->data($new_order)->insert();
         $error_no = M()->errno();
         if ($error_no > 0 && $error_no != 1062) {
             die(M()->errorMsg());
         }
     } while ($error_no == 1062);
     // 如果是订单号重复则重新提交数据
     $new_order_id = M()->insert_id();
     $order['order_id'] = $new_order_id;
     /* 插入订单商品 */
     $sql = "INSERT INTO " . $this->model->pre . "order_goods( " . "order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) " . " SELECT '{$new_order_id}', goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id" . " FROM " . $this->model->pre . "cart WHERE session_id = '" . SESS_ID . "' AND rec_type = '{$flow_type}'";
     $this->model->query($sql);
     /* 如果使用库存,且下订单时减库存,则减少库存 */
     if (C('use_storage') == '1' && C('stock_dec_time') == SDT_PLACE) {
         model('Order')->change_order_goods_storage($order['order_id'], true, SDT_PLACE);
     }
     /* 减少礼包中的商品数 */
     if ($cart_goods[0]['goods_number']) {
         model('Order')->change_gift_storage($sn_id, $cart_goods[0]['goods_number']);
     }
     /* 插入日志 */
     $Gift = $this->model->table('gift_sn')->where("sn_id='" . $sn_id . "'")->find();
     if ($Gift['type'] == 1) {
         $data_l['type'] = 3;
     }
     $data_l['type'] = 2;
     $data_l['sn_id'] = $sn_id;
     $data_l['sn'] = $Gift['sn'];
     $data_l['create_user_id'] = $Gift['user_id'];
     $data_l['receive_user_id'] = $_SESSION['user_id'];
     $data_l['goods_id'] = $Gift['goods_id'];
     $data_l['goods_name'] = $Gift['goods_name'];
     $data_l['count'] = $cart_goods[0]['goods_number'];
     $data_l['time'] = gmtime();
     $data_l['order_id'] = $new_order_id;
     $this->model->table('gift_log')->data($data_l)->insert();
     /* 给商家发邮件 */
     /* 增加是否给客服发送邮件选项 */
     if (C('send_service_email') && C('service_email') != '') {
         $tpl = model('Base')->get_mail_template('remind_of_new_order');
         $this->assign('order', $order);
         $this->assign('goods_list', $cart_goods);
         $this->assign('shop_name', C('shop_name'));
         $this->assign('send_date', date(C('time_format')));
         $content = ECTouch::$view->fetch('str:' . $tpl['template_content']);
         send_mail(C('shop_name'), C('service_email'), $tpl['template_subject'], $content, $tpl['is_html']);
     }
     /* 如果需要,发短信 */
     if (C('sms_order_placed') == '1' && C('sms_shop_mobile') != '') {
         $sms = new EcsSms();
         $msg = $order['pay_status'] == PS_UNPAYED ? L('order_placed_sms') : L('order_placed_sms') . '[' . L('sms_paid') . ']';
         $sms->send(C('sms_shop_mobile'), sprintf($msg, $order['consignee'], $order['mobile']), '', 13, 1);
     }
     /* 如果需要,微信通知 by wanglu */
     if (method_exists('WechatController', 'do_oauth')) {
         $order_url = __HOST__ . url('user/order_detail', array('order_id' => $order['order_id']));
         $order_url = urlencode(base64_encode($order_url));
         send_wechat_message('order_remind', '', $order['order_sn'] . L('order_effective'), $order_url, $order['order_sn']);
     }
     // 销量
     model('Flow')->add_touch_goods($flow_type, $order['extension_code']);
     /* 记录供应商信息 */
     $sql = "update " . $this->model->pre . "order_goods og , " . $this->model->pre . "goods g set og.suppliers_id=g.suppliers_id\r\n            where og.goods_id=g.goods_id and og.order_id='" . $order['order_id'] . "'";
     $this->model->query($sql);
     /* 清空购物车 */
     model('Order')->clear_cart($flow_type);
     /* 清除缓存,否则买了商品,但是前台页面读取缓存,商品数量不减少 */
     clear_all_files();
     /* 插入支付日志 */
     $order['log_id'] = model('ClipsBase')->insert_pay_log($new_order_id, $order['order_amount'], PAY_ORDER);
     /* 订单信息 */
     $this->assign('order', $order);
     $total['amount_formated'] = "¥0.00元";
     $this->assign('total', $total);
     $this->assign('goods_list', $cart_goods);
     //$this->assign('order_submit_back', sprintf(L('order_submit_back'), L('back_home'), L('goto_user_center'))); // 返回提示
     user_uc_call('add_feed', array($order['order_id'], BUY_GOODS));
     // 推送feed到uc
     unset($_SESSION['flow_consignee']);
     // 清除session中保存的收货人信息
     unset($_SESSION['flow_order']);
     unset($_SESSION['direct_shopping']);
     $this->assign('currency_format', C('currency_format'));
     $this->assign('integral_scale', C('integral_scale'));
     $this->assign('step', ACTION_NAME);
     $this->assign('title', L('order_submit'));
     $this->display('flow.dwt');
 }
Esempio n. 13
0
        $goodslist = $db->getAll("select g.goods_name,g.shop_price,g.goods_sn,g.goods_id from " . $ecs->table("goods") . "  g where g.goods_id " . db_create_in($goodsid) . " ");
        $ngoodslist = array();
        $gnums = unserialize($taocan['gnums']);
        foreach ($goodslist as $n) {
            foreach ($goodsid as $j => $id) {
                if ($n['goods_id'] == $id) {
                    $n['goods_num'] = $gnums[$j];
                    $ngoodslist[] = $n;
                }
            }
        }
        $totalprice = 0;
        foreach ($goodslist as $g) {
            $totalprice += $g['shop_price'];
        }
        $order = array('order_sn' => get_order_sn(), 'user_id' => $taocan['user_id'], 'shipping_name' => '黑猫宅急便', 'shipping_id' => 2, 'order_status' => OS_CONFIRMED, 'shipping_status' => SS_UNSHIPPED, 'pay_status' => PS_PAYED, 'consignee' => $taocan['consignee'], 'country' => $taocan['country'], 'province' => $taocan['province'], 'city' => $taocan['city'], 'district' => $taocan['district'], 'address' => $taocan['address'], 'zipcode' => $taocan['zipcode'], 'tel' => '', 'mobile' => $taocan['mobile'], 'email' => $taocan['email'], 'best_time' => local_date('Y-m-d', gmstr2time("1 day")) . " " . $taocan['halfday'], 'sign_building' => '', 'email' => $taocan['email'], 'pay_id' => '4', 'pay_name' => '余额支付', 'goods_amount' => $totalprice, 'money_paid' => $ordertotalprice, 'order_amount' => $ordertotalprice, 'referer' => '用户套餐自动生成', 'add_time' => gmtime(), 'confirm_time' => gmtime(), 'pay_time' => gmtime(), 'shipping_time' => gmtime(), 'discount' => $totalprice - $ordertotalprice);
        // Add by Edward
        //fwrite($james,"订单号:".get_order_sn()."--用户ID:".$taocan['user_id']."——收货人:".$taocan['consignee']."\n");
        $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
        $new_order_id = $db->insert_id();
        foreach ($ngoodslist as $goods) {
            $ogoods = array('order_id' => $new_order_id, 'goods_id' => $goods['goods_id'], 'goods_name' => $goods['goods_name'], 'goods_sn' => $goods['goods_sn'], 'product_id' => '0', 'goods_number' => $goods['goods_num'], 'goods_price' => $goods['shop_price'], 'goods_attr' => '', 'send_number' => '0', 'is_real' => '1', 'extension_code' => '', 'parent_id' => '', 'is_gift' => '0', 'goods_attr_id' => '');
            $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_goods'), $ogoods, 'INSERT');
        }
        //添加日志
        order_action($order['order_sn'], OS_CONFIRMED, SS_UNSHIPPED, PS_PAYED, '', '套餐自动生成订单');
        log_account_change($order['user_id'], -$ordertotalprice, 0, 0, 0, '用户套餐自动生成订单:' . $order['order_sn'] . ',自动扣除', ACT_OTHER);
        $db->query("update " . $ecs->table("user_tc_goods") . " set weeks = " . $weeks . " where id=" . $taocan['tid']);
    }
    $db->query("update " . $ecs->table("taocan_job") . " set last_date='" . gmtime() . "', weeks = " . $weeks . "");
}
Esempio n. 14
0
 public function order()
 {
     // $sign = I('post.sign');
     $id = I('post.id', '', 'strval');
     $json = array('error' => 0, 'message' => '', 'data' => '');
     do {
         $hongbao = M('hongbao')->where(array('number_no' => $id))->find();
         if (!$hongbao) {
             // $this->error('没找到红包详情', U('/notes'));
             $json['error'] = 1;
             $json['message'] = '没找到红包详情';
             break;
         }
         //            if($sign != session('sign')){
         //                $this->error('请不要重复提交.',U('/hongbao/buy',array('id'=>$id)));
         //            }else{
         //                session('sign', microtime(true));
         //            }
         $total = I('post.num', 0, 'intval');
         // $total_amount = intval(M('hongbao_order')->where(array("number_no"=>$id, "state"=>1))->sum('total_amount'));
         $total_num = M('hongbao_order')->where(array("hongbao_id" => $hongbao['id'], "state" => 1, "addtime" => array('gt', time() - 30)))->sum('part_num');
         $total_num = intval($total_num);
         if ($total < 1 || $total + $hongbao['total_num'] + $total_num > $hongbao['total_part']) {
             //                $this->error('你已超过红包份额限制,请重新设置份额.',U('/hongbao/buy',array('id'=>$id)));
             //                return false;
             $json['error'] = 2;
             $json['message'] = '被人抢先一步了。由于有人在您之前支付,剩余的份数小于您想要购买的份数了,请重新确认参与份数.';
             break;
         }
         $user = M('user')->find($this->user_id);
         //            $hongbao_order = M('hongbao_order')->where(array('user_id'=>$this->user_id, 'state'=>1, 'hongbao_id'=>$hongbao['id']))->find();
         //            if($hongbao_order){
         //                $data = array(
         //                    'addtime' => time(),
         //                    'part_num' => $total,
         //                    'total_amount'=>$hongbao['part_amount'] * $total
         //                );
         //                $rs = M('hongbao_order')->where(array('id'=>$hongbao_order['id']))->save($data);
         //                if($rs){
         //                    $json['data'] = $hongbao_order['order_sn'];
         //                    break;
         //                }else{
         //                    $json['error'] = 1;
         //                    $json['message'] = '操作失败,请重试.';
         //                }
         //            }
         $data = array('hongbao_id' => $hongbao['id'], 'hongbao_user_id' => $hongbao['user_id'], 'number_no' => $hongbao['number_no'], 'order_sn' => get_order_sn(), 'user_id' => $this->user_id, 'part_num' => $total, 'part_amount' => $hongbao['part_amount'], 'total_amount' => $hongbao['part_amount'] * $total, 'addtime' => time(), 'state' => 1, 'openid' => $user['openid']);
         $rs = M('hongbao_order')->add($data);
         if ($rs) {
             //                redirect(U('/weixin/pay', array('id'=>$data['order_sn'])));
             //                // $this->success('操作成功.',U('/hongbao/detail',array('id'=>$id)));
             //                return true;
             $json['data'] = $data['order_sn'];
             break;
         } else {
             //                $this->error('操作失败,请重试.',U('/hongbao/buy',array('id'=>$id)));
             //                return false;
             $json['error'] = 1;
             $json['message'] = '操作失败,请重试.';
             break;
         }
     } while (false);
     echo json_encode($json);
 }
Esempio n. 15
0
 public function order()
 {
     // $sign = I('post.sign');
     $id = I('post.id', '', 'strval');
     $json = array('error' => 0, 'message' => '', 'data' => '');
     do {
         $zhaopian = M('zhaopian')->where(array('number_no' => $id))->find();
         if (!$zhaopian) {
             // $this->error('没找到红包详情', U('/notes'));
             $json['error'] = 1;
             $json['message'] = '没找到红包照片详情';
             break;
         }
         $amount = I('post.amount', 0, 'floatval');
         if ($amount > $zhaopian['max_amount'] || $amount < $zhaopian['min_amount']) {
             $json['error'] = 1;
             $json['message'] = '红包金额不在有效范围内.有效范围' . $zhaopian['min_amount'] . '-' . $zhaopian['max_amount'] . '之间.';
             break;
         }
         $zhaopian_order = M('zhaopian_order')->where(array('zhaopian_id' => $zhaopian['id'], 'user_id' => $this->user_id, 'state' => 2))->find();
         if ($zhaopian_order) {
             $json['error'] = 1;
             $json['message'] = '你已经购买过该照片,请刷新后访问该照片.';
             break;
         }
         $user = M('user')->find($this->user_id);
         $data = array('zhaopian_id' => $zhaopian['id'], 'zhaopian_user_id' => $zhaopian['user_id'], 'zhaopian_openid' => $zhaopian['openid'], 'number_no' => $zhaopian['number_no'], 'order_sn' => get_order_sn('zo'), 'user_id' => $this->user_id, 'amount' => $amount, 'addtime' => time(), 'state' => 1, 'openid' => $user['openid']);
         $rs = M('zhaopian_order')->add($data);
         if ($rs) {
             $json['data'] = $data['order_sn'];
             break;
         } else {
             $json['error'] = 1;
             $json['message'] = '操作失败,请重试.';
             break;
         }
     } while (false);
     echo json_encode($json);
 }
Esempio n. 16
0
function createOrder($gid, $t, $nick)
{
    $order = array();
    $order['add_time'] = $t - 7 * 86400;
    //购买时间直接倒数7天
    $order['order_status'] = OS_CONFIRMED;
    $order['confirm_time'] = $t - 7 * 86400;
    $order['pay_status'] = PS_PAYED;
    $order['pay_time'] = $t - 7 * 86400;
    $order['shipping_status'] = 2;
    $order['order_amount'] = 0;
    $order['order_sn'] = get_order_sn();
    //获取新订单号
    $order['tb_nick'] = $nick;
    $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
    $new_order_id = $GLOBALS['db']->insert_id();
    $goods = $GLOBALS['db']->getRow("select * from " . $GLOBALS['ecs']->table('goods') . " where goods_id={$gid}");
    $sql = "INSERT INTO " . $GLOBALS['ecs']->table('order_goods') . "( " . "order_id, goods_id, goods_name, goods_sn, goods_number, market_price,\r\n\t\tgoods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) value " . "({$new_order_id},{$gid},'{$goods['goods_name']}','{$goods['goods_sn']}',1,0,0,'',0,'',0,0,0)";
    $GLOBALS['db']->query($sql);
    return true;
}
Esempio n. 17
0
 //获取用户信息
 //这里再次判断用户积分是否满足条件.
 if ($userinfo['jifen'] < $needjifen) {
     $usejifen = 0;
     $needjifen = 0;
 }
 if (empty($suitid)) {
     showMsg("请选择套餐", -1, 3);
     exit;
 }
 $row = $dsql->getOne("select a.*,b.aid,b.title from #@__car_suit a inner join #@__car b on a.carid=b.id  where a.id={$suitid}");
 if (empty($row)) {
     showMsg("定购错误,请重试", -1, 3);
     exit;
 }
 $ordersn = get_order_sn('03');
 //订单号
 $memberid = $User->uid ? $User->uid : 0;
 $status = $paytype == 1 ? 1 : 0;
 $price = getSuitPriceByDay($suitid, $usedate);
 $total_store = getSuitNumberByDay($suitid, $usedate);
 $total_dingnum = intval(Helper_Archive::pregReplace($dingnum, 2));
 if ($total_store != -1 && $total_store < $total_dingnum) {
     echo 'nonumber';
     exit;
 }
 $linktel = Helper_Archive::pregReplace($linktel, 2);
 $arr = array('ordersn' => $ordersn, 'webid' => 0, 'typeid' => 3, 'productautoid' => $row['carid'], 'productaid' => $row['aid'], 'productname' => $row['title'] . '(' . $row['suitname'] . ')', 'price' => $price, 'usedate' => $usedate, 'dingnum' => Helper_Archive::pregReplace($dingnum, 2), 'linkman' => Helper_Archive::pregReplace($linkman, 5), 'linktel' => Helper_Archive::pregReplace($linktel, 2), 'linkemail' => Helper_Archive::pregReplace($linkemail, 5), 'linkqq' => '', 'jifentprice' => $row['jifentprice'], 'jifenbook' => $row['jifenbook'], 'jifencomment' => $row['jifencomment'], 'addtime' => time(), 'memberid' => $memberid, 'dingjin' => $row['dingjin'], 'paytype' => $paytype, 'usejifen' => $usejifen, 'needjifen' => $needjifen, 'status' => $status, 'haschild' => 0, 'pid' => 0, 'remark' => Helper_Archive::pregReplace($remarkinfo, 5));
 $price = $arr['price'];
 $remark = $arr['remark'];
 if (Helper_Archive::addOrder($arr)) {
Esempio n. 18
0
 public function Queryorder($transaction_id)
 {
     $input = new WxPayOrderQuery();
     $input->SetTransaction_id($transaction_id);
     $result = WxPayApi::orderQuery($input);
     Log::DEBUG("query:" . json_encode($result));
     if (array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS") {
         f_log(http_build_query($result), dirname(__FILE__) . '/mylog.log');
         $result['addtime'] = time();
         $id = M('pay_log')->add($result);
         // 更改order 状态
         // 更改 hongbao状态
         $order_sn = $result['out_trade_no'];
         if (substr($order_sn, 0, 2) == 'HB') {
             $this->bao($result, $id);
             return true;
         }
         if (substr($order_sn, 0, 2) == 'ZP') {
             $this->zhaopian($result, $id);
             return true;
         }
         $order = M('hongbao_order')->where("order_sn='{$result['out_trade_no']}'")->find();
         if ($order) {
             // 重复操作
             if ($order['state'] > 1) {
                 return true;
             }
             $order_data = array('pay_id' => $id, 'pay_time' => time(), 'transaction_id' => $result['transaction_id'], 'state' => 2);
             M('hongbao_order')->where("id='{$order['id']}'")->save($order_data);
             $hongbao = M('hongbao')->where("id='{$order['hongbao_id']}'")->find();
             if ($hongbao) {
                 $data = array('update_time' => time(), 'total_num' => $hongbao['total_num'] + $order['part_num'], 'total_pay_amount' => $hongbao['total_pay_amount'] + $order['total_amount'], 'total_user' => $hongbao['total_user'] + 1);
                 if ($data['total_num'] >= $hongbao['total_part'] || $data['total_pay_amount'] >= $hongbao['total_amount']) {
                     $data['state'] = 2;
                     $data['success_time'] = time();
                 }
                 M('hongbao')->where("id='{$order['hongbao_id']}'")->save($data);
                 if ($hongbao['state'] > 1) {
                     return true;
                 }
                 // 设置幸运星
                 if ($data['state'] == 2) {
                     $list = M('hongbao_order')->where("hongbao_id='{$order['hongbao_id']}' AND state=2")->select();
                     if ($list) {
                         $ids = array();
                         foreach ($list as $r) {
                             $ids[] = $r['id'];
                         }
                         shuffle($ids);
                         $k = array_rand($ids);
                         $id = $ids[$k];
                         if ($id) {
                             $order_info = M('hongbao_order')->find($id);
                             $user_info = M('user')->find($order_info['user_id']);
                             M('hongbao_order')->where("id='{$id}'")->save(array('is_star' => 1));
                         }
                     }
                 }
                 // 自动发送红包
                 if ($data['state'] == 2) {
                     $bao = array('mch_billno' => get_order_sn(), 'send_name' => '凑红包', 're_openid' => $hongbao['openid'], 'total_amount' => floor($hongbao['total_amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在凑红包发起的凑红包已经完成。', 'act_name' => '凑红包', 'remark' => '凑红包');
                     $send = $bao;
                     $send['user_id'] = $hongbao['user_id'];
                     $send['addtime'] = time();
                     $hongbao_id = M('hongbao_send')->add($send);
                     if ($hongbao_id) {
                         M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('hongbao_id' => $hongbao_id, 'hongbao_sn' => $bao['mch_billno'], 'hongbao_time' => time()));
                         $data = sendHongBao($bao);
                         if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                             M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('is_send_hongbao' => 1));
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 2, 'send_listid' => $data['send_listid']));
                             $user_amount = number_format($hongbao['total_amount'] * 0.98, 2);
                             $msg = "你发起的凑红包成功啦!\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n幸运星:{$user_info['name']}\n\n红包已经通过微信红包打给你,其中已扣除2%微信支付手续费,扣除后金额为{$user_amount}元";
                             \Wechat\Wxapi::send_wxmsg($hongbao['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                             $msg = "幸运星就是你!没想到吧\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n快找发起人要福利吧 :D";
                             \Wechat\Wxapi::send_wxmsg($user_info['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                         } else {
                             M('hongbao_send')->where(array("id='{$hongbao_id}'"))->save(array('state' => 3));
                             $user_amount = number_format($hongbao['total_amount'] * 0.98, 2);
                             $msg = "你发起的凑红包成功啦!\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n幸运星:{$user_info['name']}\n\n红包将会在1~3个工作内,通过微信红包打给你,\n其中已扣除2%的微信支付手续费,扣除后金额为{$user_amount}元。\n因为微信支付到我们的账户需要1~3个工作日,我们\n的账户预存垫付的现金不足,暂时不能实时转账,希望\n理解。资金安全请你放心,如果有疑问请联系客服。";
                             \Wechat\Wxapi::send_wxmsg($hongbao['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                             $sys_openid = "oV3oMxP5wdTR8BpptzNq2tDdGtLk";
                             $msg = "重要提示! 红包发送异常!!!";
                             \Wechat\Wxapi::send_wxmsg($sys_openid, '众筹状态提醒', "http://{$_SERVER['HTTP_HOST']}", $msg);
                         }
                     }
                 }
             }
         }
         return true;
     }
     return false;
 }
Esempio n. 19
0
	public function done () {
		global $ecs,$db,$_CFG;
		include_once(RPC_ROOT.'includes/lib_clips_ec.php');
	    include_once(RPC_ROOT.'includes/lib_payment.php');
	
	    /* 取得购物类型 */
	    $flow_type = isset($_SESSION['flow_type']) ? intval($_SESSION['flow_type']) : CART_GENERAL_GOODS;
	
	    /* 检查购物车中是否有商品 */
	    $sql = "SELECT COUNT(*) FROM " . $ecs->table('cart') ." WHERE session_id = '" . SESS_ID . "' " .
	           "AND parent_id = 0 AND is_gift = 0 AND rec_type = '$flow_type'";
	    
		if ($db->getOne($sql) == 0)
	    {
			$msg = rpcLang('flow.php', 'no_goods_in_cart');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    /* 检查商品库存,如果使用库存,且下订单时减库存,则减少库存 */
	    if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE)
	    {
	        $cart_goods_stock = get_cart_goods();       
	        $_cart_goods_stock = array();        
	        foreach ($cart_goods_stock['goods_list'] as $value)
	        {
	            $_cart_goods_stock[$value['rec_id']] = $value['goods_number'];
	        }       
	        zy_flow_cart_stock($_cart_goods_stock);        
	        unset($cart_goods_stock, $_cart_goods_stock);
	    }
	
	    /*
	     * 检查用户是否已经登录
	     * 如果用户已经登录了则检查是否有默认的收货地址
	     * 如果没有登录则跳转到登录和注册页面
	     */
	    if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0)
	    {
	        /* 用户没有登录且没有选定匿名购物,转向到登录页面 */
	        $msg = rpcLang('user.php', 'nologin');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    $consignee = get_consignee($_SESSION['user_id']);
	
	    /* 检查收货人信息是否完整 */
	    if (!check_consignee_info($consignee, $flow_type))
	    {
	        $msg = rpcLang('flow.php', 'user_address_not_full');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	
	    $_GET['how_oos']	  = isset($_GET['how_oos']) ? intval($_GET['how_oos']) : 0;
	    $_GET['card_message'] = isset($_GET['card_message']) ? htmlspecialchars($_GET['card_message']) : '';
	    $_GET['inv_type']     = !empty($_GET['inv_type']) ? htmlspecialchars($_GET['inv_type']) : '';
	    $_GET['inv_payee']    = isset($_GET['inv_payee']) ? htmlspecialchars($_GET['inv_payee']) : '';
	    $_GET['inv_content']  = isset($_GET['inv_content']) ? htmlspecialchars($_GET['inv_content']) : '';
	    $_GET['postscript']   = isset($_GET['postscript']) ? htmlspecialchars($_GET['postscript']) : '';
	
	    $referer = empty($_GET['referer']) ? 'Android':trim($_GET['referer']);
	    $order = array(
	        //'shipping_id'     => intval($_POST['shipping']),
	    	'shipping_id'     => intval($_GET['shipping']),//快递id
	        'pay_id'          => intval($_GET['payment']),//支付方式id
	        'pack_id'         => isset($_GET['pack']) ? intval($_GET['pack']) : 0,//包装
	        'card_id'         => isset($_GET['card']) ? intval($_GET['card']) : 0,//贺卡
	        'card_message'    => trim($_GET['card_message']),
	        'surplus'         => isset($_POST['surplus']) ? floatval($_POST['surplus']) : 0.00,
	        'integral'        => isset($_POST['integral']) ? intval($_POST['integral']) : 0,
	        'bonus_id'        => isset($_GET['bonus']) ? intval($_GET['bonus']) : 0,
	        'need_inv'        => empty($_POST['need_inv']) ? 0 : 1,
	        'postscript'      => trim($_POST['postscript']),
	        'how_oos'         => isset($_LANG['oos'][$_POST['how_oos']]) ? addslashes($_LANG['oos'][$_POST['how_oos']]) : '',
	        'need_insure'     => isset($_POST['need_insure']) ? intval($_POST['need_insure']) : 0,
	        'user_id'         => $_SESSION['user_id'],
	        'add_time'        => gmtime(),
	        'order_status'    => OS_UNCONFIRMED,
	        'shipping_status' => SS_UNSHIPPED,
	        'pay_status'      => PS_UNPAYED,
	        'agency_id'       => get_agency_by_regions(array($consignee['country'], $consignee['province'], $consignee['city'], $consignee['district']))
	        );
		if(EC_CHARSET == 'utf-8'){
			$order['inv_type'] = gbktoutf8($_GET['inv_type']);
			$order['inv_payee'] = gbktoutf8(trim($_GET['inv_payee']));
			$order['inv_content'] = gbktoutf8($_GET['inv_content']);
		}else{
			$order['inv_type'] = utf8togbk($_GET['inv_type']);
			$order['inv_payee'] = utf8togbk(trim($_GET['inv_payee']));
			$order['inv_content'] = utf8togbk($_GET['inv_content']);
		}
	
	    /* 扩展信息 */
	    if (isset($_SESSION['flow_type']) && intval($_SESSION['flow_type']) != CART_GENERAL_GOODS)
	    {
	        $order['extension_code'] = $_SESSION['extension_code'];
	        $order['extension_id'] = $_SESSION['extension_id'];
	    }
	    else
	    {
	        $order['extension_code'] = '';
	        $order['extension_id'] = 0;
	    }
	    $user_id = $_SESSION['user_id'];
		/*
	    #检查积分余额是否合法
	    $user_id = $_SESSION['user_id'];
	    if ($user_id > 0)
	    {
	        $user_info = user_info($user_id);
	
	        $order['surplus'] = min($order['surplus'], $user_info['user_money'] + $user_info['credit_line']);
	        if ($order['surplus'] < 0)
	        {
	            $order['surplus'] = 0;
	        }
	
	        // 查询用户有多少积分
	        $flow_points = flow_available_points();  // 该订单允许使用的积分
	        $user_points = $user_info['pay_points']; // 用户的积分总数
	
	        $order['integral'] = min($order['integral'], $user_points, $flow_points);
	        if ($order['integral'] < 0)
	        {
	            $order['integral'] = 0;
	        }
	    }
	    else
	    {
	        $order['surplus']  = 0;
	        $order['integral'] = 0;
	    }*/
	
	    #检查红包是否存在
	    if ($order['bonus_id'] > 0)
	    {
	        $bonus = bonus_info($order['bonus_id']);
	
	        if (empty($bonus) || $bonus['user_id'] != $user_id || $bonus['order_id'] > 0 || $bonus['min_goods_amount'] > cart_amount(true, $flow_type))
	        {
	            $order['bonus_id'] = 0;
	        }
	        
	    }
	    elseif (isset($_POST['bonus_sn']))
	    {
	        $bonus_sn = trim($_POST['bonus_sn']);
	        $bonus = bonus_info(0, $bonus_sn);
	        $now = gmtime();
	        if (empty($bonus) || $bonus['user_id'] > 0 || $bonus['order_id'] > 0 || $bonus['min_goods_amount'] > cart_amount(true, $flow_type) || $now > $bonus['use_end_date'])
	        {
	        }
	        else
	        {
	            if ($user_id > 0)
	            {
	                $sql = "UPDATE " . $ecs->table('user_bonus') . " SET user_id = '$user_id' WHERE bonus_id = '$bonus[bonus_id]' LIMIT 1";
	                $db->query($sql);
	            }
	            $order['bonus_id'] = $bonus['bonus_id'];
	            $order['bonus_sn'] = $bonus_sn;
	        }
	    }
		
	
	    /* 订单中的商品 */
	    $cart_goods = cart_goods($flow_type);
	
	    if (empty($cart_goods))
	    {
	        $msg = rpcLang('flow.php', 'no_goods_in_cart');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    /* 检查商品总额是否达到最低限购金额 */
	    if ($flow_type == CART_GENERAL_GOODS && cart_amount(true, CART_GENERAL_GOODS) < $_CFG['min_goods_amount'])
	    {
			$msg = rpcLang('flow.php', 'goods_amount_not_enough');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    /* 收货人信息 */
	    foreach ($consignee as $key => $value)
	    {
	        $order[$key] = addslashes($value);
	    }
	
	    /* 订单中的总额 */
	    $total = order_fee($order, $cart_goods, $consignee);
	
	    $order['bonus']        = $total['bonus'];
	    $order['goods_amount'] = $total['goods_price'];
	    $order['discount']     = $total['discount'];
	    $order['surplus']      = $total['surplus'];
	    $order['tax']          = $total['tax'];
	    #购物车中的商品能享受红包支付的总额
	    $discount_amout = compute_discount_amount();
		#红包和积分最多能支付的金额为商品总额
	    $temp_amout = $order['goods_amount'] - $discount_amout;
		if ($temp_amout <= 0)
	    {
	        $order['bonus_id'] = 0;
	    }
	
	    /* 配送方式 */
	    if ($order['shipping_id'] > 0)
	    {
	        $shipping = shipping_info($order['shipping_id']);
	        $order['shipping_name'] = addslashes($shipping['shipping_name']);
	    }
	    $order['shipping_fee'] = $total['shipping_fee'];
	    $order['insure_fee']   = $total['shipping_insure'];
	
	    /* 支付方式 */
	    if ($order['pay_id'] > 0)
	    {
	        $payment = payment_info($order['pay_id']);
	        $order['pay_name'] = addslashes($payment['pay_name']);
	    }
	    $order['pay_fee'] = $total['pay_fee'];
	    $order['cod_fee'] = $total['cod_fee'];
	
	    /* 商品包装 */
	    if ($order['pack_id'] > 0)
	    {
	        $pack               = pack_info($order['pack_id']);
	        $order['pack_name'] = addslashes($pack['pack_name']);
	    }
	    $order['pack_fee'] = $total['pack_fee'];
	
	
	    /* 祝福贺卡 */
	    if ($order['card_id'] > 0)
	    {
	        $card               = card_info($order['card_id']);
	        $order['card_name'] = addslashes($card['card_name']);
	    }
	    $order['card_fee']      = $total['card_fee'];
	
	    $order['order_amount']  = number_format($total['amount'], 2, '.', '');
	
	    /* 如果全部使用余额支付,检查余额是否足够 */
	    if ($payment['pay_code'] == 'balance' && $order['order_amount'] > 0)
	    {
	        if($order['surplus'] >0) //余额支付里如果输入了一个金额
	        {
	            $order['order_amount'] = $order['order_amount'] + $order['surplus'];
	            $order['surplus'] = 0;
	        }
	        if ($order['order_amount'] > ($user_info['user_money'] + $user_info['credit_line']))
	        {
	            show_message($_LANG['balance_not_enough']);
	        }
	        else
	        {
	            $order['surplus'] = $order['order_amount'];
	            $order['order_amount'] = 0;
	        }
	    }
	
	    /* 如果订单金额为0(使用余额或积分或红包支付),修改订单状态为已确认、已付款 */
	    if ($order['order_amount'] <= 0)
	    {
	        $order['order_status'] = OS_CONFIRMED;
	        $order['confirm_time'] = gmtime();
	        $order['pay_status']   = PS_PAYED;
	        $order['pay_time']     = gmtime();
	        $order['order_amount'] = 0;
	    }
	
	    $order['integral_money']   = $total['integral_money'];
	    $order['integral']         = $total['integral'];
	
	    if ($order['extension_code'] == 'exchange_goods')
	    {
	        $order['integral_money']   = 0;
	        $order['integral']         = $total['exchange_integral'];
	    }
	
	    $order['from_ad']          = !empty($_SESSION['from_ad']) ? $_SESSION['from_ad'] : '0';
	    $order['referer']          = !empty($_SESSION['referer']) ? addslashes($_SESSION['referer']) : '';
	
	    /* 记录扩展信息 */
	    if ($flow_type != CART_GENERAL_GOODS)
	    {
	        $order['extension_code'] = $_SESSION['extension_code'];
	        $order['extension_id'] = $_SESSION['extension_id'];
	    }
	
	    $affiliate = unserialize($_CFG['affiliate']);
	    if(isset($affiliate['on']) && $affiliate['on'] == 1 && $affiliate['config']['separate_by'] == 1)
	    {
	        //推荐订单分成
	        $parent_id = get_affiliate();
	        if($user_id == $parent_id)
	        {
	            $parent_id = 0;
	        }
	    }
	    elseif(isset($affiliate['on']) && $affiliate['on'] == 1 && $affiliate['config']['separate_by'] == 0)
	    {
	        //推荐注册分成
	        $parent_id = 0;
	    }
	    else
	    {
	        //分成功能关闭
	        $parent_id = 0;
	    }
	    $order['parent_id'] = $parent_id;
	
	    /* 插入订单表 */
	    $error_no = 0;
	    do
	    {
	        $order['order_sn'] = get_order_sn(); //获取新订单号
			
	        $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), $order, 'INSERT');
	
	        $error_no = $GLOBALS['db']->errno();
	
	        if ($error_no > 0 && $error_no != 1062)
	        {
	            die($GLOBALS['db']->errorMsg());
	        }
	    }
	    while ($error_no == 1062); //如果是订单号重复则重新提交数据
	
	    $new_order_id = $db->insert_id();
	    $order['order_id'] = $new_order_id;
	
	    /* 插入订单商品 */
	    $sql = "INSERT INTO " . $ecs->table('order_goods') . "( " .
	                "order_id, goods_id, goods_name, goods_sn, goods_number, market_price, ".
	                "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) ".
	            " SELECT '$new_order_id', goods_id, goods_name, goods_sn, goods_number, market_price, ".
	                "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id".
	            " FROM " .$ecs->table('cart') .
	            " WHERE session_id = '".SESS_ID."' AND rec_type = '$flow_type'";
	    $db->query($sql);
	    /* 修改拍卖活动状态 */
	    if ($order['extension_code']=='auction')
	    {
	        $sql = "UPDATE ". $ecs->table('goods_activity') ." SET is_finished='2' WHERE act_id=".$order['extension_id'];
	        $db->query($sql);
	    }
	
	    /* 处理余额、积分、红包 */
	    if ($order['user_id'] > 0 && $order['surplus'] > 0)
	    {
	        log_account_change($order['user_id'], $order['surplus'] * (-1), 0, 0, 0, sprintf($_LANG['pay_order'], $order['order_sn']));
	    }
	    if ($order['user_id'] > 0 && $order['integral'] > 0)
	    {
	        log_account_change($order['user_id'], 0, 0, 0, $order['integral'] * (-1), sprintf($_LANG['pay_order'], $order['order_sn']));
	    }
	
	    if ($order['bonus_id'] > 0 && $temp_amout > 0)
	    {
	        use_bonus($order['bonus_id'], $new_order_id);
	    }
	
	    /* 如果使用库存,且下订单时减库存,则减少库存 */
	    if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE)
	    {
	        //change_order_goods_storage($order['order_id'], true, SDT_PLACE);
	    }
	error_log('1',3,'flow.log');
	    /* 给商家发邮件 */
	    /* 增加是否给客服发送邮件选项 */
	    if ($_CFG['send_service_email'] && $_CFG['service_email'] != '')
	    {
	    	error_log('2',3,'flow.log');
	        $tpl = get_mail_template('remind_of_new_order');
			/*
			$smarty->assign('order', $order);
	        $smarty->assign('goods_list', $cart_goods);
	        $smarty->assign('shop_name', $_CFG['shop_name']);
	        $smarty->assign('send_date', date($_CFG['time_format']));
	        $content = $smarty->fetch('str:' . $tpl['template_content']);
	        */
			send_mail($_CFG['shop_name'], $_CFG['service_email'], $tpl['template_subject'], $content, $tpl['is_html']);
	    }
	error_log('2',3,'flow.log');
	    /* 如果需要,发短信 */
	    if ($_CFG['sms_order_placed'] == '1' && $_CFG['sms_shop_mobile'] != '')
	    {
	        include_once(RPC_ROOT.'includes/cls_sms.php');
	        $sms = new sms();
	        $msg = $order['pay_status'] == PS_UNPAYED ?
	            $_LANG['order_placed_sms'] : $_LANG['order_placed_sms'] . '[' . $_LANG['sms_paid'] . ']';
	        $sms->send($_CFG['sms_shop_mobile'], sprintf($msg, $order['consignee'], $order['tel']), 0);
	    }
	error_log('3',3,'flow.log');
	    /* 如果订单金额为0 处理虚拟卡 */
	    if ($order['order_amount'] <= 0)
	    {
	        $sql = " SELECT goods_id, goods_name, goods_number AS num FROM ".$GLOBALS['ecs']->table('cart') .
	               " WHERE is_real = 0 AND extension_code = 'virtual_card'".
	               " AND session_id = '".SESS_ID."' AND rec_type = '$flow_type'";
	
	        $res = $GLOBALS['db']->getAll($sql);
	error_log('4',3,'flow.log');
	        $virtual_goods = array();
	        foreach ($res AS $row)
	        {
	            $virtual_goods['virtual_card'][] = array('goods_id' => $row['goods_id'], 'goods_name' => $row['goods_name'], 'num' => $row['num']);
	        }
	
	        if ($virtual_goods AND $flow_type != CART_GROUP_BUY_GOODS)
	        {
	            /* 虚拟卡发货 */
	            if (virtual_goods_ship($virtual_goods,$msg, $order['order_sn'], true))
	            {
	                /* 如果没有实体商品,修改发货状态,送积分和红包 */
	                $sql = "SELECT COUNT(*)" .
	                        " FROM " . $ecs->table('order_goods') .
	                        " WHERE order_id = '$order[order_id]' " .
	                        " AND is_real = 1";
	                if ($db->getOne($sql) <= 0)
	                {
	                    /* 修改订单状态 */
	                    update_order($order['order_id'], array('shipping_status' => SS_SHIPPED, 'shipping_time' => gmtime()));
	error_log('5',3,'flow.log');
	                    /* 如果订单用户不为空,计算积分,并发给用户;发红包 */
	                    if ($order['user_id'] > 0)
	                    {
	                        /* 取得用户信息 */
	                        $user = user_info($order['user_id']);
	
	                        /* 计算并发放积分 */
	                        $integral = integral_to_give($order);
	                        log_account_change($order['user_id'], 0, 0, intval($integral['rank_points']), intval($integral['custom_points']), sprintf($_LANG['order_gift_integral'], $order['order_sn']));
	error_log('6',3,'flow.log');
	                        /* 发放红包 */
	                        send_order_bonus($order['order_id']);
	                    }
	                }
	            }
	        }
	
	    }
	
	    /* 清空购物车 */
	    clear_cart($flow_type);
	error_log('7',3,'flow.log');
	    /* 清除缓存,否则买了商品,但是前台页面读取缓存,商品数量不减少 */
	    clear_all_files();
	
	    /* 插入支付日志 */
	    //$order['log_id'] = insert_pay_log($new_order_id, $order['order_amount'], PAY_ORDER);
	
	   error_log('8',3,'flow.log'); 
		
		/*取得支付代码
	
		#取得支付信息,生成支付代码 
	    if ($order['order_amount'] > 0)
	    {
	        $payment = payment_info($order['pay_id']);
	
	        include_once('includes/modules/payment/' . $payment['pay_code'] . '.php');
	
	        $pay_obj    = new $payment['pay_code'];
	
	        $pay_online = $pay_obj->get_code($order, unserialize_config($payment['pay_config']));
	
	        $order['pay_desc'] = $payment['pay_desc'];
	
	        $smarty->assign('pay_online', $pay_online);
	    }
		*/
	
	    if(!empty($order['shipping_name']))
	    {
	        $order['shipping_name']=trim(stripcslashes($order['shipping_name']));
	    }
	error_log('9',3,'flow.log');
	    /*
		#订单信息
	    $smarty->assign('order',      $order);
	    $smarty->assign('total',      $total);
	    $smarty->assign('goods_list', $cart_goods);
	    $smarty->assign('order_submit_back', sprintf($_LANG['order_submit_back'], $_LANG['back_home'], $_LANG['goto_user_center'])); // 返回提示
		*/
	    //user_uc_call('add_feed', array($order['order_id'], BUY_GOODS)); //推送feed到uc
	    unset($_SESSION['flow_consignee']); // 清除session中保存的收货人信息
	    unset($_SESSION['flow_order']);
	    unset($_SESSION['direct_shopping']);
	
	
		$order_done = array('order'=>$order,'total'=>$total,'cart_goods'=>$cart_goods);
		//var_dump($order_done);exit;
	error_log('10',3,'flow.log');	
		$order_id = $order['order_id'];
		$price = $order['order_amount'];
		$order = array ('order_id'=>$order_id,'order_number'=>$order['order_sn'],'price'=>$price) ;
		error_log('11',3,'flow.log');
		//print_r($order);die;
		jsonExit($order);
		
	}
Esempio n. 20
0
 if ($checkcode != $orgCheckcode || empty($checkcode)) {
     echo 'nocheckcode';
     return;
 }
 $_SESSION['total_value'] = '';
 $needjifen = $usejifen ? Helper_Archive::getNeedJifen($jifentprice) : 0;
 $userinfo = $User->getInfoByMid($User->uid);
 //获取用户信息
 //这里再次判断用户积分是否满足条件.
 if ($userinfo['jifen'] < $needjifen) {
     $usejifen = 0;
     $needjifen = 0;
 }
 $productaid = Helper_Archive::pregReplace($productaid, 2);
 $suitid = Helper_Archive::pregReplace($suitid, 2);
 $ordersn = get_order_sn($typeid);
 //订单号
 $memberid = $User->uid ? $User->uid : 0;
 $row = TongYong::getProductInfo($productaid, $typeid);
 $suitinfo = TongYong::getSuitInfo($suitid);
 $status = $paytype == 1 ? 1 : 0;
 //'linktel'=>Helper_Archive::pregReplace($linktel,2);
 $arr = array('ordersn' => $ordersn, 'webid' => $webid, 'typeid' => $typeid, 'productautoid' => $row['articleid'], 'productaid' => $row['aid'], 'productname' => $row['title'], 'price' => $suitinfo['ourprice'], 'childprice' => 0, 'dingnum' => Helper_Archive::pregReplace($dingnum, 2), 'usedate' => $usedate, 'childnum' => 0, 'linkman' => Helper_Archive::pregReplace($linkman, 5), 'linktel' => Helper_Archive::pregReplace($linktel, 2), 'linkemail' => Helper_Archive::pregReplace($linkemail, 5), 'linkqq' => '', 'jifentprice' => $suitinfo['jifentprice'], 'jifenbook' => $suitinfo['jifenbook'], 'jifencomment' => $suitinfo['jifencomment'], 'addtime' => time(), 'memberid' => $memberid, 'dingjin' => Helper_Archive::pregReplace($dingjin, 5), 'paytype' => $paytype, 'usejifen' => $usejifen, 'needjifen' => $needjifen, 'status' => $status, 'remark' => Helper_Archive::pregReplace($remarkinfo, 5));
 if (Helper_Archive::addOrder($arr)) {
     $model = new CommonModule('#@__member_order');
     $orderid = $model->getField('id', "ordersn='{$ordersn}'");
     //判断是否开启在线支付
     if (!empty($choosepay) && $paytype != '3' && $choosepay != '6') {
         $url = $GLOBALS['cfg_basehost'] . '/' . $module_pinyin . '/booking.php?dopost=payonline&id=' . $orderid . '&paytype=' . $choosepay;
     } else {
         //是二次支付将跳转到订单咨询页面
 /**
  * 提交订单
  */
 public function submit_order()
 {
     /* 检查购物车中是否有商品 */
     if (count($_SESSION['wholesale_goods']) == 0) {
         show_message(L('no_goods_in_cart'));
     }
     /* 检查备注信息 */
     if (empty($_POST['remark'])) {
         show_message(L('ws_remark'));
     }
     /* 计算商品总额 */
     $goods_amount = 0;
     foreach ($_SESSION['wholesale_goods'] as $goods) {
         $goods_amount += $goods['subtotal'];
     }
     $order = array('postscript' => htmlspecialchars($_POST['remark']), 'user_id' => $_SESSION['user_id'], 'add_time' => gmtime(), 'order_status' => OS_UNCONFIRMED, 'shipping_status' => SS_UNSHIPPED, 'pay_status' => PS_UNPAYED, 'goods_amount' => $goods_amount, 'order_amount' => $goods_amount);
     /* 插入订单表 */
     $error_no = 0;
     do {
         $order['order_sn'] = get_order_sn();
         //获取新订单号
         $this->model->table('order_info')->data($order)->insert();
         $error_no = $this->model->errno();
         if ($error_no > 0 && $error_no != 1062) {
             die($this->model->errorMsg());
         }
     } while ($error_no == 1062);
     //如果是订单号重复则重新提交数据
     $new_order_id = $this->model->insert_id();
     $order['order_id'] = $new_order_id;
     /* 插入订单商品 */
     foreach ($_SESSION['wholesale_goods'] as $goods) {
         //如果存在货品
         $product_id = 0;
         if (!empty($goods['goods_attr_id'])) {
             $goods_attr_id = array();
             foreach ($goods['goods_attr_id'] as $value) {
                 $goods_attr_id[$value['attr_id']] = $value['attr_val_id'];
             }
             ksort($goods_attr_id);
             $goods_attr = implode('|', $goods_attr_id);
             $res = $this->model->table('products')->field('product_id')->where("goods_attr = '{$goods_attr}' AND goods_id = '" . $goods['goods_id'] . "'")->find();
             $product_id = $res['product_id'];
         }
         $sql = "INSERT INTO " . $this->model->pre . "order_goods( " . "order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift) " . " SELECT '{$new_order_id}', goods_id, goods_name, goods_sn, '{$product_id}','{$goods['goods_number']}', market_price, " . "'{$goods['goods_price']}', '{$goods['goods_attr']}', is_real, extension_code, 0, 0 " . " FROM " . $this->model->pre . "goods WHERE goods_id = '{$goods['goods_id']}'";
         $this->model->query($sql);
     }
     /* 给商家发邮件 */
     if (C('service_email') != '') {
         $tpl = get_mail_template('remind_of_new_order');
         $this->assign('order', $order);
         $this->assign('shop_name', C('shop_name'));
         $this->assign('send_date', date(C('time_format')));
         $content = ECTouch::view()->fetch('str:' . $tpl['template_content']);
         send_mail(C('shop_name'), C('service_email'), $tpl['template_subject'], $content, $tpl['is_html']);
     }
     /* 如果需要,发短信 */
     if (C('sms_order_placed') == '1' && C('sms_shop_mobile') != '') {
         $sms = new EcsSms();
         $msg = L('order_placed_sms');
         $sms->send(C('sms_shop_mobile'), sprintf($msg, $order['consignee'], $order['mobile']), '', 13, 1);
     }
     /* 清空购物车 */
     unset($_SESSION['wholesale_goods']);
     /* 提示 */
     show_message(sprintf(L('ws_order_submitted'), $order['order_sn']), L('ws_return_home'), url('index'));
 }
Esempio n. 22
0
 public function create_order($hongbao)
 {
     $total_amount = $hongbao['total_amount'] - $hongbao['total_amount'] * 0.02;
     $total_num = $hongbao['total_num'];
     $order_total_amount = 0;
     for ($i = 0; $i < $total_num; $i++) {
         #$order_total_amount = $total_amount - $total_amount;
         $amount = $this->get_order_amount($total_amount - $order_total_amount, $total_num - $i);
         $data = array('bao_id' => $hongbao['id'], 'bao_user_id' => $hongbao['user_id'], 'bao_openid' => $hongbao['openid'], 'from_bao_id' => $hongbao['from_bao_id'], 'from_openid' => $hongbao['from_openid'], 'from_number_no' => $hongbao['from_number_no'], 'from_user_id' => $hongbao['from_user_id'], 'number_no' => $hongbao['number_no'], 'order_sn' => get_order_sn('HB'), 'amount' => $amount, 'addtime' => time(), 'state' => 1, 'openid' => '', 'user_id' => 0);
         M('bao_order')->add($data);
         $order_total_amount += $amount;
     }
 }
Esempio n. 23
0
 /**
  *  提交订单
  */
 public function done()
 {
     /* 取得购物类型 */
     $flow_type = isset($_SESSION['flow_type']) ? intval($_SESSION['flow_type']) : CART_GENERAL_GOODS;
     /* 检查购物车中是否有商品 */
     $condition = " session_id = '" . SESS_ID . "' " . "AND parent_id = 0 AND is_gift = 0 AND rec_type = '{$flow_type}'";
     $count = $this->model->table('cart')->field('COUNT(*)')->where($condition)->getOne();
     if ($count == 0) {
         show_message(L('no_goods_in_cart'), '', '', 'warning');
     }
     /* 如果使用库存,且下订单时减库存,则减少库存 */
     if (C('use_storage') == '1' && C('stock_dec_time') == SDT_PLACE) {
         $cart_goods_stock = model('Order')->get_cart_goods();
         $_cart_goods_stock = array();
         foreach ($cart_goods_stock['goods_list'] as $value) {
             $_cart_goods_stock[$value['rec_id']] = $value['goods_number'];
         }
         model('Flow')->flow_cart_stock($_cart_goods_stock);
         unset($cart_goods_stock, $_cart_goods_stock);
     }
     // 检查用户是否已经登录 如果用户已经登录了则检查是否有默认的收货地址 如果没有登录则跳转到登录和注册页面
     if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0) {
         /* 用户没有登录且没有选定匿名购物,转向到登录页面 */
         ecs_header("Location: " . url('user/login') . "\n");
     }
     // 获取收货人信息
     $consignee = model('Order')->get_consignee($_SESSION['user_id']);
     /* 检查收货人信息是否完整 */
     if (!model('Order')->check_consignee_info($consignee, $flow_type)) {
         /* 如果不完整则转向到收货人信息填写界面 */
         ecs_header("Location: " . url('flow/consignee') . "\n");
     }
     // 处理接收信息
     $how_oos = I('post.how_oos', 0);
     $inv_type = I('post.inv_type', '');
     $inv_payee = I('post.inv_payee', '');
     $inv_content = I('post.inv_content', '');
     $postscript = I('post.postscript', '');
     $oos = L('oos.' . $how_oos);
     // 订单信息
     $order = array('shipping_id' => I('post.shipping'), 'pay_id' => I('post.payment'), 'surplus' => isset($_POST['surplus']) ? floatval($_POST['surplus']) : 0.0, 'integral' => isset($_POST['integral']) ? intval($_POST['integral']) : 0, 'need_inv' => empty($_POST['need_inv']) ? 0 : 1, 'inv_type' => $_POST['inv_type'], 'inv_payee' => trim($_POST['inv_payee']), 'inv_content' => $_POST['inv_content'], 'postscript' => trim($_POST['postscript']), 'how_oos' => isset($oos) ? addslashes("{$oos}") : '', 'need_insure' => isset($_POST['need_insure']) ? intval($_POST['need_insure']) : 0, 'user_id' => $_SESSION['user_id'], 'add_time' => gmtime(), 'order_status' => OS_UNCONFIRMED, 'shipping_status' => SS_UNSHIPPED, 'pay_status' => PS_UNPAYED, 'agency_id' => model('Order')->get_agency_by_regions(array($consignee['country'], $consignee['province'], $consignee['city'], $consignee['district'])), 'mobile_order' => 1, 'mobile_pay' => 1);
     /* 扩展信息 */
     if (isset($_SESSION['flow_type']) && intval($_SESSION['flow_type']) != CART_GENERAL_GOODS) {
         $order['extension_code'] = $_SESSION['extension_code'];
         $order['extension_id'] = $_SESSION['extension_id'];
     } else {
         $order['extension_code'] = '';
         $order['extension_id'] = 0;
     }
     /* 检查积分余额是否合法 */
     $user_id = $_SESSION['user_id'];
     if ($user_id > 0) {
         $user_info = model('Order')->user_info($user_id);
         $order['surplus'] = min($order['surplus'], $user_info['user_money'] + $user_info['credit_line']);
         if ($order['surplus'] < 0) {
             $order['surplus'] = 0;
         }
         // 查询用户有多少积分
         $flow_points = model('Flow')->flow_available_points();
         // 该订单允许使用的积分
         $user_points = $user_info['pay_points'];
         // 用户的积分总数
         $order['integral'] = min($order['integral'], $user_points, $flow_points);
         if ($order['integral'] < 0) {
             $order['integral'] = 0;
         }
     } else {
         $order['surplus'] = 0;
         $order['integral'] = 0;
     }
     /* 订单中的商品 */
     $cart_goods = model('Order')->cart_goods($flow_type);
     if (empty($cart_goods)) {
         show_message(L('no_goods_in_cart'), L('back_home'), './', 'warning');
     }
     /* 检查商品总额是否达到最低限购金额 */
     if ($flow_type == CART_GENERAL_GOODS && model('Order')->cart_amount(true, CART_GENERAL_GOODS) < C('min_goods_amount')) {
         show_message(sprintf(L('goods_amount_not_enough'), price_format(C('min_goods_amount'), false)));
     }
     /* 收货人信息 */
     foreach ($consignee as $key => $value) {
         $order[$key] = addslashes($value);
     }
     /* 判断是不是实体商品 */
     foreach ($cart_goods as $val) {
         /* 统计实体商品的个数 */
         if ($val['is_real']) {
             $is_real_good = 1;
         }
     }
     if (isset($is_real_good)) {
         $res = $this->model->table('shipping')->field('shipping_id')->where("shipping_id=" . $order['shipping_id'] . " AND enabled =1")->getOne();
         if (!$res) {
             show_message(L('flow_no_shipping'));
         }
     }
     /* 订单中的总额 */
     $total = model('Users')->order_fee($order, $cart_goods, $consignee);
     $order['goods_amount'] = $total['goods_price'];
     $order['discount'] = $total['discount'];
     $order['surplus'] = $total['surplus'];
     $order['tax'] = $total['tax'];
     // 购物车中的商品能享受红包支付的总额
     $discount_amout = model('Order')->compute_discount_amount();
     // 红包和积分最多能支付的金额为商品总额
     $temp_amout = $order['goods_amount'] - $discount_amout;
     /* 配送方式 */
     if ($order['shipping_id'] > 0) {
         $shipping = model('Shipping')->shipping_info($order['shipping_id']);
         $order['shipping_name'] = addslashes($shipping['shipping_name']);
     }
     $order['shipping_fee'] = $total['shipping_fee'];
     $order['insure_fee'] = $total['shipping_insure'];
     /* 支付方式 */
     if ($order['pay_id'] > 0) {
         $payment = model('Order')->payment_info($order['pay_id']);
         $order['pay_name'] = addslashes($payment['pay_name']);
     }
     $order['pay_fee'] = $total['pay_fee'];
     $order['cod_fee'] = $total['cod_fee'];
     $order['order_amount'] = number_format($total['amount'], 2, '.', '');
     /* 如果全部使用余额支付,检查余额是否足够 */
     if ($payment['pay_code'] == 'balance' && $order['order_amount'] > 0) {
         if ($order['surplus'] > 0) {
             // 余额支付里如果输入了一个金额
             $order['order_amount'] = $order['order_amount'] + $order['surplus'];
             $order['surplus'] = 0;
         }
         if ($order['order_amount'] > $user_info['user_money'] + $user_info['credit_line']) {
             show_message(L('balance_not_enough'));
         } else {
             $order['surplus'] = $order['order_amount'];
             $order['order_amount'] = 0;
         }
     }
     /* 如果订单金额为0(使用余额或积分或红包支付),修改订单状态为已确认、已付款 */
     if ($order['order_amount'] <= 0) {
         $order['order_status'] = OS_CONFIRMED;
         $order['confirm_time'] = gmtime();
         $order['pay_status'] = PS_PAYED;
         $order['pay_time'] = gmtime();
         $order['order_amount'] = 0;
     }
     $order['integral_money'] = $total['integral_money'];
     $order['integral'] = $total['integral'];
     if ($order['extension_code'] == 'exchange_goods') {
         $order['integral_money'] = 0;
         $order['integral'] = $total['exchange_integral'];
     }
     $order['from_ad'] = !empty($_SESSION['from_ad']) ? $_SESSION['from_ad'] : '0';
     $order['referer'] = !empty($_SESSION['referer']) ? addslashes($_SESSION['referer']) : '';
     /* 记录扩展信息 */
     if ($flow_type != CART_GENERAL_GOODS) {
         $order['extension_code'] = $_SESSION['extension_code'];
         $order['extension_id'] = $_SESSION['extension_id'];
     }
     $affiliate = unserialize(C('affiliate'));
     if (isset($affiliate['on']) && $affiliate['on'] == 1 && $affiliate['config']['separate_by'] == 1) {
         // 推荐订单分成
         $parent_id = model('Users')->get_affiliate();
         if ($user_id == $parent_id) {
             $parent_id = 0;
         }
     } elseif (isset($affiliate['on']) && $affiliate['on'] == 1 && $affiliate['config']['separate_by'] == 0) {
         // 推荐注册分成
         $parent_id = 0;
     } else {
         // 分成功能关闭
         $parent_id = 0;
     }
     $order['parent_id'] = $parent_id;
     //分销 start
     $parent_id = model('Sale')->get_parent_id($parent_id);
     $order['parent_id'] = $parent_id;
     /* 插入订单表 */
     $error_no = 0;
     do {
         $order['order_sn'] = get_order_sn();
         // 获取新订单号
         $new_order = model('Common')->filter_field('order_info', $order);
         $this->model->table('order_info')->data($new_order)->insert();
         $error_no = M()->errno();
         if ($error_no > 0 && $error_no != 1062) {
             die(M()->errorMsg());
         }
     } while ($error_no == 1062);
     // 如果是订单号重复则重新提交数据
     $new_order_id = M()->insert_id();
     $order['order_id'] = $new_order_id;
     /* 插入订单商品 */
     $sql = "INSERT INTO " . $this->model->pre . "order_goods( " . "order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) " . " SELECT '{$new_order_id}', goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id" . " FROM " . $this->model->pre . "cart WHERE session_id = '" . SESS_ID . "' AND rec_type = '{$flow_type}'";
     $this->model->query($sql);
     /* 处理余额、积分、红包 */
     if ($order['user_id'] > 0 && $order['surplus'] > 0) {
         model('ClipsBase')->log_account_change($order['user_id'], $order['surplus'] * -1, 0, 0, 0, sprintf(L('pay_order'), $order['order_sn']));
     }
     if ($order['user_id'] > 0 && $order['integral'] > 0) {
         model('ClipsBase')->log_account_change($order['user_id'], 0, 0, 0, $order['integral'] * -1, sprintf(L('pay_order'), $order['order_sn']));
     }
     /* 如果使用库存,且下订单时减库存,则减少库存 */
     if (C('use_storage') == '1' && C('stock_dec_time') == SDT_PLACE) {
         model('Order')->change_order_goods_storage($order['order_id'], true, SDT_PLACE);
     }
     /* 给商家发邮件 */
     /* 增加是否给客服发送邮件选项 */
     if (C('send_service_email') && C('service_email') != '') {
         $tpl = model('Base')->get_mail_template('remind_of_new_order');
         $this->assign('order', $order);
         $this->assign('goods_list', $cart_goods);
         $this->assign('shop_name', C('shop_name'));
         $this->assign('send_date', date(C('time_format')));
         $content = ECTouch::$view->fetch('str:' . $tpl['template_content']);
         send_mail(C('shop_name'), C('service_email'), $tpl['template_subject'], $content, $tpl['is_html']);
     }
     /* 如果需要,发短信 */
     if (C('sms_order_placed') == '1' && C('sms_shop_mobile') != '') {
         $sms = new EcsSms();
         $msg = $order['pay_status'] == PS_UNPAYED ? L('order_placed_sms') : L('order_placed_sms') . '[' . L('sms_paid') . ']';
         $sms->send(C('sms_shop_mobile'), sprintf($msg, $order['consignee'], $order['mobile']), '', 13, 1);
     }
     /* 如果需要,微信通知 by wanglu */
     if (method_exists('WechatController', 'do_oauth')) {
         $order_url = __HOST__ . url('user/order_detail', array('order_id' => $order['order_id']));
         $order_url = urlencode(base64_encode($order_url));
         send_wechat_message('order_remind', '', $order['order_sn'] . L('order_effective'), $order_url, $order['order_sn']);
     }
     /* 如果订单金额为0 处理虚拟卡 */
     if ($order['order_amount'] <= 0) {
         $sql = "SELECT goods_id, goods_name, goods_number AS num FROM " . $this->model->pre . "cart WHERE is_real = 0 AND extension_code = 'virtual_card'" . " AND session_id = '" . SESS_ID . "' AND rec_type = '{$flow_type}'";
         $res = $this->model->query($sql);
         $virtual_goods = array();
         foreach ($res as $row) {
             $virtual_goods['virtual_card'][] = array('goods_id' => $row['goods_id'], 'goods_name' => $row['goods_name'], 'num' => $row['num']);
         }
         if ($virtual_goods) {
             /* 虚拟卡发货 */
             if (model('OrderBase')->virtual_goods_ship($virtual_goods, $msg, $order['order_sn'], true)) {
                 /* 如果没有实体商品,修改发货状态,送积分和红包 */
                 $count = $this->model->table('order_goods')->field('COUNT(*)')->where("order_id = '{$order['order_id']}' " . " AND is_real = 1")->getOne();
                 if ($count <= 0) {
                     /* 修改订单状态 */
                     model('Users')->update_order($order['order_id'], array('shipping_status' => SS_SHIPPED, 'shipping_time' => gmtime()));
                     /* 如果订单用户不为空,计算积分,并发给用户;发红包 */
                     if ($order['user_id'] > 0) {
                         /* 取得用户信息 */
                         $user = model('Order')->user_info($order['user_id']);
                         /* 计算并发放积分 */
                         $integral = model('Order')->integral_to_give($order);
                         model('ClipsBase')->log_account_change($order['user_id'], 0, 0, intval($integral['rank_points']), intval($integral['custom_points']), sprintf(L('order_gift_integral'), $order['order_sn']));
                     }
                 }
             }
         }
     }
     // 销量
     model('Flow')->add_touch_goods($flow_type, $order['extension_code']);
     /* 记录供应商信息 */
     $sql = "update " . $this->model->pre . "order_goods og , " . $this->model->pre . "goods g set og.suppliers_id=g.suppliers_id\r\n            where og.goods_id=g.goods_id and og.order_id='" . $order['order_id'] . "'";
     $this->model->query($sql);
     /* 清空购物车 */
     model('Order')->clear_cart($flow_type);
     /* 清除缓存,否则买了商品,但是前台页面读取缓存,商品数量不减少 */
     clear_all_files();
     /* 插入支付日志 */
     $order['log_id'] = model('ClipsBase')->insert_pay_log($new_order_id, $order['order_amount'], PAY_ORDER);
     /* 取得支付信息,生成支付代码 */
     if ($order['order_amount'] > 0) {
         $payment = model('Order')->payment_info($order['pay_id']);
         include_once ROOT_PATH . 'plugins/payment/' . $payment['pay_code'] . '.php';
         $pay_obj = new $payment['pay_code']();
         $pay_online = $pay_obj->get_code($order, unserialize_config($payment['pay_config']));
         $order['pay_desc'] = $payment['pay_desc'];
         $this->assign('pay_online', $pay_online);
     }
     if (!empty($order['shipping_name'])) {
         $order['shipping_name'] = trim(stripcslashes($order['shipping_name']));
     }
     // 货到付款不显示
     if ($payment['pay_code'] != 'balance') {
         /* 生成订单后,修改支付,配送方式 */
         // 支付方式
         $payment_list = model('Order')->available_payment_list(0);
         if (isset($payment_list)) {
             foreach ($payment_list as $key => $payment) {
                 /* 如果有易宝神州行支付 如果订单金额大于300 则不显示 */
                 if ($payment['pay_code'] == 'yeepayszx' && $total['amount'] > 300) {
                     unset($payment_list[$key]);
                 }
                 // 过滤掉当前的支付方式
                 if ($payment['pay_id'] == $order['pay_id']) {
                     unset($payment_list[$key]);
                 }
                 /* 如果有余额支付 */
                 if ($payment['pay_code'] == 'balance') {
                     /* 如果未登录,不显示 */
                     if ($_SESSION['user_id'] == 0) {
                         unset($payment_list[$key]);
                     } else {
                         if ($_SESSION['flow_order']['pay_id'] == $payment['pay_id']) {
                             $this->assign('disable_surplus', 1);
                         }
                     }
                 }
                 // 如果不是微信浏览器访问并且不是微信会员 则不显示微信支付
                 if ($payment['pay_code'] == 'wxpay' && !is_wechat_browser() && empty($_SESSION['openid'])) {
                     unset($payment_list[$key]);
                 }
                 // 兼容过滤ecjia支付方式
                 if (substr($payment['pay_code'], 0, 4) == 'pay_') {
                     unset($payment_list[$key]);
                 }
             }
         }
         $this->assign('payment_list', $payment_list);
         $this->assign('pay_code', 'no_balance');
     }
     // 如果是银行汇款或货到付款 则显示支付描述
     if ($payment['pay_code'] == 'bank' || $payment['pay_code'] == 'cod') {
         if (empty($order['pay_name'])) {
             $order['pay_name'] = trim(stripcslashes($payment['pay_name']));
         }
         $this->assign('pay_desc', $order['pay_desc']);
     }
     /* 订单信息 */
     $this->assign('order', $order);
     $this->assign('total', $total);
     $this->assign('goods_list', $cart_goods);
     $this->assign('order_submit_back', sprintf(L('order_submit_back'), L('back_home'), L('goto_user_center')));
     // 返回提示
     user_uc_call('add_feed', array($order['order_id'], BUY_GOODS));
     // 推送feed到uc
     unset($_SESSION['flow_consignee']);
     // 清除session中保存的收货人信息
     unset($_SESSION['flow_order']);
     unset($_SESSION['direct_shopping']);
     $this->assign('currency_format', C('currency_format'));
     $this->assign('integral_scale', C('integral_scale'));
     $this->assign('step', ACTION_NAME);
     $this->assign('title', L('order_submit'));
     $this->display('flow.dwt');
 }
Esempio n. 24
0
/**
 *提交获奖感言
*/
function submitmyspeech($cmt, $user_id)
{
    require_once ROOT_PATH . 'includes/lib_order.php';
    $id = $cmt->id;
    $speech = $cmt->speech;
    $address = $cmt->address;
    $tel = $cmt->tel;
    $name = $cmt->name;
    $province = $cmt->province;
    $city = $cmt->city;
    $district = $cmt->district;
    $email = $cmt->email;
    $goods_id = $cmt->goods_id;
    //下订单
    $order_sn = get_order_sn();
    $shipping_id = 8;
    $shipping_name = "圆通快递";
    $shipping_fee = 0.0;
    $order_amount = $shipping_fee;
    $pay_id = 1;
    $pay_name = "余额支付";
    $sql = 'INSERT INTO ' . $GLOBALS['ecs']->table('order_info') . ' (`order_sn`, `user_id`,`consignee`, `country`, `province`,`city`, `district`, `address`,  ' . '`tel`, `email`,`shipping_id`, `shipping_name`,`pay_id`, `pay_name`, `how_oos`, `goods_amount`,' . ' `shipping_fee`,`order_amount`,`referer`, `add_time`) VALUES ("' . $order_sn . '",' . $user_id . ',"' . $name . '",1,' . $province . ',' . $city . ',' . $district . ',"' . $address . '","' . $tel . '","' . $email . '",' . $shipping_id . ',"' . $shipping_name . '",' . $pay_id . ',"' . $pay_name . '","等待所有商品备齐后再发",0.00,' . $shipping_fee . ',' . $order_amount . ',"本站",' . gmtime() . ')';
    $GLOBALS['db']->query($sql);
    $sql = 'select max(order_id) from ' . $GLOBALS['ecs']->table('order_info');
    $order_id = $GLOBALS['db']->getOne($sql);
    $sql = 'select * from ' . $GLOBALS['ecs']->table('goods') . ' where goods_id = ' . $goods_id;
    $goods = $GLOBALS['db']->getRow($sql);
    //获奖商品信息
    $sql = 'INSERT INTO ' . $GLOBALS['ecs']->table('order_goods') . ' (`order_id`, `goods_id`, `goods_name`, `goods_sn`, `market_price`, `goods_price`, `is_real`) VALUES (' . $order_id . ',' . $goods_id . ',"' . $goods['goods_name'] . '(抽奖获奖品)","' . $goods['goods_sn'] . '",' . $goods['market_price'] . ',0.00,1)';
    $GLOBALS['db']->query($sql);
    $province = get_region_name($province);
    $city = get_region_name($city);
    $district = get_region_name($district);
    $address = $name . ',' . $address . ',' . $email;
    $address1 = $province . $city . $district;
    //修改获奖状态为已申请
    $sql = "update " . $GLOBALS['ecs']->table('lottery_user') . " set speech='{$speech}', address1='{$address1}',address='{$address}', tel='{$tel}' ,order_id = '{$order_id}',gettime='" . gmtime() . "',ip = '" . real_ip() . "',applystatus=1 where id='{$id}' and user_id='{$user_id}'";
    $GLOBALS['db']->query($sql);
    return "1";
}
Esempio n. 25
0
$order['discount'] = '';
$order['tax'] = 0;
$order['shipping_name'] = $_REQUEST['shipping_name'];
$order['shipping_fee'] = $_REQUEST['shipping_fee'];
$order['insure_fee'] = 0;
$order['pay_name'] = $_REQUEST['pay_name'];
$order['pay_fee'] = 0;
$order['cod_fee'] = 0;
$order['pack_fee'] = 0;
$order['card_fee'] = 0;
$order['order_amount'] = $order_amount;
$order['integral_money'] = $integral_meny;
$order['from_ad'] = 0;
$order['referer'] = "本站";
$order['parent_id'] = 0;
$order_sn = get_order_sn();
//获取新订单号
$order['order_sn'] = $order_sn;
//获取新订单号
$sql = "SELECT `pay_code` FROM " . $ecs->table('payment') . " WHERE `pay_id`=" . $order['pay_id'];
$pay_code = $db->getOne($sql);
if ($pay_code == 'balance') {
    $sql = "SELECT `user_money` FROM " . $ecs->table('users') . " WHERE `user_id`='{$uid}'";
    $user_money = $db->getOne($sql);
    if ($user_money > $order_amount) {
        $sql = "UPDATE " . $ecs->table('users') . " SET `user_money`=`user_money`-{$order_amount} WHERE `user_id`='{$uid}'";
        $db->query($sql);
        $order['order_status'] = 1;
        $order['pay_status'] = 2;
    }
}
Esempio n. 26
0
 function sendhonebao()
 {
     $msg = "你的凑红包成功啦!\n众筹进度:¥200元\n红包将会在1~3个工作内,通过微信红包打给你.";
     echo strlen($msg) . "<br/>";
     $r = sendHongBao(array('mch_billno' => get_order_sn(), 'send_name' => '凑红包', 're_openid' => 'obb1AuBzVPvw8NE8UZ2gc0web854', 'total_amount' => '100', 'wishing' => $msg, 'act_name' => '测试红包', 'remark' => '凑红包'));
     var_dump($r);
 }
Esempio n. 27
0
/**
* 生成代理商余额流水账(消费者在代理商站点购物)
* time :2014-05-21
* author:hg
**/
function agency_order_log($order_id, $admin_agency_id, $user_id = '', $goods_amount)
{
    if (!$goods_amount) {
        return false;
    }
    $arr['agency_order_sn'] = get_order_sn();
    $arr['order_id'] = $order_id;
    $arr['agency_id'] = $admin_agency_id;
    $arr['user_id'] = $user_id ? $user_id : '0';
    $arr['order_amount'] = $goods_amount;
    $result = $GLOBALS['db']->getOne("select order_id from " . $GLOBALS['ecs']->table('agency_pay_log') . " where order_id = {$order_id}");
    if (!$result) {
        do {
            $arr['agency_order_sn'] = get_order_sn();
            //获取新订单号
            $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('agency_pay_log'), $arr, 'INSERT');
            $error_no = $GLOBALS['db']->errno();
            if ($error_no > 0 && $error_no != 1062) {
                die($GLOBALS['db']->errorMsg());
            }
        } while ($error_no == 1062);
        //如果是订单号重复则重新提交数据
    } else {
        $GLOBALS['db']->query("UPDATE " . $GLOBALS['ecs']->table('agency_pay_log') . " SET order_amount = order_amount + ('{$goods_amount}') WHERE order_id = {$order_id} LIMIT 1");
    }
    subtract_agency_amount($admin_agency_id, $user_id, $goods_amount, $status = '1');
}
Esempio n. 28
0
 function sendhongbao()
 {
     header("Content-type:text/html;charset=utf-8");
     // 设置过期
     $list = M('hongbao')->where(array('state' => 1, 'addtime' => array('lt', time() - 86400)))->select();
     foreach ($list as $item) {
         // 设置过期
         M('hongbao')->where(array('id' => $item['id']))->save(array('state' => 3));
     }
     $hongbao_list = M('hongbao')->where(array('state' => 2, 'is_send_hongbao' => 0))->select();
     foreach ($hongbao_list as $hongbao) {
         $hongbao_send = M('hongbao_send')->where(array('id' => $hongbao['hongbao_id']))->find();
         if (!$hongbao_send) {
             $bao = array('mch_billno' => get_order_sn(), 'send_name' => '凑红包', 're_openid' => $hongbao['openid'], 'total_amount' => floor($hongbao['total_amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在凑红包发起的凑红包已经完成。', 'act_name' => '凑红包', 'remark' => '凑红包');
             $send = $bao;
             $send['user_id'] = $hongbao['user_id'];
             $send['addtime'] = time();
             $hongbao_id = M('hongbao_send')->add($send);
             if ($hongbao_id) {
                 M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('hongbao_id' => $hongbao_id, 'hongbao_sn' => $bao['mch_billno'], 'hongbao_time' => time()));
                 $hongbao_send = M('hongbao_send')->find($hongbao_id);
             }
         }
         // 发送红包
         if ($hongbao_send) {
             $bao = array('mch_billno' => $hongbao_send['mch_billno'], 'send_name' => '凑红包', 're_openid' => $hongbao['openid'], 'total_amount' => floor($hongbao['total_amount'] * 0.98 * 100), 'wishing' => '恭喜您!您在凑红包发起的凑红包已经完成。', 'act_name' => '凑红包', 'remark' => '凑红包');
             $data = sendHongBao($bao);
             if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') {
                 M('hongbao')->where(array("id='{$hongbao['id']}'"))->save(array('is_send_hongbao' => 1));
                 M('hongbao_send')->where(array("id='{$hongbao_send['id']}'"))->save(array('state' => 2, 'send_listid' => $data['send_listid']));
                 // 幸运星
                 $star = M('hongbao_order')->where(array('hongbao_id' => $hongbao['id'], 'is_star' => 1))->find();
                 if (!$star) {
                     $list = M('hongbao_order')->where("hongbao_id='{$hongbao['id']}' AND state=2")->select();
                     if ($list) {
                         $ids = array();
                         foreach ($list as $r) {
                             $ids[] = $r['id'];
                         }
                         shuffle($ids);
                         $k = array_rand($ids);
                         $id = $ids[$k];
                         if ($id) {
                             $order_info = M('hongbao_order')->find($id);
                             $user_info = M('user')->find($order_info['user_id']);
                             M('hongbao_order')->where("id='{$id}'")->save(array('is_star' => 1));
                         }
                     }
                 } else {
                     $user_info = M('user')->find($star['user_id']);
                 }
                 $user_amount = number_format($hongbao['total_amount'] * 0.98, 2);
                 $msg = "你发起的凑红包成功啦!\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n幸运星:{$user_info['name']}\n\n红包已经通过微信红包打给你,其中已扣除2%微信支付手续费,扣除后金额为{$user_amount}元";
                 \Wechat\Wxapi::send_wxmsg($hongbao['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                 $msg = "幸运星就是你!没想到吧\n\n众筹标题:{$hongbao['remark']}\n\n众筹进度:¥{$hongbao['total_amount']}已成功!\n\n快找发起人要福利吧 :D";
                 \Wechat\Wxapi::send_wxmsg($user_info['openid'], '众筹状态提醒', U('/cou/hongbao/detail', array('id' => $hongbao['number_no']), true, true), $msg);
                 $log = "发送红包成功, 红包编号:{$hongbao['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/hongbao.log');
                 echo $log . "<br/>";
             } else {
                 $log = "发送红包失败, 红包编号:{$hongbao['id']},发送编号:{$hongbao_send['id']}";
                 f_log($log, ROOT_PATH . 'Runtime/Logs/hongbao.log');
                 echo $log . "<br/>";
                 print_r($data);
             }
             sleep(5);
         }
     }
     die('ok');
 }
Esempio n. 29
0
/**
 * 合并订单
 * @param   string  $from_order_sn  从订单号
 * @param   string  $to_order_sn    主订单号
 * @return  成功返回true,失败返回错误信息
 */
function merge_order($from_order_sn, $to_order_sn)
{
    /* 订单号不能为空 */
    if (trim($from_order_sn) == '' || trim($to_order_sn) == '') {
        return $GLOBALS['_LANG']['order_sn_not_null'];
    }
    /* 订单号不能相同 */
    if ($from_order_sn == $to_order_sn) {
        return $GLOBALS['_LANG']['two_order_sn_same'];
    }
    /* 取得订单信息 */
    $from_order = order_info(0, $from_order_sn);
    $to_order = order_info(0, $to_order_sn);
    /* 检查订单是否存在 */
    if (!$from_order) {
        return sprintf($GLOBALS['_LANG']['order_not_exist'], $from_order_sn);
    } elseif (!$to_order) {
        return sprintf($GLOBALS['_LANG']['order_not_exist'], $to_order_sn);
    }
    /* 检查合并的订单是否为普通订单,非普通订单不允许合并 */
    if ($from_order['extension_code'] != '' || $to_order['extension_code'] != 0) {
        return $GLOBALS['_LANG']['merge_invalid_order'];
    }
    /* 检查订单状态是否是已确认或未确认、未付款、未发货 */
    if ($from_order['order_status'] != OS_UNCONFIRMED && $from_order['order_status'] != OS_CONFIRMED) {
        return sprintf($GLOBALS['_LANG']['os_not_unconfirmed_or_confirmed'], $from_order_sn);
    } elseif ($from_order['pay_status'] != PS_UNPAYED) {
        return sprintf($GLOBALS['_LANG']['ps_not_unpayed'], $from_order_sn);
    } elseif ($from_order['shipping_status'] != SS_UNSHIPPED) {
        return sprintf($GLOBALS['_LANG']['ss_not_unshipped'], $from_order_sn);
    }
    if ($to_order['order_status'] != OS_UNCONFIRMED && $to_order['order_status'] != OS_CONFIRMED) {
        return sprintf($GLOBALS['_LANG']['os_not_unconfirmed_or_confirmed'], $to_order_sn);
    } elseif ($to_order['pay_status'] != PS_UNPAYED) {
        return sprintf($GLOBALS['_LANG']['ps_not_unpayed'], $to_order_sn);
    } elseif ($to_order['shipping_status'] != SS_UNSHIPPED) {
        return sprintf($GLOBALS['_LANG']['ss_not_unshipped'], $to_order_sn);
    }
    /* 检查订单用户是否相同 */
    if ($from_order['user_id'] != $to_order['user_id']) {
        return $GLOBALS['_LANG']['order_user_not_same'];
    }
    /* 合并订单 */
    $order = $to_order;
    $order['order_id'] = '';
    $order['add_time'] = gmtime();
    // 合并商品总额
    $order['goods_amount'] += $from_order['goods_amount'];
    // 合并折扣
    $order['discount'] += $from_order['discount'];
    if ($order['shipping_id'] > 0) {
        // 重新计算配送费用
        $weight_price = order_weight_price($to_order['order_id']);
        $from_weight_price = order_weight_price($from_order['order_id']);
        $weight_price['weight'] += $from_weight_price['weight'];
        $weight_price['amount'] += $from_weight_price['amount'];
        $weight_price['number'] += $from_weight_price['number'];
        $region_id_list = array($order['country'], $order['province'], $order['city'], $order['district']);
        $shipping_area = shipping_area_info($order['shipping_id'], $region_id_list);
        $order['shipping_fee'] = shipping_fee($shipping_area['shipping_code'], unserialize($shipping_area['configure']), $weight_price['weight'], $weight_price['amount'], $weight_price['number']);
        // 如果保价了,重新计算保价费
        if ($order['insure_fee'] > 0) {
            $order['insure_fee'] = shipping_insure_fee($shipping_area['shipping_code'], $order['goods_amount'], $shipping_area['insure']);
        }
    }
    // 重新计算包装费、贺卡费
    if ($order['pack_id'] > 0) {
        $pack = pack_info($order['pack_id']);
        $order['pack_fee'] = $pack['free_money'] > $order['goods_amount'] ? $pack['pack_fee'] : 0;
    }
    if ($order['card_id'] > 0) {
        $card = card_info($order['card_id']);
        $order['card_fee'] = $card['free_money'] > $order['goods_amount'] ? $card['card_fee'] : 0;
    }
    // 红包不变,合并积分、余额、已付款金额
    $order['integral'] += $from_order['integral'];
    $order['integral_money'] = value_of_integral($order['integral']);
    $order['surplus'] += $from_order['surplus'];
    $order['money_paid'] += $from_order['money_paid'];
    // 计算应付款金额(不包括支付费用)
    $order['order_amount'] = $order['goods_amount'] - $order['discount'] + $order['shipping_fee'] + $order['insure_fee'] + $order['pack_fee'] + $order['card_fee'] - $order['bonus'] - $order['integral_money'] - $order['surplus'] - $order['money_paid'];
    // 重新计算支付费
    if ($order['pay_id'] > 0) {
        // 货到付款手续费
        $cod_fee = $shipping_area ? $shipping_area['pay_fee'] : 0;
        $order['pay_fee'] = pay_fee($order['pay_id'], $order['order_amount'], $cod_fee);
        // 应付款金额加上支付费
        $order['order_amount'] += $order['pay_fee'];
    }
    /* 插入订单表 */
    do {
        $order['order_sn'] = get_order_sn();
        if ($GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'), addslashes_deep($order), 'INSERT')) {
            break;
        } else {
            if ($GLOBALS['db']->errno() != 1062) {
                die($GLOBALS['db']->errorMsg());
            }
        }
    } while (true);
    // 防止订单号重复
    /* 订单号 */
    $order_id = $GLOBALS['db']->insert_id();
    /* 更新订单商品 */
    $sql = 'UPDATE ' . $GLOBALS['ecs']->table('order_goods') . " SET order_id = '{$order_id}' " . "WHERE order_id " . db_create_in(array($from_order['order_id'], $to_order['order_id']));
    $GLOBALS['db']->query($sql);
    include_once ROOT_PATH . 'includes/lib_clips.php';
    /* 插入支付日志 */
    insert_pay_log($order_id, $order['order_amount'], PAY_ORDER);
    /* 删除原订单 */
    $sql = 'DELETE FROM ' . $GLOBALS['ecs']->table('order_info') . " WHERE order_id " . db_create_in(array($from_order['order_id'], $to_order['order_id']));
    $GLOBALS['db']->query($sql);
    /* 删除原订单支付日志 */
    $sql = 'DELETE FROM ' . $GLOBALS['ecs']->table('pay_log') . " WHERE order_id " . db_create_in(array($from_order['order_id'], $to_order['order_id']));
    $GLOBALS['db']->query($sql);
    /* 返还 from_order 的红包,因为只使用 to_order 的红包 */
    if ($from_order['bonus_id'] > 0) {
        unuse_bonus($from_order['bonus_id']);
    }
    /* 返回成功 */
    return true;
}
Esempio n. 30
0
 /**
  * 准备
  */
 function zhunbei($data)
 {
     $json = $this->json;
     do {
         // 判断是否有在进行中的游戏
         $game = M('zhajinhua')->where("qun_id = '{$this->qun['id']}' AND status in(0) AND update_time>{$this->time}")->find();
         if ($this->user['qun_credit'] < 10) {
             $json['data']['message'] = "@{$this->user['nickname']} 你的游戏金币少于10个,请充值后再进行游戏。充值地址:" . $this->U('/zjh/top', array(), true);
             break;
         }
         if (!$game) {
             $data = array('qun_id' => $this->qun['id'], 'qun_name' => $this->qun['nickname'], 'number_no' => get_order_sn('ZJH'), 'user_id' => $this->user['id'], 'addtime' => time(), 'update_time' => time());
             $res = M('zhajinhua')->add($data);
             if ($res) {
                 // `zha_id`, `user_id`, `card_data`, `status`, `credit`, `addtime`, `is_win`, `update_time`, `credit_log`, `is_show`
                 $zha = M('zhajinhua')->where(array('number_no' => $data['number_no']))->find();
                 $data_user = array('zha_id' => $zha['id'], 'user_id' => $this->user['id'], 'addtime' => time(), 'nickname' => $this->user['nickname']);
                 M('zhajinhua_user')->add($data_user);
                 $json['data']['message'] = "@{$this->user['nickname']} 加入游戏,开始请按【开始】. 游戏详情:" . $this->U('/zjh/game/detail', array('id' => $zha['number_no']), true);
                 break;
             }
         }
         $user_list = M('zhajinhua_user')->where(array('qun_id' => $game['id'], 'zha_id' => $game['id']))->select();
         if (count($user_list) > 9) {
             $json['data']['message'] = "@{$this->user['nickname']} 参与人数已满,请下次再玩。请选择【开始】游戏";
             break;
         }
         // 判断是否加入过
         $user = M('zhajinhua_user')->where(array('qun_id' => $game['id'], 'user_id' => $this->user['id']))->find();
         $game_user = M('qun_user')->find($game['user_id']);
         // `zha_id`, `user_id`, `card_data`, `status`, `credit`, `addtime`, `is_win`, `update_time`, `credit_log`, `is_show`
         if (!$user) {
             $data_user = array('zha_id' => $game['id'], 'user_id' => $this->user['id'], 'addtime' => time(), 'nickname' => $this->user['nickname']);
             M('zhajinhua_user')->add($data_user);
             M('zhajinhua')->where(array('id' => $game['id']))->save(array('update_time' => time()));
             $json['data']['message'] = "@{$this->user['nickname']} 加入游戏,开始【@{$game_user['nickname']}】请说【开始】.游戏详情:" . $this->U('/zjh/game/detail', array('id' => $game['number_no']), true);
         } else {
             $json['data']['message'] = "@{$this->user['nickname']} 已经加入游戏,开始【@{$game_user['nickname']}】请说【开始】.游戏详情:" . $this->U('/zjh/game/detail', array('id' => $game['number_no']), true);
         }
     } while (false);
     return $json;
 }