Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息

前言

  研究微信的一系列开发已经一段时间了,将自己的开发过程记录了下来,这次先介绍的是如何在微信的内置浏览器上通过授权获取用户信息。具体实现的是,用户关注了公众号,点击公众号下方的菜单在微信中进入公众号的网站(比如你公司的网站首页),在进入的时候通过授权获取用户信息。
  要实现上述功能必须得有一个具有网页授权功能的微信公众号或者服务号,进入 微信公众平台,在开发–>接口权限看到如下就说明有授权功能,没有的话得去申请:
这里写图片描述
  其次还得在设置–>公众号设置–>功能设置–>网页授权域名里填写你的授权域名,其中还要下载一个 txt文件并放在服务器上,注意一点的是必须放在项目的根目录并且要能访问到,比如你用nginx的话必须配置它的路径。

实现过程

  • 服务器
      先购买服务器,然后设置服务器的域名,比如设置域名为:www.show.netcome.net
  • 配置公众号收集信息
      首先得有一个有网页授权功能的公众号,然后在开发–>基本配置–>公众号开发信息里找到公众号的开发者ID(AppID)和开发者密码(AppSecret)
    并记录下来,其次在设置–>公众号设置–>功能设置–>网页授权域名下填写上面的域名(注意不要加http://等协议头,下面写得很清楚)并将下图中蓝色的txt文件下载下来,后面需要用到:
    这里写图片描述
  • 接口流程
      要想获取用户信息就得要用户同意,这个过程分为主要的三步,第一先请求 code:code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。第二步通过刚请求来的 code去请求access_token和openid,第三部就是通过刚获取的access_token和openid来请求用户信息。
  • python代码如下(如果你想知道细节,可以去查看官方文档):
# -*- coding: utf-8 -*-
# ----------------------------------------------
# @Time    : 18-3-21 下午1:36
# @Author  : YYJ
# @File    : WechatAPI.py
# @CopyRight: ZDWL
# ----------------------------------------------
import hashlib
import random
import time
from urllib import parse
from xml.etree.ElementTree import fromstring

import requests

from src.beauty.main.wechat.config import wechatConfig


class WechatAPI(object):
    def __init__(self):
        self.config = wechatConfig
        self._access_token = None
        self._openid = None

    @staticmethod
    def process_response_login(rsp):
        """解析微信登录返回的json数据,返回相对应的dict, 错误信息"""
        if 200 != rsp.status_code:
            return None, {
  'code': rsp.status_code, 'msg': 'http error'}
        try:
            content = rsp.json()

        except Exception as e:
            return None, {
  'code': 9999, 'msg': e}
        
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值