A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

五、购物车下单功能
1、首先显示下单结算页面,修改购物车页面的结算按钮的连接地址,地址使用U函数生成。然后修改结算页面的资源地址,地址痛痒感使用U函数生成,使其正确加载CSSJS和图片。
2、创建控制器OrderController.class.php继承至公共控制器,控制器中在增加方法来渲染模版文件。首先要调用方法来判断用户是否登录,没有登录将无法进行下单操作,然后获取购物车中的商品信息,然后计算购物车中商品的总金额,将获取得到的数据通过assigndisplay方法学渲染模版文件。
3、判断用户是否登录功能会经常使用到,所以可以在在公共控制器中增加方法来判断用户是否登录,即获取session中的用户的ID标识,如果可以获取到并不为空则证明用户已经登录,获取到的数据为空则说明用户没有登录,应该给予提示并跳转到登录页面。
4、修改订单页面的测试数据,使其显示正确的数据,将商品名称,商品属性,购买数量和总金额。并修改收货信息,将其他表单内容删除,只留下用户姓名,电话和地址信息。
5、创建商品订单的总表和商品订单表,一张表用来记录订单的信息,关于具体购买的商品信息存储在商品订单表中。总表中的字段包括会员ID,下单时间,订单总价,支付状态,收件人姓名,地址和手机号码等字段。商品订单表字段包括商品ID,订单ID,商品属性ID,商品价格和购买数量等。
6、实现商品信息的入库操作,为模板文件中的提交表单按钮添加JS事件实现表单提交,在订单控制器中的方法中获取数据,并在模型中实现下单操作。模型中首先获取购物车中的商品信息,调用方法来获取所有购物车中的商品数据,同时增加判断,如果没有数据给予提示并返回。根据每一件商品都要进行库存检查,如果库存不够将给予提示。向订单总表写入数据,首先计算购物车中商品的总价格,然后调用方法获取所有数据,并将数据转化为数组格式写入数据库中。向商品订单详情表写入具体的商品信息,将之前获取到的商品信息按照数据库的格式进行转化,然后调用方法来实现数据入库。减少商品对应的库存量,先要将商品表中的总库存数量减少,然后增加商品对应的销量,都可以通过连贯操作来实现数据的更新。然后根据商品对的单选属性组合减少对应的库存。在订单提交后,要将购物车中数据清除掉,删除的方法为通过session获取用户的ID标识,然后通过连贯操作将数据删除并返回。
六、支付宝功能
1、首先分析支付宝功能的接入流程,首先要申请支付宝的开放平台并获取沙盒环境下的卖家和买家账号。然后申请接口对的使用权限,创建后台的应用,最后使用具体的代码来实现支付功能。
2、在蚂蚁开放平台获取电脑网站支付的demo,然后将代码粘贴到项目根目录中去,然后修改支付宝的配置文件,将申请的APPID,商户密钥,同步跳转地址。由于异步需要外网的支持,所以暂时不做处理,然后修改加载核心文件的资源地址。以及商户的订单号,订单名层,付款金额,商品描述等信息。
3、然后将整段代码粘贴到订单控制器OrderController.class.php中并将其添加为方法。然后在控制器中添加获取回调地址的方法,同样将支付宝demo源代码中的回调地址代码复制粘贴过来使用并修改其中的参数。
4、测试发现有报错,这是因为支付宝使用的方法名CThinkPHP框架的方法有重名,所以应该找到支付宝与TP框架对的同名方法并将其修改为CC
5、分析支付宝的支付流程,首先用户提交了订单,然后商户会携带很多参数来请求支付宝对应的网关,支付宝根据参数跳转到对应的支付页面,用户随即执行支付操作,支付成功后,支付宝会跳转到之前设置的回调地址中,商户根据接收的请求对订单进行处理,当同步实现之后,支付宝还会发生异步请求来确保商户对用户的订单做正确的处理。
6、实现我的订单功能,首先创建控制器MemberController.class.php继承至公共控制器,在控制器中添加一个构造方法,用来实现验证用户是否登录,注意要在构造方法中手动调用父类的构造方法,然后再执行检查登录方法。然后在创建一个方法用来显示模板。通过获取session中用户的ID标识作为查询条件,连接数据库进行查询数据,然后通过assigndisplay方法渲染模版。然后修改模板文件中的测试数据,将其修改为对应的变量,使其显示正确的数据。

2 个回复

倒序浏览
回复 使用道具 举报
黑马南京 来自手机 初级黑马 2017-11-28 10:28:52
藤椅
吼吼吼吼吼
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马