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("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }