当前位置:   article > 正文

微信小程序上线前的准备_前端微信小程序正式发布前需要配置接口权限开通嘛

前端微信小程序正式发布前需要配置接口权限开通嘛

书接上文

微信小程序向后台发送请求,需要https+域名。

域名在阿里云买的,服务器在腾讯云。(一开始没注意,最好还是买在一个地方吧)

购买域名->域名ICP备案->腾讯云申请一年免费的SSL证书-->域名解析、服务器部署SSL证书->后端项目部署到云服务器上->前端小程序代码上传、审核

1.购买域名+域名备案

去阿里云或腾讯云买一个域名。阿里云的话,需要提前填个信息模板,然后审核,大概要几小时。

然后不要着急解析。

先去对域名进行ICP备案,先是腾讯云那边审核(1-2天),然后送到工信部审核(15天)。

按照指示,先悬挂网站备案号。(PS:我也不清楚,微信小程序如果只是用一下域名,不做网站,要不要进行后面的网站备案和公安备案,反正我弄了一下)

  1. <div style="position:fixed; bottom: 20px; text-align: center">
  2. <a href="https://beian.miit.gov.cn/" target="_blank">你的网站备案号</a>
  3. </div>
  1. # 重启一下flask应用和nginx
  2. systemctl stop flask
  3. systemctl start flask
  4. systemctl restart nginx

再进行公安备案(前提是你的网站能通过域名正常访问)。反正就是填各种信息,然后等审核。(大概1-2个工作日)

审核通过之后,点击网站详情,根据指示下载备案图标,复制备案HTML代码添加到网站主页。(我的网页是用Flask开发的,备案图标应放于static目录中,引用格式:/static/xx.png)

  1. # 重启一下flask应用和nginx
  2. systemctl stop flask
  3. systemctl start flask
  4. systemctl restart nginx

2.SSL证书申请

使用ssl证书实现https请求。腾讯云申请一年免费的SSL证书。

①首先需要手动为域名添加一条解析记录。(由于我在阿里云上买的域名,所以在阿里云上添加的解析记录)。

②验证完了,等审核(很快,几分钟),审核完了证书就可以下载了。此时域名和SSL已绑定。

可以看到,绑定了两个域名,一个是主域名xxx,一个是主域名下面的子域名www.xxx

3.域名解析+服务器部署SSL证书

①分别对主域名xxx和子域名www.xxx进行解析

 ②Nginx 服务器 SSL 证书安装部署

参考官方文档 链接

下载证书,文件内容:

xxx.crt 证书文件

xxx.pem 证书文件(可忽略该文件)

xxx.key 私钥文件

xxx.csr CSR 文件(CSR 文件是申请证书时系统在线生成的,提供给 CA 机构。安装时可忽略该文件)

利用Xshell连接服务器,利用rz指令将 xxx.crt 证书文件和 xxx.key 私钥文件上传到 Nginx 服务器的/etc/nginx 目录(Nginx 默认安装目录)下。
修改nginx.conf配置文件。(nginx版本为1.18.0)
在我的项目中,修改的是flask.conf文件:vi /etc/nginx/conf.d/flask.conf
由于直接输入域名默认还是用的http,所以要配置重定向,让HTTP 自动跳转 HTTPS

  1. server {
  2. # SSL 默认访问端口号为 443
  3. listen 443 ssl;
  4. # 请填写绑定证书的域名(一个主域名、一个子域名)
  5. server_name xxx www.xxx;
  6. # 请填写证书文件的相对路径或绝对路径
  7. ssl_certificate /etc/nginx/designtuesday.top_bundle.crt;
  8. # 请填写私钥文件的相对路径或绝对路径
  9. ssl_certificate_key /etc/nginx/designtuesday.top.key;
  10. ssl_session_timeout 5m;
  11. # 请按照以下协议配置
  12. ssl_protocols TLSv1.2 TLSv1.3;
  13. # 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
  14. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  15. ssl_prefer_server_ciphers on;
  16. location / {
  17. include proxy_params;
  18. proxy_pass http://127.0.0.1:5000;
  19. }
  20. }
  21. server {
  22. listen 80;
  23. server_name xxx www.xxx; # 一个主域名、一个子域名
  24. return 301 https://www.xxx;
  25. }

然后把nginx.conf配置文件中关于ssl的配置注释掉。

  1. nginx -t // 测试配置文件有没有问题
  2. nginx -s reload // 重载Nginx配置文件
  3. systemctl restart nginx // 重启nginx

 ③效果(服务器的443端口要放开)

 

4.后端项目服务器部署

  1. sudo su - # 切换为root用户
  2. # 安装mysql
  3. apt install mysql-server mysql-client libmysqlclient-dev -y
  4. # 登录,不用输入password,直接回车就能进去
  5. mysql -u root -p
  6. # 看一下root用户的密码,默认使用插件保存了密码
  7. select user,Host, plugin from mysql.user;

  1. # 修改root用户密码
  2. mysql>update mysql.user set plugin = 'mysql_native_password' where user = 'root' and host='localhost';
  3. mysql>use mysql;
  4. mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
  5. mysql>flush privileges;
  6. mysql>exit;
  7. mysql -u root -p
  8. # 首先创建数据库
  9. create database fruit_veg_dish;
  10. # 进入数据库
  11. use fruit_veg_dish;
  12. # 创建info表
  13. create table info
  14. (
  15. id INT(10) primary key,
  16. category VARCHAR(100),
  17. description VARCHAR(1000)
  18. );
  19. # 退出
  20. exit;
  1. rz # 上传项目
  2. unzip xx # 解压
  3. python3 -m venv final # 在项目根目录下创建虚拟环境final
  4. source final/bin/activate # 激活虚拟环境
  5. # 安装项目依赖
  6. pip install wheel gunicorn flask gevent pillow torch torchvision pymysql xlrd==1.2.0 flask_cors opencv-python
  7. # 执行以下脚本,往数据库中导入数据
  8. python Import_Data_Into_Database.py

 Import_Data_Into_Database.py

  1. # 我希望不仅能识别出种类名称,还要能够展示对应种类的介绍信息。
  2. # 首先收集每个种类对应的介绍信息,整理成一个excel表格,并将excel表格导入到数据库中。
  3. import pymysql # pip install pymysql
  4. import xlrd # 需要指定安装旧版本pip install xlrd==1.2.0
  5. """
  6. 一、连接mysql数据库
  7. """
  8. # 打开数据库连接
  9. conn = pymysql.connect(
  10. host='localhost', # MySQL服务器地址
  11. user='root', # 用户名
  12. password='xxxx', # 密码
  13. charset='utf8',
  14. port=3306, # 端口
  15. db='fruit_veg_dish', # 数据库名称
  16. )
  17. # 使用cursor()方法获取操作游标
  18. c = conn.cursor()
  19. """
  20. 二、读取excel文件
  21. """
  22. FilePath = './info.xlsx'
  23. # 1.打开excel文件
  24. wkb = xlrd.open_workbook(FilePath)
  25. # 2.获取sheet
  26. sheet = wkb.sheet_by_index(0) # 获取第一个sheet表
  27. # 3.获取总行数
  28. rows_number = sheet.nrows
  29. # 4.遍历sheet表中所有行的数据,并保存至一个空列表cap[]
  30. cap = []
  31. for i in range(rows_number):
  32. x = sheet.row_values(i) # 获取第i行的值(从0开始算起)
  33. cap.append(x)
  34. # print(cap)
  35. """
  36. 三、将读取到的数据批量插入数据库
  37. """
  38. for item in cap:
  39. no = int(item[0])
  40. category = item[1]
  41. description = item[2]
  42. # 格式化字符串,对sql进行赋值
  43. sql = "insert into info(`id`,`category`,`description`) value ({},'{}','{}')"
  44. c.execute(sql.format(no, category, description))
  45. conn.commit()
  46. conn.close()
  47. print("插入数据完成!")

瞅一眼数据库。没问题。

  1. mysql -u root -p
  2. use fruit_veg_dish;
  3. select * from info;

配置Gunicorn并为flask应用创建一个Systemd Service File,使用Systemd来管理 

  1. # 退出虚拟环境
  2. deactivate
  3. # 新建flask2.service
  4. vi /etc/systemd/system/flask2.service

[Unit]
Description=Gunicorn instance to serve Flask
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/Graduation_Design_v3.2/backend
Environment="PATH=/root/Graduation_Design_v3.2/final/bin"
ExecStart=/root/Graduation_Design_v3.2/final/bin/gunicorn --bind 0.0.0.0:3000 app:app
[Install]
WantedBy=multi-user.target

  1. # 设置文件使用者和使用者组,和上面flask.service中的User和Group对应
  2. # -R参数表示指定目录及其子目录下的所有文件
  3. chown -R root:www-data /root/Graduation_Design_v3.2/backend
  4. # 设置项目读、写、执行的权限
  5. chmod -R 775 /root/Graduation_Design_v3.2/backend
  6. # 重载systemd daemon(守护进程)
  7. systemctl daemon-reload
  8. # 启动flask应用并设置开机自启
  9. systemctl start flask2
  10. systemctl enable flask2
  11. # 查看flask应用的状态
  12. systemctl status flask2

 配置Nginx,为flask项目做反向代理(443端口给上面那个网站,453端口用来对接微信小程序)

vi /etc/nginx/conf.d/flask2.conf
  1. server {
  2. # SSL 默认访问端口号为 453
  3. listen 453 ssl;
  4. # 请填写绑定证书的域名
  5. server_name xxx;
  6. # 请填写证书文件的相对路径或绝对路径
  7. ssl_certificate /etc/nginx/xxx_bundle.crt;
  8. # 请填写私钥文件的相对路径或绝对路径
  9. ssl_certificate_key /etc/nginx/xxx.key;
  10. ssl_session_timeout 5m;
  11. # 请按照以下协议配置
  12. ssl_protocols TLSv1.2 TLSv1.3;
  13. # 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准
  14. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  15. ssl_prefer_server_ciphers on;
  16. location / {
  17. include proxy_params;
  18. proxy_pass http://127.0.0.1:3000;
  19. }
  20. }
  1. nginx -t # 测试nginx配置文件有无语法错误
  2. systemctl restart nginx # 重启nginx

在微信小程序管理页面中配置合法域名 

 刷新微信开发者工具

开启域名,https校验 

 

自行测试效果(服务器的453端口要打开,修改小程序中发送请求的url为https+域名)

5.前端小程序代码上传、审核

在微信开发者工具上直接上传代码。然后就是填信息,等审核。(不到一天)

审核完了就发布,发布之后不能立马搜到,得过段时间(几个小时)。下载小程序码如下图。

提交审核之前可利用体验版本进行效果预览。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/147642
推荐阅读
相关标签
  

闽ICP备14008679号