public function register() { C('TOKEN_ON', false); $data['username'] = $_POST['username']; $data['password'] = $_POST['password']; $data['pwd'] = $_POST['password']; $data['repassword'] = $_POST['repassword']; $data['company'] = $_POST['company']; $data['industry'] = $_POST['industry']; $data['pos'] = $_POST['pos']; $data['tel'] = $_POST['tel']; $data['name'] = $_POST['name']; $data['city'] = $_POST['city']; $data['status'] = 1; $pageData = array(); $db = D('Users'); if ($db->create($data)) { $id = $db->add(); $pageData['status'] = 0; require_once COMMON_PATH . '/WebsiteUserFuncManager.php'; $websiteUserFuncManager = new WebsiteUserFuncManager($id); $websiteUserFuncManager->openDefaultFuncGroups(); } else { $pageData['status'] = 1; $pageData['error'] = $db->getError(); } echo json_encode($pageData); }
public function m_alipay_notify() { Log::record('mp_notify called. get:' . print_r($_GET, true) . ' post:' . print_r($_POST, true), Log::INFO); Log::save(); $out_trade_no = $_POST['out_trade_no']; $agent_cfg; if (!empty($out_trade_no)) { $sql = 'select u.id,ac.agent_id,ac.cfg_data,a.role ' . ' from tp_audit_merchant_purchase as mp ' . ' left JOIN tp_users as u on mp.user_id = u.id ' . ' LEFT JOIN tp_oem_cfg as ac on u.administrator = ac.agent_id ' . " LEFT JOIN tp_user as a on u.administrator = a.id " . " where mp.trade_no = '{$out_trade_no}';"; $Model = new Model(); $cfg = $Model->query($sql); $agent_cfg = unserialize($cfg[0]['cfg_data']); if ($cfg != false && ($cfg[0]['role'] == 12 || $cfg[0]['role'] == 13)) { $default_agent_cfg = C('default_agent_info'); //代理商用户和直销用户使用领众的支付信息 $agent_cfg['alipay_seller_email'] = $default_agent_cfg['alipay_seller_email']; $agent_cfg['alipay_partner'] = $default_agent_cfg['alipay_partner']; $agent_cfg['alipay_key'] = $default_agent_cfg['alipay_key']; $agent_cfg['alipay_service'] = $default_agent_cfg['alipay_service']; } } $alipayConfig = C('alipay_config'); $alipayConfig['partner'] = $agent_cfg['alipay_partner']; $alipayConfig['key'] = $agent_cfg['alipay_key']; import("@.ORG.Alipay.AlipayNotify"); //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipayConfig); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { Log::record('mp_notify verify succeed.' . $out_trade_no, Log::INFO); //Log::record('mp_notify: '.print_r($_POST, true), Log::INFO); Log::save(); //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $data['ali_trade_no'] = $_POST['trade_no']; //交易状态 $data['ali_trade_status'] = $_POST['trade_status']; $data['ali_notify_id'] = $_POST['notify_id']; $data['ali_notify_type'] = $_POST['notify_type']; $data['ali_total_fee'] = $_POST['total_fee']; $data['ali_is_success'] = '1'; $data['ali_buyer_email'] = $_POST['buyer_email']; $data['ali_buyer_id'] = $_POST['buyer_id']; $data['handler'] = 1; //notify $data['finish_time'] = time(); // 检查交易是否存在领众数据库 $auditRecord = M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->find(); if ($auditRecord == false || empty($auditRecord['user_id'])) { Log::record('mp_notify: out_trade_no not exist:' . $out_trade_no, Log::ERR); // Log::record("record the notify info:".print_r($_POST,true)); Log::save(); echo 'fail'; exit; } $merchantPackages = C('MERCHANT_PACKAGES'); // 如果订单不处于 提交 状态,则忽略 if ($auditRecord['status'] != 1) { Log::record('mp_notify conflict ' . $out_trade_no); if ($auditRecord['status'] != 6) { //如果不是重复提交,则应该保存提醒信息 Log::record("record the notify info:" . print_r($_POST, true)); } Log::save(); echo "fail"; exit; } if ($data['ali_trade_status'] == 'TRADE_FINISHED' || $data['ali_trade_status'] == 'TRADE_SUCCESS') { $data['status'] = 2; M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->save($data); // 验证该请求来自支付宝 require_once COMMON_PATH . '/AlipayNotifyVerifyHelper.php'; $verifyStatus = AlipayNotifyVerifyHelper::ali_notify_verify($alipayConfig['partner'], $data['ali_notify_id']); if ($verifyStatus == false) { Log::record('m_return_url fail ali_notify_verify' . $out_trade_no, Log::ERR); Log::save(); M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->setField('status', 4); echo "fail"; exit; } M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->setField('status', 5); Log::record('mp_notify finish ali_notify_verify. status=>5 ' . $out_trade_no, Log::INFO); Log::save(); // 套餐处理 //需根据套餐类型设置payload参数:功能套餐设置成天数,短信包设置为条数 $package_type = $merchantPackages[$auditRecord['package_id']]['type']; switch ($package_type) { case 1: // 套餐处理 $fgListStr = $merchantPackages[$auditRecord['package_id']]['function_groups']; $durationInSecs = $auditRecord['package_duration'] * 31 * 24 * 60 * 60; Log::record('mp_notify start open fg ' . $fgListStr . ' for ' . $durationInSecs . ' secs ' . $out_trade_no, Log::INFO); Log::save(); $codeFgIdList = explode(",", $fgListStr); $websiteUserFuncManager = new WebsiteUserFuncManager($auditRecord['user_id']); $websiteUserFuncManager->extendFuncGroups($codeFgIdList, $durationInSecs); Log::record('mp_notify finish open fg ' . $out_trade_no, Log::INFO); Log::save(); break; case 2: //短信包 $volume = $auditRecord['package_duration']; Log::record('mp_notify start sms ' . $volume . ' ' . $out_trade_no, Log::INFO); $websiteUserFuncManager = new WebsiteUserFuncManager($auditRecord['user_id']); $res = $websiteUserFuncManager->extendSmsAccount($volume); Log::record('mp_notify finish sms ' . $out_trade_no, Log::INFO); Log::save(); break; } M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->setField('status', 6); echo "success"; Log::save(); exit; } else { Log::record('mp_notify fail to pay ' . $out_trade_no, Log::ERR); Log::save(); $data['status'] = 3; //支付失败 M('audit_merchant_purchase')->where(array('trade_no' => $out_trade_no))->save($data); echo "fail"; exit; } } else { Log::record('mp_notify verify fail.', Log::ERR); Log::save(); echo "fail"; exit; } }
static function init() { $fp = fopen(CONF_PATH . 'public_key.pem', "r"); self::$inviteCodePubKey = fread($fp, 8192); fclose($fp); }
public function activate() { $condition = array(); if (IS_POST && isset($_POST['activateSubmit'])) { $code = $_POST['invitecode']; $user_id = $_POST['userid']; $websiteUserFuncManager = new WebsiteUserFuncManager($user_id); $res = $websiteUserFuncManager->activate($code, current(M('user')->field('username')->find(session(C('USER_AUTH_KEY'))))); if ($res['success'] == 1) { $this->success("充值成功!"); } else { $this->error($res['error']); } } else { $id = $this->_get('id', 'intval', -1); if (!$id) { $this->error('参数错误!'); } $Model = new Model(); // 实例化一个model对象 没有对应任何数据表 $fgroups = $Model->query("SELECT tp_function_group.`name` ,tp_function_group.visible visible,tp_function_group.id id, tp_user_func_group.id relationid, tp_user_func_group.status status, tp_user_func_group.start_time, tp_user_func_group.expire_time from tp_function_group LEFT OUTER JOIN tp_user_func_group on tp_function_group.id = tp_user_func_group.group_id and tp_function_group.status =1 and tp_user_func_group.user_id=" . $id . " order by tp_function_group.sort asc, tp_function_group.id asc"); $this->assign('func_groups', $fgroups); $this->assign('userid', $id); $this->assign('tpltitle', '授权'); $smsAccount = M('smsaccount')->where(array('user_id' => $id))->find(); if (!empty($smsAccount)) { $smsAccount['balance'] = $smsAccount['total'] - $smsAccount['used']; $this->assign('smsaccount', $smsAccount); } $this->display(); } }
public function activate() { if (IS_POST) { $code = trim($_POST['invitecode']); $user_id = $_SESSION['uid']; $websiteUserFuncManager = new WebsiteUserFuncManager($user_id); $res = $websiteUserFuncManager->activate($code, session('uname')); if ($res['success'] == 1) { $this->success("充值成功!", U('Index/index')); } else { $this->error($res['error']); } } else { $this->display(); } }