# -*- coding: utf-8 -*- from django.conf import settings from django.db import transaction from logit import logit from pywe_miniapp import get_userinfo from account.models import UserInfo from utils.error.errno_utils import UserStatusCode from utils.error.response_utils import response 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: return response(UserStatusCode.USER_NOT_FOUND) return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data)