Sin Descripción

views.py 2.3KB

    # -*- coding: utf-8 -*- from curtail_uuid import CurtailUUID from django.conf import settings from django.db import transaction from ipaddr import client_ip from logit import logit from pywe_miniapp import get_userinfo from TimeConvert import TimeConvert as tc from account.models import UserInfo from utils.error.response_utils import response from utils.redis.rprofile import set_profile_info WECHAT = settings.WECHAT @logit @transaction.atomic def get_userinfo_api(request): wechat = WECHAT.get('MINIAPP', {}) appid = wechat.get('appID') secret = wechat.get('appsecret') code = request.POST.get('code', '') encryptedData = request.POST.get('encryptedData', '') iv = request.POST.get('iv', '') userinfo = get_userinfo(appid=appid, secret=secret, code=code, encryptedData=encryptedData, iv=iv) try: user = UserInfo.objects.select_for_update().get(unionid=userinfo.get('unionId', '')) except UserInfo.DoesNotExist: user = None if not user: # {u'avatarUrl': u'http://wx.qlogo.cn/mmopen/vi_32/aSKcBBPpibyKNicHNTMM0qJVh8Kjgiak2AHWr8MHM4WgMEm7GFhsf8OYrySdbvAMvTsw3mo8ibKicsnfN5pRjl1p8HQ/0', # u'city': u'Guangzhou', # u'country': u'CN', # u'gender': 1, # u'language': u'zh_CN', # u'nickName': u'Band', # u'openId': u'oGZUI0egBJY1zhBYw2KhdUfwVJJE', # u'province': u'Guangdong', # u'unionId': u'ocMvos6NjeKLIBqg5Mr9QjxrP1FA', # u'watermark': {u'appid': u'wx4f4bc4dec97d474b', u'timestamp': 1477314187}} user = UserInfo.objects.create( user_id=CurtailUUID.uuid(UserInfo, 'user_id'), user_from=UserInfo.WX_USER, openid=userinfo.get('openId', ''), unionid=userinfo.get('unionId', ''), sex=userinfo.get('gender', 0), nickname=userinfo.get('nickName', ''), avatar=userinfo.get('avatarUrl', ''), country=userinfo.get('country', ''), province=userinfo.get('province', ''), city=userinfo.get('city', ''), user_status=UserInfo.ACTIVATED, signup_ip=client_ip(request), signup_at=tc.utc_datetime(), ) set_profile_info(user) return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data)