系列文章目录
- 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)
- 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)
- 用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三)
- 用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四)
- 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五)
- 分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)
- 首页——基于Django框架的天天生鲜电商网站项目系列博客(七)
- 详情页——基于Django框架的天天生鲜电商网站项目系列博客(八)
- 列表页——基于Django框架的天天生鲜电商网站项目系列博客(九)
- 商品搜索——基于Django框架的天天生鲜电商网站项目系列博客(十)
- 购物车记录添加——基于Django框架的天天生鲜电商网站项目系列博客(十一)
- 购物车记录更新——基于Django框架的天天生鲜电商网站项目系列博客(十二)
- 订单生成——基于Django框架的天天生鲜电商网站项目系列博客(十三)
- 订单并发处理——基于Django框架的天天生鲜电商网站项目系列博客(十四)
- 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)
- 网站部署——基于Django框架的天天生鲜电商网站项目系列博客(十六)
- 项目总结——基于Django框架的天天生鲜电商网站项目系列博客(十七)
项目资源下载
- 天天生鲜电商网站项目源码Github地址(可Fork可Clone)
- 天天生鲜电商网站项目源码Gitee地址(可Fork可Clone)
- 天天生鲜电商网站项目源码压缩包下载(直接使用)
- 天天生鲜电商网站项目所需全部工具合集打包下载(nginx、libfastcommon、fastdfs-nginx、fastdfs)
- 天天生鲜电商网站项目MySql数据库文件(直接导入MySql数据库)
- Django1.8官方文档(中文版)
前言
今天将会是最后一篇长且难得模块功能的实现,也就是网站商品订单支付和评论功能模块得实现。其中包括订单页面的编写以及对接支付宝支付及其整个流程还有其功能的实现,内容很多,话不多说,马上开始今天的学习!
一、用户中心订单页面
- 首先在购物车支付界面的html中的Js代码加上如下:
- 因为这是点击之后自动跳转到用户订单界面,所以要配置路由
- 然后编写对应的视图函数
①:首先获取用户的订单信息
②:然后遍历获取订单商品的信息
③:然后分页
④:然后组织上下文
⑤:最后使用模板,传入参数
- 然后编写我们的html模板
①:在这里首先修改base.html和base_user_center.html模板
②:然后用user_center_order.html接收数据并显示数据
- 效果展示
二、网站对接支付宝流程图
三、网站对接支付宝支付
- 由于我们是个人项目,所以我们只能用开发服务中的沙箱测试我们支付的业务
- 由于我们是电脑网站支付,所以可以参考官方给的文档
- 电脑网站支付快速接入步骤
- 图示Django网站对接支付宝平台
- 开始配置公钥和私钥
①:进入沙箱环境
②:然后下载密钥生成器并安装
③:点击生成密钥
④:生成公钥和私钥
⑤:应用公钥
⑥:生成应用公钥和支付宝公钥,并保存
四、订单支付功能模块
- 安装python-alipay-sdk
pip install python-alipay-sdk --upgrade
# 对于 python2,请安装 2.0 以下版本: pip install python-alipay-sdk==1.1
- 生成密钥文件(使用OpenSSL软件,需要下载)
openssl
OpenSSL> genrsa -out app_private_key.pem 2048 # 私钥
OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥
OpenSSL> exit
- 在支付宝上下载的公钥是一个字符串,你需要在文本的首尾添加标记位
-----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY-----
- 这样才能正常使用,证书的格式如下所示:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAptkXVjUkA21vOW+h7FrW
68sooGwRqZCT3c8zcP7WLwwvKzwpiU5l+oX7yMoEes9qa7TCZd6YySxoYAdi1u9R
6Bi5YOeWCKGfh5ijbaWU9vH5k/qgWzCkWMSu0ZDyV0rMnQHigrnlEWGNOdMxglTJ
EeuiIGLi7i/3loFUjwCfXq8bkEcylTMMGiXGh88qevG0SbVA8RBNO37tHsRtSD/M
U1hIcjTDMH5+yiLGKVx1OjdOlX0nrjTivM0i9uQn0NZaBBVT7SVT/CykmpSLxX5P
tTJ+I56uRUpeQyRd+vaeTdqrmTFmpG3Nd0nUJV0wWespzOBgg+fYG9Sd7yoEb8g2
JwIDAQAB
-----END PUBLIC KEY-----
- 然后保存下来
- 应用公钥
- 保存支付宝公钥
- 拷贝私钥
- 支付后台视图
①:编写订单支付函数
②:检验用户是否登录
③:接收参数
④:校验参数
⑤:初始化
⑥:调用支付接口
⑦:返回应答
- 配置url
- 编写前端Js代码获取订单id,传递参数,访问相应地址
- 效果展示
五、获取支付结果
- 编写Js代码,在跳转到支付成功界面后自动跳转到用户个人中心界面
- 配置url
- 编写相应的视图函数,查看订单支付的结果
①:首先定义函数
②:判断用户是否登录
③:接收参数
④:校验参数
⑤:业务处理:使用python sdk调用支付宝的支付接口
⑥:调用支付宝的交易查询接口,并返回相应数据
- 根据接收到的数据,在Js代码中判断是否支付成功,如果支付成功,自动刷新用户个人中心页面,显示支付成功,商品列表显示待评价
- 效果展示
六、订单评论功能实现
- 首先在用户个人中心支付成功的页面引导用户去评论,设置跳转href,将用户的已付款的商品id传入
- 配置相应的url
- 编写相应的视图函数
- 首先我们点击去评论是一个get请求,带着用户的已付款的商品id去访问comment界面,是一个get请求
- 然后我们需要在这个函数中完成订单的点击评论功能
①:首先获取用户,然后校验参数
②:然后获取订单商品的信息
③:最后使用模板,将商品信息传递到评论html界面,显示信息
④:在对应的评论界面接收信息,展示信息
⑤:效果展示
- 当我们发起评论的时候,是一个post请求,我们还是先获取用户,然后校验参数
- 然后我们接下来在这个函数里面完成评论功能
①:首先获取评论条数
②:然后获取评论信息
③:成功之后传递相应的参数
- 最后修改商品详情页html,首先给商品信息和评论增加标签,并且接受数据
- 然后编写相应的Js代码,分别点击显示商品详情和评论
- 效果展示
总结
这篇博文有点长,但也是这个系列最后一篇技术向了,后面两篇就比较简单了,包括网站的部署以及项目总结,其中网站的部署我个人认为如果没有这个需求或者没有服务器的就不需要了,否则需要用虚拟机。但是如果有服务器的或者自己愿意鼓捣的可以参考我的其他博客,也可以部署,并且可以实现外网访问(下期博客会给链接),精彩内容就等下期博客揭晓吧!