目录
2-3-4 扫描二维码发送回调请求,向官方发送请求 - 获取用户的微信唯一ID并保存数据库
一、微信公众号分类
1-1 公众号 - 不能主动发送信息
- - 认证的公众号:付费,需要营业执照,可以发布多篇文章
- - 未认证的公众号:一天只能发布一篇文章
1-2 服务号 - 用于微信推送
- 需要申请并认证
- 可以主动给用户推送消息
- 必须关注服务号才能给用户推送消息
- 允许沙箱环境的开发测试
1-3 企业号 - 企业内部使用
二、微信推送Demo 官方API文档
2-1 测试微信公众号关注用户列表
2-2 用户表结构设计
import hashlib from django.db import models class UserInfo(models.Model): username = models.CharField("用户名", max_length=64, unique=True) password = models.CharField("密码", max_length=64) # save方法md5生产 uid = models.CharField(verbose_name='个人唯一ID', max_length=64, unique=True) # 微信官方的唯一id wx_id = models.CharField(verbose_name="微信ID", max_length=128, blank=True, null=True, db_index=True) # 重写save方法,创建唯一id - 每创建用户时,为用户自动生成个人唯一ID def save(self, *args, **kwargs): if not self.pk: m = hashlib.md5() m.update(self.username.encode(encoding="utf-8")) self.uid = m.hexdigest() super(UserInfo, self).save(*args, **kwargs)
2-3 实现思路
2-3-1 用户登陆信息
def login(request): """ 用户登录 :param request: :return: """ # models.UserInfo.objects.create(username='luffy',password=123) if request.method == "POST": user = request.POST.get('user') pwd = request.POST.get('pwd') obj = models.UserInfo.objects.filter(username=user, password=pwd).first() # 用户信息存在,将用户信息保存到session中 if obj: request.session['user_info'] = {'id': obj.id, 'name': obj.username, 'uid': obj.uid} return redirect('/bind/') else: return render(request, 'login.html')
2-3-2 登陆成功跳转页
总结:
- 将之前官网上获取的公众号信息图片,另存为保存在项目目录中
<