python3.6 Django 微信 OAuth 网页授权接入 Wechatpy 框架
基本配置
wechatconfig.py
import json import time import requests from wechatpy import WeChatClient from wechatpy.client.api.jsapi import WeChatJSAPI from wechatpy.client.api.media import WeChatMedia from wechatpy.oauth import WeChatOAuth from wechatpy.utils import random_string, to_text from wx_libs.sign import Sign
基本配置
views.py
r = redis.Redis(host=127.0.0.1, port=6379) # 创建redis对象当然 授权获取用户信息 ,可以写一个装饰器,这样就不用每次都授权(直接将上面1.02稍微修改下就好了)。上面代码都有些将用户信息存至session中,不过JavaScript获取不到session中的数据 , django前后端分离的话,单独写一个或取用户信息的接口就OK了!时间有限写得很粗糙,将就下吧。。。。
微信官方获取签名方法 import json import time import requests from wechatpy import WeChatClient from wechatpy.client.api.jsapi import WeChatJSAPI from wechatpy.client.api.media import WeChatMedia from wechatpy.oauth import WeChatOAuth from wechatpy.utils import random_string, to_text from wx_libs.sign import Sign 基本配置 views.py r = redis.Redis(host=127.0.0.1, port=6379) # 创建redis对象 当然 授权获取用户信息 ,可以写一个装饰器,这样就不用每次都授权(直接将上面1.02稍微修改下就好了)。上面代码都有些将用户信息存至session中,不过JavaScript获取不到session中的数据 , django前后端分离的话,单独写一个或取用户信息的接口就OK了!时间有限写得很粗糙,将就下吧。。。。 微信官方获取签名方法
import time import random import string import hashlib class Sign: def __init__(self, jsapi_ticket, url): self.ret = { nonceStr: self.__create_nonce_str(), jsapi_ticket: jsapi_ticket, timestamp: self.__create_timestamp(), url: url } def __create_nonce_str(self): return .join(random.choice(string.ascii_letters + string.digits) for _ in range(15)) def __create_timestamp(self): return int(time.time()) def sign(self): string = &.join([%s=%s % (key.lower(), self.ret[key]) for key in sorted(self.ret)]) print(string) self.ret[signature] = hashlib.sha1(string.encode(utf-8)).hexdigest() return self.ret if __name__ == __main__: Sign()
import time import random import string import hashlib class Sign: def __init__(self, jsapi_ticket, url): self.ret = { nonceStr: self.__create_nonce_str(), jsapi_ticket: jsapi_ticket, timestamp: self.__create_timestamp(), url: url } def __create_nonce_str(self): return .join(random.choice(string.ascii_letters + string.digits) for _ in range(15)) def __create_timestamp(self): return int(time.time()) def sign(self): string = &.join([%s=%s % (key.lower(), self.ret[key]) for key in sorted(self.ret)]) print(string) self.ret[signature] = hashlib.sha1(string.encode(utf-8)).hexdigest() return self.ret if __name__ == __main__: Sign()
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
企业微信sdk调用流程