11月11日工作日志

11月11日 上午: 解决用户重复提交的问题,这里新建一个表,这个表记录交易时间和交易状态和交易流水id,通过检索这个表来判断用户是否重复提交了。 见表sql如下: CREATE TABLE IF NOT EXISTS `paypalinfo` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `txn_id` varchar(50) NOT NULL, `payment_date` date NOT NULL, `paymentStatus` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 下午: 解决用户重复提交的问题,这里我修改过的地方,给赵坚,然后帮我上传到服务器并进行测试。 1、首先在网站根目录下新建一个php_paypal目录,上传paypal必须的文件到这个目录,配置好paypal的环境 2、新建payTip.class.php和payTip.tpl文件分别到Page目录下和Template目录下,作为提交给怕paypal的入口。 3、新建paySuccess.class.php和paySuccess.tpl文件分别到Page目录下和Template目录下,作为善后处理程序。 4、在BLL目录下的User.class.php public function updatePaymentInfo($txn_id,$payment_date,$payment_status,$first_name,$last_name) { $payed = DAL::getRow("SELECT * FROM paypalinfo WHERE txn_id='".$txn_id." and paymentStatus='Completed'"); if($payed<=0) { DAL::insert("INSERT INTO paypalinfo(userid,txn_id,payment_date,paymentStatus) values(".$user->UserId.",".$txn_id.",'".$payment_date."','".$payment_status."')"); $user = DAL::getRow("SELECT * FROM users WHERE firstName='".$first_name."' and lastName='".$last_name."'"); $newRevaldate = date("Y-m-d H:i:s",(strtotime($user->renewaldate) + 90*(24*60*60))); $results = DAL::update("UPDATE users SET renewaldate='".$newRevaldate."' WHERE firstName='".$first_name."' and lastName='".$last_name."'"); } } 这里的限制是,注册aupair帐号的时候和注册paypal帐号的时候要用实名,也就是要两个帐号的姓氏和名字保持一致,因为更新的依据就是这个,而并不是userid。 这里李总说的权限控制是这样来实现的: BasePage.class.php中: 添加权限控制业务逻辑: if(Context::$session->Identity == 2) {//if the account blongs to an Aupair if(!Context::$session->Payed) {//and the acount did not pay before or out of charge //and click some url which are limited to visit if ($cls != "Index" && $cls != "MessageBox" && $cls != "Register" && $cls != "Register2" && $cls != "Register3" && $cls != "Home" && $cls != "Find" && $cls != "AllFind" && $cls != "Profile" && $cls != "LoadUser" && $cls != "FindUsers" && $cls != "FindedAsA" && $cls != "FindedAsF" && $cls != "Statics" && $cls != "LostPwd" && $cls != "ABC" && $cls != "VisaRegulations" && $cls != "QuestionsAnswers" && $cls != "LoginB") { //and the url is just the five dinymic Page if ($cls == "EasyFind" || $cls == "Favorites" || $cls == "Messages" || $cls == "MyProfile" || $cls == "Statistics") { //redirect to payTip.html Context::$response->redirect ( 'payTip.html' ); } } parent::__construct (); return; } } 修改setupSession方法为: //##########payment limit if($user->identity == 2) {//if the account blongs to an Aupair $thisDate = date ( "Y-m-d H:i:s" ); $payed = strtotime($user->renewaldate) - strtotime($thisDate); if($payed > 0) {//if payed Context::$session->Payed=TRUE; }else { Context::$session->Payed=FALSE; } } //##########payment limit 其中: if ($user != null && Context::$session->Logined = true) 是我修改的,这一原来不是这个样子的,具体的我忘记了,总之和要表到的业务逻辑是和相反的。 在Login.tpl和loginB.tpl中的ajax返回值中添加一个42,代表aupair注册成功,但是未交费或者欠费,并跳转到交费提示界面。 修改Index.class.php文件中的onLogin方法,调整他的验证顺序,这里还是有一个遗留问题,就是最后的那个review = 0,为什么要加上那么一个判断。 登录的时候就有两个入口,一个是login.tpl,另一个是loginB.tpl,登录的业务逻辑是: 1、用户名密码是否错误,或者说是用户名/密码是否存在 2、是否为管理员,是管理员,立即登录 3、如果不是不管理员,更新用户登录时间 4、配置session信息 5、查看用户是否注册完成第二步 6、查看用户是否注册完成第三步 7、查看是否为付费的aupair账户 8、review = 0的判断,莫名其妙 整个系统只有两个地方是用来登录的,验证的逻辑放到了Index.class.php,那么我删除了Login.class.php和Login.class.php中的onlogin方法 询问李总一个问题: aupair在修改用户信息的时候有没有一个审批的步骤,如果有的话,那么当用户砸审批过程中,是可以操作动态页面呢还是不可以? 这里好现实不可以,因为这的 接受这个项目一个月了,现在才完全的搞清楚每一个字段是用来做什么的: active 是用户自己来控制的,管理员没有控制他的界面和按钮,这个字段是用来控制用户信息是否可以被检索到的关键: active = 0 用户可以被检索到 active = 1 用户信息被自己锁定,不被检索到。 那么,这要设置两个地方: 第一个修改的地方,修改DelProfile.tpl文件中的ajax中的一个判断: if(params.activate==1)//to de-active the user, so as you know the user is active now. { $('activate').innerHTML='<INPUT type="submit" onClick="AddPorfile();" value="'+params.button+'">'; } else if(params.activate==0)//to de-active the user, so as you know the user is de-active now. { $('activate').innerHTML='<INPUT type="submit" onClick="DlePorfile();" value="'+params.buttonDe+'">'; } 为: if(params.activate==0)//to de-active the user, so as you know the user is active now. { $('activate').innerHTML='<INPUT type="submit" onClick="DlePorfile();" value="'+params.buttonDe+'">'; } else { $('activate').innerHTML='<INPUT type="submit" onClick="AddPorfile();" value="'+params.button+'">'; } 第二个修改的地方,修改aupair中的users表,将active字段设置为默认值为0,不要出现null的情况 晚上: 发布 上传步骤: 修改login.tpl 和 loginB.tpl 修改Pages/Index.class.php 修改Pages/BasePage.class.php __construct方法和setupSession方法 上传 php_paypal目录,部署paypal。 上传 template目录下的paySuccess.tpl和payTip.tpl Pages目录下的paySuccess.class.php和payTip.class.php 创建表: CREATE TABLE IF NOT EXISTS `paypalinfo` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `txn_id` varchar(50) NOT NULL, `payment_date` date NOT NULL, `paymentStatus` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 修改users表: ALTER TABLE users ADD `renewaldate` timestamp NOT NULL default CURRENT_TIMESTAMP 修改php_paypal目录下include目录下Config.inc.php文件中的两个配置,具体代码如下: $paypal[site_url]="http://www.aupairjobs.co.uk/"; $paypal[success_url]="paySuccess.html"; 测试: 可用,但是存在问题。   

你可能感兴趣的:(11月11日工作日志)