设为首页 加入收藏

TOP

我的Python开发之路---微信网页授权(扫码登陆)(一)
2017-10-09 13:34:57 】 浏览:7817
Tags:Python 开发 --- 网页 授权 登陆

另外一个账号出现一些问题,所以想在改用这个。

刚开始接触微信这方面,了解的还不够全面,写写自己的认识,希望不要见怪。既来之则安之。首先,我们要对微信开发有一个基础的概念。

具体请查看:微信公众平台中的微信网页授权

有这么一个基础的认知后,我们再开始接下来要做的。

最基础的流程:

        二维码是一个url,我们扫描的过程就是一个访问的过程,这个url就是我们已经搭建好的服务器地址,经过urls.py这样一个url、后台处理模块相对应的过程,

        我们开始正式进行网页授权。

             第一步:用户同意授权,获取code       

             也就是访问这个url ='https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_url}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'

       其中我们需要自己确定好的参数有:appidredirect_url。appid是你们公众号的appid,redirect_url是我们访问上方这个url之后获取到code,处理code的这样一个回调连接。

       这里给大家提供一个简单的书写方式:       

1 url_tpl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_url}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect'
2 url = url_tpl.format(appid=appid, redirect_url=redirect_url)

       需要注意的是:

                   1、用户同意授权后,跳转的页面是redirect_url所连接的页面。

                   2、code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。

           

             第二步:通过code换取网页授权access_token

             也就是同上的访问这个url_tpl = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type=authorization_code'

url = url_tpl.format(appid=config.WEIXIN['appid'], secret=config.WEIXIN['secret'], code=code)

        其中我们需要的参数有appidsecretcode。appid是公众号的appid, secret公众号的appsecret,code就是我们第一步操作所获取的code。

        

        因为微信开发这方面是刚开始接触,而且是自学,我按照自己理解所想写的一段流程代码

  1 # -*- encoding:utf-8-*-
  2 
  3 # vim: set ts=4 et sw=4 sts=4 fileencoding=utf-8 :
  4 
  5 import os
  6 import sys
  7 import logging
  8 import time
  9 from zbase.web import core
 10 from zbase.web import template
 11 from zbase.base.dbpool import with_database
 12 import json
 13 import config
 14 import urllib2
 15 import MySQLdb
 16 
 17 log = logging.getLogger()
 18 
 19 
 20 # 1 第一步:用户同意授权,获取code
 21 # 2 第二步:通过code换取网页授权access_token
 22 # 3 第三步:刷新access_token(如果需要)
 23 # 4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
 24 # 5 附:检验授权凭证(access_token)是否有效
 25 
 26 class Visit_User:
 27     def __init__(self):
 28         self.appid = 'appid'  # 公众号appid
 29         self.secret = 'secret'  # 公众号secret
 30         self.redirect_url = 'http://api.uyu.com/v1/wx/user_auth'  # 回调地址
 31 
 32     def Visit_Url(self, url):  # 每次访问链接
 33         try:
 34             result = urllib2.urlopen(url).read()
 35             return result
 36         except urllib2.HTTPError, e:
 37             print e.code
 38         except urllib2.URLErrror, e:
 39             print str(e)
 40 
 41     def Get_Code(self):  # 1 第一步:用户同意授权,获取code
 42         get_code_url = 'https://open.weixin.qq.com/sns/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect' % (
 43             self.appid, self.redirect_url)
 44         code = se
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python学习——Python进程 下一篇学习笔记TF029:实现进阶卷积网络

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目