Issues 0 Pull Requests 0 Commits 828 Releases 0

No Description

views.py 7.7KB

    # -*- coding: utf-8 -*- from django.conf import settings from django.db import transaction from django_curtail_uuid import CurtailUUID from django_logit import logit from django_response import response from ipaddr import client_ip from pywe_membercard import get_miniapp_extraData from pywe_miniapp import get_session_info, get_session_key, get_userinfo, store_session_key from pywe_storage import RedisStorage from TimeConvert import TimeConvert as tc from account.models import UserInfo from statistic.models import RegisterStatisticInfo from utils.error.errno_utils import UserStatusCode from utils.redis.connect import r from utils.redis.rprofile import set_profile_info WECHAT = settings.WECHAT @logit @transaction.atomic def get_userinfo_api(request): brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) wxcfg = WECHAT.get('MINIAPP', {}) appid = wxcfg.get('appID') secret = wxcfg.get('appsecret') code = request.POST.get('code', '') encryptedData = request.POST.get('encryptedData', '') iv = request.POST.get('iv', '') # {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}} session_key = get_session_key(appid=appid, secret=secret, code=code) # Get Userinfo userinfo = get_userinfo(appid=appid, secret=secret, code=code, session_key=session_key, encryptedData=encryptedData, iv=iv) # Get or Create User user, created = UserInfo.objects.select_for_update().get_or_create(brand_id=brand_id, unionid=userinfo.get('unionId', '')) # Set User_id if created: user.user_id = CurtailUUID.uuid(UserInfo, 'user_id') # 注册用户统计 rsi, _ = RegisterStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand_id, ymd=int(tc.local_string(format='%Y%m%d')), ) rsi.num += 1 rsi.save() # Set User Key's Value user.user_from = UserInfo.MINIAPP_USER user.unionid = userinfo.get('unionId', '') user.openid_miniapp = userinfo.get('openId', '') user.sex = userinfo.get('gender', '') user.nickname = userinfo.get('nickName', '') user.avatar = userinfo.get('avatarUrl', '') user.country = userinfo.get('country', '') user.province = userinfo.get('province', '') user.city = userinfo.get('city', '') user.user_status = UserInfo.ACTIVATED user.signup_ip = client_ip(request) user.signup_at = tc.utc_datetime() user.save() # Store Userinfo set_profile_info(user) # Store SessionKey store_session_key(appid=appid, secret=secret, session_key=session_key, unid=user.user_id, storage=RedisStorage(r)) # Just for compatible because of store session_key has changed store_session_key(appid=appid, secret=secret, session_key=session_key, unid='', storage=RedisStorage(r)) return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.brandata(brand_id=brand_id)) @logit(res=True) @transaction.atomic def mini_login_api(request): brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) wxcfg = WECHAT.get('MINIAPP', {}) appid = wxcfg.get('appID') secret = wxcfg.get('appsecret') code = request.POST.get('code', '') # // 正常返回的JSON数据包 # { # "openid": "OPENID", # "session_key": "SESSIONKEY", # } # # // 满足UnionID返回条件时,返回的JSON数据包 # { # "openid": "OPENID", # "session_key": "SESSIONKEY", # "unionid": "UNIONID" # } # // 错误时返回JSON数据包(示例为Code无效) # { # "errcode": 40029, # "errmsg": "invalid code" # } session_info = get_session_info(appid=appid, secret=secret, code=code) session_key = session_info.get('session_key', '') unionid = session_info.get('unionid', '') openid = session_info.get('openid', '') # Get or Create User user, created = UserInfo.objects.select_for_update().get_or_create(brand_id=brand_id, openid_miniapp=openid) # Set User_id if created: user.user_id = CurtailUUID.uuid(UserInfo, 'user_id') # 注册用户统计 rsi, _ = RegisterStatisticInfo.objects.select_for_update().get_or_create( brand_id=brand_id, ymd=int(tc.local_string(format='%Y%m%d')), ) rsi.num += 1 rsi.save() # Set User Key's Value user.user_from = UserInfo.MINIAPP_USER if unionid: user.unionid = unionid user.user_status = UserInfo.ACTIVATED user.signup_ip = client_ip(request) user.signup_at = tc.utc_datetime() user.save() # Store Userinfo set_profile_info(user) # Store SessionKey store_session_key(appid=appid, secret=secret, session_key=session_key, unid=user.user_id, storage=RedisStorage(r)) # Just for compatible because of store session_key has changed store_session_key(appid=appid, secret=secret, session_key=session_key, unid='', storage=RedisStorage(r)) return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.brandata(brand_id=brand_id)) @logit @transaction.atomic def get_userinfo_api2(request): brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) user_id = request.POST.get('user_id', '') wxcfg = WECHAT.get('MINIAPP', {}) appid = wxcfg.get('appID') secret = wxcfg.get('appsecret') encryptedData = request.POST.get('encryptedData', '') iv = request.POST.get('iv', '') try: user = UserInfo.objects.get(user_id=user_id, status=True) except UserInfo.DoesNotExist: return response(UserStatusCode.USER_NOT_FOUND) # {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}} session_key = get_session_key(appid=appid, secret=secret, unid=user_id, storage=RedisStorage(r)) # Get Userinfo userinfo = get_userinfo(appid=appid, secret=secret, session_key=session_key, encryptedData=encryptedData, iv=iv) # Set User Key's Value user.unionid = userinfo.get('unionId', '') user.openid_miniapp = userinfo.get('openId', '') user.sex = userinfo.get('gender', '') user.nickname = userinfo.get('nickName', '') user.avatar = userinfo.get('avatarUrl', '') user.country = userinfo.get('country', '') user.province = userinfo.get('province', '') user.city = userinfo.get('city', '') user.save() # Store Userinfo set_profile_info(user) return response(200, 'Mini App Get Userinfo Success', u'微信小程序获取用户信息成功', user.brandata(brand_id=brand_id)) @logit @transaction.atomic def membercard_extradata(request): wxcfg = WECHAT.get('JSAPI', {}) appid = wxcfg.get('appID') secret = wxcfg.get('appsecret') extraData = get_miniapp_extraData(settings.MEMBER_CARD_ID, outer_str='miniapp', appid=appid, secret=secret, storage=RedisStorage(r)) return response(200, 'Get extraData Success', u'获取 extraData 成功', extraData)
Kodo/kodo - Gogs: Go Git Service

54 Ревизии (d4ee48d797c0f485646a97237db5ca1d2ec13f79)

Автор SHA1 Съобщение Дата
  Brightcells e38c2defaf Upload photo to qiniu преди 9 години
  Brightcells ac34b5f4bf Update origin_expired_stamps преди 9 години
  Brightcells b70975ea7a Fix Bug: get_lensman_order_record преди 9 години
  Brightcells 9e4ac4fd3b Add admin_status for GroupUserInfo преди 9 години
  Brightcells 14d5d63e3b Add nomark/origin price for GroupPhotoInfo преди 9 години
  Brightcells b6ab791315 Change relative pk to photo_id преди 9 години
  Brightcells 3c6e34823b Add photo_id for GroupPhotoInfo replaced pk преди 9 години
  Brightcells e8cd9652b7 Add gather_screenshot for api tg_group_gather_start_api преди 9 години
  Brightcells d824fbd441 Add photo_md5 for GroupPhotoInfo преди 9 години
  Brightcells f6bdf82918 Set group info after photo upload & Add group photo num in group info преди 9 години
  Brightcells 2eba3ed7f9 Add guest login for tourguide преди 9 години
  Brightcells e7f3abdf56 Add admin relative api преди 9 години
  Brightcells 246a9ff4b8 Change to 'from utils.redis.connect import r' преди 9 години
  Brightcells 90d377ee6e Add gather location преди 9 години
  Brightcells 564ff620d7 Add unique_together = (('group_id', 'user_id'),) for GroupUserInfo преди 9 години
  Brightcells 25b296f848 Add attentions/schedules for GroupInfo преди 9 години
  Brightcells 88f0697a89 Add authority field for GroupUserInfo преди 9 години
  Brightcells 6611c5f373 Add pai2_tginfo_api преди 9 години
  Brightcells 70f5faad11 Add tg_group_token_api/tg_group_transfer_api преди 9 години
  Brightcells 034acddb68 Add total_persons for GroupInfo преди 9 години
  Brightcells ad69866b26 Add tour guide's name and phone in GroupInfo преди 9 години
  Brightcells f724e0f9c0 Add tour guide apis преди 9 години
  Brightcells 347e920d39 Return session_id grouped photos in group_join_api & Return session_id in photo detail преди 9 години
  Brightcells e06dc10006 Make join session group by scan group qrcode fetch group photos initio преди 10 години
  Brightcells c12df969e1 add origin_expired_stamps преди 10 години
  Brightcells 6199c8f7ad add api lensman_origin_wanted_api/lensman_origin_photo_upload_api преди 10 години
  Brightcells fa36c26ce4 extend param to_uid for comment_submit_api преди 10 години
  Brightcells e4567ea2de fix call set_group_users_info after group user removed преди 10 години
  Brightcells bbc43c96ec add photo_share_url преди 10 години
  Brightcells afcdf74a49 add api group_data_api преди 10 години
  Brightcells fabef63211 set line_length=200 for isort преди 10 години
  Brightcells f72ccb1875 isort import преди 10 години
  Brightcells 102152ca4a add api lensman_photo_bought & modify api wx_order_create_api and adjust return field преди 10 години
  Brightcells d64b3c216b add and return photo_thumbnail2 relative преди 10 години
  Brightcells 15772543dd add return field thumbup for api flyimg_upload_api/flyimg_list_api/session_detail_api/pai2_home_api преди 10 години
  Brightcells dbea356558 add photo_from field for GroupPhotoInfo and return photo_from for some api преди 10 години
  Brightcells ff0a63215f Fix Bug: redis .replace(microsecond=0) преди 10 години
  Brightcells 537bd9bd41 add api group_quit_api преди 10 години
  Brightcells 454f8cd8ec change some info store in redis & remove some unnecessary params check & add some return for some api преди 10 години
  Brightcells 1bc6cf2a73 add update group_avatar преди 10 години
  Brightcells 88049b12db store/return more field for photo преди 10 години
  Brightcells ca727b0362 store/return w/h for photo преди 10 години
  Brightcells f6a88c632b add group_default_avatar field for GroupInfo преди 10 години
  Brightcells da2a81fff1 add api pai2_home преди 10 години
  Brightcells 11c6982627 return user_id for some api преди 10 години
  Brightcells 62ef679981 add ret photo_url and photo_thumbnail_url преди 10 години
  Brightcells c72d89f6e5 add api comment_submit_api/comment_list_api/thumbup_submit_api/thumbup_list_api/thumbup_cancel_api преди 10 години
  Brightcells df1df69fe3 add api upgrade/splash преди 10 години
  Brightcells 4afdb94e20 add avatar for GroupUserInfo преди 10 години
  Brightcells f587f0a48f user can just see photo after he joined the group & zh_Hans replace zh_CN in settings.py преди 10 години