1. 程式人生 > >python3生成微信帶引數的小程式碼

python3生成微信帶引數的小程式碼

根據AppID和AppSecret獲取Token,然後根據token再生成帶引數的小程式碼。
官方文件如下:
https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/qrcode.html

我用pyton3實現了一下,貼上來,方便大家使用,程式碼如下:

import urllib.request
import urllib.parse
import json

appid = ''
appsecret=''



#獲取TOKEN
def getToken(appid,appsecret):
	#這個是微信獲取小程式碼的介面
	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(token,file):
	#這個是微信獲取小程式碼的介面
	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": "?from=1"}
	#將字典格式化成能用的形式,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()
	f=open(file,"wb")
	f.write(readData)
	f.close()

	
token = getToken(appid,appsecret)
getACodeImage(token,'wxCode.jpg')