最近在写后端接口,实现前端小程序用户登录时,需要使用前端发来的code获取用户的openid和session_key,并且返回3rd_session,搜了一些资料,最终实现了功能。
首先说结论:向微信服务器发送请求用的url要用拼接的方式,不可以用传参的方式。
parmas = {
'appid': appid,
'secret': secret,
'js_code': code,
'grant_type': 'authorization_code'
}
url = 'https://api.weixin.qq.com/sns/jscode2session'
r = requests.get(url, params=parmas)
def fun(request):
if request.method == "POST":
appid = "小程序appid"
secret = "小程序secret"
grant_type = "authorization_code" #这个固定
js_code = request.POST.get('code')
url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + secret + "&js_code=" + js_code + "&grant_type=" + grant_type
#下一行用的requests库,没有的可以 pip install requests安装一下
user_info = requests.get(url).json()
openid = user_info['openid'] #用户openid
session_key = user_info['session_key'] #用户的session_key
#下一行用的库是uuid,没有的可以 pip install uuid安装一下
user_uuid = str(uuid.uuid4()) #生成用户的3rd_session传给前端
return JsonResponse({"session": user_uuid})
有错误欢迎指正,希望对大家有帮助~