基于Django的商城开发项目笔记(七)
二十一、支付宝规则及支付流程
21.1网站与支付宝平台交互的原理:
21.2用户、网站、支付宝平台交互实现支付流程:
21.3支付宝开放平台的使用:
21.3.1登录:使用已有的支付宝账号即可
https://open.alipay.com/platform/home.htm
21.3.2使用python工具包: # 安装python-alipay-sdk
pip install python-alipay-sdk --upgrade
21.3.3生成**文件:openssl
OpenSSL> genrsa -out app_private_key.pem 2048 # 私钥
OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥
OpenSSL> exit
cat app_publict_key.pem 查看公钥的内容
21.3.4将生成的本机的公钥保存到支付宝平台中:
21.3.5下载支付宝的公钥文件:
将公钥的内容复制保存到一个文本文件中(alipay_pubilc_key.pem),注意需要在文本的首尾添加标记位(-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----)
21.3.6将刚刚生成的私钥app_private_key.pem和支付宝公钥alipay_public_key.pem放到我们的项目目录中:
21.3.7在orders/urls.py中配置支付宝支付和支付结果查询的url:
21.3.8在orders/view.py中编写OrderPayView订单支付类:
21.3.9在orders/view.py中编写CheckPayView查询订单支付结果类:
21.3.10在templates/user_center_order.html中配置:
21.4支付成功后的评论功能:
21.4.1在order/urls.py中配置评论的url:
21.4.2在order/view.py中定义CommentView类:
21.4.3在templates/user_center_order.html中添加判断,当订单状态为待评价跳转到评论页面:
21.4.4在templates/order_comment.html中显示信息:
二十二、项目部署流程
22.1项目部署流程图:
22.2 uwsgi:遵循wsgi协议的web服务器。
22.3uwsgi的安装:pip install uwsgi
22.4uwsgi的配置:
22.4.1项目部署时,需要把settings.py文件夹下的:
DEBUG=FALSE
ALLOWED_HOSTS=[‘*’]
22.4.2在项目目录下新建一个uwsgi.ini文件:
22.4.3uwsgi的启动和停止:
启动:uwsgi –-ini 配置文件路径 例如:uwsgi –-ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid路径 例如:uwsgi –-stop uwsgi.pid
22.5配置nginx来实现调度和转发请求:
22.5.1 nginx 配置转发请求给uwsgi:
22.5.1.1修改nginx.conf文件:
location / {
# 包含uwsgi请求的参数
include uwsgi_params;
# 转交请求给uwsgi
#uwsgi_pass 127.0.0.1:8080;
uwsgi_pass dailyfresh;
}
22.5.2nginx配置处理静态文件:
22.5.2.1django settings.py中配置收集静态文件路径:
STATIC_ROOT=收集的静态文件路径 例如:/var/www/dailyfresh/static;
django 收集静态文件的命令:
python manage.py collectstatic
执行上面的命令会把项目中所使用的静态文件收集到STATIC_ROOT指定的目录下。
22.5.2.2修改nginx.conf配置文件:
location /static {
# 指定静态文件存放的目录
alias /var/www/dailyfresh/static/;
}
22.5.3 nginx配置upstream实现负载均衡:
upstream dailyfresh {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}