function actionSignup()
 {
     $form = Form_Common::createForm('', 'signup');
     if ($this->_context->isPOST() && $form->validate($_POST)) {
         #return $this->msg('关闭注册中。',url('default::default/index'));
         $msg = null;
         $post = $form->values();
         $user_mail = $post['user_mail'];
         $user_pass = $post['user_pass'];
         $user_ip = $_SERVER['REMOTE_ADDR'];
         if ($user_pass != $post['user_pass_checked']) {
             $msg = '两次密码输入不一致;';
         }
         $user_pass = sha1(md5('sike' . $user_pass . Q::ini('appini/secret_key')));
         #dump($user_pass);exit;
         $test = Account::find('user_mail = ? ', $user_mail)->getOne();
         if ($test->id()) {
             $msg = '邮箱帐号已被使用;';
         }
         if ($msg === null) {
             $rs = new Account(array('user_mail' => $user_mail, 'user_pass' => $user_pass, 'user_ip' => $user_ip));
             if (Q::ini('appini/email_activate')) {
                 $rs->is_locked = '1';
                 $verify_hash = md5('sike' . rand(1000, 9999) . time());
                 $rs->verify_hash = $verify_hash;
                 $rs->save();
                 $send = Mail_Api::send('[' . Q::ini('appini/meta/title') . ']帐号激活邮件', '请点击连接激活您的帐号:' . Q::ini('appini/meta/url') . '/activate?verify=' . $verify_hash, $user_mail, '客户');
                 if ($send === true) {
                     return $this->msg('注册成功,请登陆您的邮箱获取激活连接。', url('default::default/signin'));
                 }
             }
             $rs->is_locked = '0';
             $rs->save();
             $this->_app->changeCurrentUser($rs->id());
             return $this->msg('注册成功', url('default::service'));
         }
         $this->_view['_MSG'] = $msg;
         #dump($post);
         $form->element('services')->checked = $post['services'];
     }
     $this->_view['_META_TITLE'] = '注册帐号';
     $this->_view['form'] = $form;
     $this->_viewname = 'account/signup';
 }
 function actionNotify()
 {
     $root_dir = Q::ini('app_config/ROOT_DIR');
     require_once $root_dir . Q::ini('appini/alipay_dir') . "lib/alipay_notify.class.php";
     //计算得出通知验证结果
     $alipayNotify = new AlipayNotify(Q::ini('appini/payment/alipay'));
     $verify_result = $alipayNotify->verifyNotify();
     if ($verify_result) {
         //验证成功
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         //请在这里加上商户的业务逻辑程序代
         //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
         //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
         $out_trade_no = $_POST['out_trade_no'];
         //获取订单号
         $trade_no = $_POST['trade_no'];
         //获取支付宝交易号
         $total = $_POST['price'];
         //获取总价格
         $rs = Invoice::find('order_number = ? AND trade_status != ?', $_POST['out_trade_no'], 'TRADE_FINISHED')->getOne();
         if ($rs->id()) {
             if (!empty($total)) {
                 $rs->total_fee = $total;
             }
             $rs->trade_no = $trade_no;
             $rs->trade_time = time();
             $rs->trade_status = $_POST['trade_status'];
             $rs->buyer_email = isset($_POST['buyer_email']) ? $_POST['buyer_email'] : '0';
             $rs->due_time = $rs->per_day * 24 * 3600 + $rs->trade_time;
             $rs->save();
             $order = Order::find('order_id = ?', $rs->order_id)->getOne();
             $order->status = 'pending';
             $order->save();
         }
         $buyer_email = $order->account->user_mail;
         if (Q::ini('appini/email_notify')) {
             Mail_Api::send('[' . Q::ini('appini/meta/title') . ']' . $order->name . '的账单状态[' . strip_tags($rs->status(false)) . ']', '当前状态:' . $rs->status(false) . ' 详情请登陆系统查看:' . Q::ini('appini/meta/url') . '/service/invoice', $buyer_email, '客户');
         }
         if ($_POST['trade_status'] == 'WAIT_BUYER_PAY') {
             //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款
             //判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
             //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
             //如果有做过处理,不执行商户的业务程序
             echo "success";
             //请不要修改或删除
             //调试用,写文本函数记录程序运行情况是否正常
             //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
         } else {
             if ($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {
                 //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货
                 //判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
                 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                 //如果有做过处理,不执行商户的业务程序
                 echo "success";
                 //请不要修改或删除
                 //调试用,写文本函数记录程序运行情况是否正常
                 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
             } else {
                 if ($_POST['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') {
                     //该判断表示卖家已经发了货,但买家还没有做确认收货的操作
                     //判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
                     //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                     //如果有做过处理,不执行商户的业务程序
                     echo "success";
                     //请不要修改或删除
                     //调试用,写文本函数记录程序运行情况是否正常
                     //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                 } else {
                     if ($_POST['trade_status'] == 'TRADE_FINISHED') {
                         //该判断表示买家已经确认收货,这笔交易完成
                         //判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”)
                         //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                         //如果有做过处理,不执行商户的业务程序
                         if ($rs->id()) {
                             $order = Order::find('order_id = ?', $rs->order_id)->getOne();
                             $username = $order->username;
                             $password = $order->password;
                             $groupname = $order->groupname;
                             if ($order->user_id != '10') {
                                 $radUser = Radcheck::find('username =?', $username)->getOne();
                                 $radUser->username = $username;
                                 $radUser->attribute = 'Cleartext-Password';
                                 $radUser->op = ':=';
                                 $radUser->value = $password;
                                 $radUser->save();
                                 /*
                                 $test = QDB::getConn()->getOne("SELECT `groupname` FROM `radusergroup` WHERE `username` = '{$username}'");
                                 if(!$test)
                                 {
                                     $radGroup_SQL = "INSERT INTO `radusergroup` (`username`, `groupname`, `priority`) VALUES ('{$username}', '{$groupname}', '1')";
                                 }else
                                 {
                                     $radGroup_SQL = "UPDATE `radusergroup` SET `groupname` = '{$groupname}' WHERE `username` = '{$order->username}'";
                                 }
                                 
                                 QDB::getConn()->execute($radGroup_SQL);
                                 */
                                 $radGroup = Radusergroup::find('username =?', $order->username)->getOne();
                                 $radGroup->username = $order->username;
                                 $radGroup->groupname = $order->groupname;
                                 $radGroup->priority = '1';
                                 $radGroup->save();
                             }
                             $order->status = 'approve';
                             $order->save();
                             /*
                             if(Q::ini('appini/email_order_recv'))
                             {
                                 Mail_Api::send('[收款通知]您收到来自'.$buyer_email.'的付款',Q::ini('appini/email_order_recv'),'站长');
                             }
                             */
                         }
                         echo "success";
                         //请不要修改或删除
                         //调试用,写文本函数记录程序运行情况是否正常
                         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                     } else {
                         //其他状态判断
                         echo "success";
                         //调试用,写文本函数记录程序运行情况是否正常
                         //logResult ("这里写入想要调试的代码变量值,或其他运行的结果记录");
                     }
                 }
             }
         }
         //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     } else {
         //验证失败
         echo "fail";
         //调试用,写文本函数记录程序运行情况是否正常
         //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
     }
 }