当前位置: 首页 > 工具软件 > Python OpenID > 使用案例 >

【python获取小程序用户openid】python后端通过前端code获取openid与session_key

昌和悦
2023-12-01

最近在写后端接口,实现前端小程序用户登录时,需要使用前端发来的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})
        

有错误欢迎指正,希望对大家有帮助~

 类似资料: