|
# -*- 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)
|