python生成小程序二维码

# 小程序二维码
import urllib.request
import urllib.parse
import json
import uuid


# 获取TOKEN
def getToken():
appid = 'wx7ff20c012aba1cee'
appsecret = '33afc5b6958cde9a540cf96a3122adba'
# 这个是微信获取小程序码的接口
url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={appsecret}'.format(appid=appid,
appsecret=appsecret)
# 准备一下头
headers = {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
}

request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)
readData = response.read()
readData = readData.decode('utf-8')
obj = json.loads(readData)
print(obj)
print(obj['access_token'])
return obj['access_token']


# 获取小程序码
def getACodeImage(device_id):
token = getToken()
# 这个是微信获取小程序码的接口
url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token={token}'.format(token=token)
# 准备一下头

headers = {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
}
# 用Post传值,这里值用JSON的形式
values = {"path": "pages/addEquipment/addEquipment?device_id=" + device_id}
# 将字典格式化成能用的形式,urlencode不能用
# data = urllib.parse.urlencode(values).encode('utf-8')
# 使用json.dumps的方式序列化为字符串,然后bytes进行编码
data = json.dumps(values)
data = bytes(data, 'utf8')
# 创建一个request,放入我们的地址、数据、头
request = urllib.request.Request(url, data, headers)
# 将获取的数据存在本地文件
readData = urllib.request.urlopen(request).read()
random = str(uuid.uuid4())
f = open(settings.BASE_DIR + '/'+'static/qr_code' + '/' + random + '.jpg', 'wb')
f.write(readData)
f.close()
path = 'static/qr_code' + '/' + random + '.jpg'
return path


# token = getToken()
# device_id = '2323'
# getACodeImage(device_id)
posted @ 2021-03-29 13:32  关美丽  阅读(571)  评论(0编辑  收藏  举报