为了账号安全,请及时绑定邮箱和手机立即绑定

python去微信服务器取openid

标签:
Python
根据code去微信服务器取openid

去微信服务器取openid和session_key

class UserCreate(generics.CreateAPIView):
    serializer_class = UserSerializer
    def create(self, request, *args, **kwargs):
        js_code = self.request.data['code']
        appid=''
        secret=''
        requestString='https://api.weixin.qq.com/sns/jscode2session?appid={APPID}&secret={SECRET}&js_code={JSCODE}&grant_type=authorization_code'.format(APPID=appid,SECRET=secret,JSCODE=js_code)
        r = requests.get(requestString)
        r=r.json()
        print(r['openid'])

r
图片描述
r.json
图片描述
要取出值使用

r=r.json
r['openid']
这一个class的完整代码:
class UserCreate(generics.CreateAPIView):
    serializer_class = UserSerializer
    def create(self, request, *args, **kwargs):
        js_code = self.request.data['code']
        appid=''
        secret=''
        requestString='https://api.weixin.qq.com/sns/jscode2session?appid={APPID}&secret={SECRET}&js_code={JSCODE}&grant_type=authorization_code'.format(APPID=appid,SECRET=secret,JSCODE=js_code)
        r = requests.get(requestString)
        r=r.json()
        openid=r['openid']
        #User是Django自带的用户管理表,通过from django.contrib.auth.models import User引入
        #Token表from rest_framework.authtoken.models import Token,我用了Django rest framework
        #下面代码的逻辑:从User表取出/创建一条username=openid的记录,然后根据User表的这条记录取出/创建token表的一条记录。这样User表中每个用户都有一个token.
        try:
            #如果注册了,可以直接从User表获取到记录
            auth_user = User.objects.get(username=openid)
        except:
            #如果没有注册就现在create
            auth_user = User.objects.create(username=openid)
        try:
            #如果token表有token值就取token出来
            token = Token.objects.get(user=auth_user)
        except:
            #如果token表没有token值就创建token
            token = Token.objects.create(user=auth_user)
        return Response(token.key, status=status.HTTP_201_CREATED)
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 2
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消