Add new api get_userinfo_api

Brightcells 8 年 前
コミット
ac895ae2cd
共有9 個のファイルを変更した48 個の追加0 個の削除を含む
  1. 6 0
      api/urls.py
  2. 0 0
      miniapp/__init__.py
  3. 4 0
      miniapp/admin.py
  4. 0 0
      miniapp/migrations/__init__.py
  5. 4 0
      miniapp/models.py
  6. 4 0
      miniapp/tests.py
  7. 28 0
      miniapp/views.py
  8. 1 0
      pai2/settings.py
  9. 1 0
      requirements.txt

+ 6 - 0
api/urls.py

@@ -8,6 +8,7 @@ from geo import views as geo_views
8 8
 from group import views as group_views
9 9
 from group import groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupuser_views
10 10
 from message import views as message_views
11
+from miniapp import views as mini_views
11 12
 from operation import views as op_views
12 13
 from pay import views as pay_views
13 14
 from photo import views as photo_views
@@ -169,3 +170,8 @@ urlpatterns += [
169 170
     url(r'^pai2/home$', group_views.pai2_home_api, name='pai2_home_api'),  # 首页照片信息
170 171
     url(r'^pai2/tginfo$', tourguidegroup_views.pai2_tginfo_api, name='pai2_tginfo_api'),  # 首页旅行团信息
171 172
 ]
173
+
174
+# Mini App
175
+urlpatterns += [
176
+    url(r'^mini/userinfo$', mini_views.get_userinfo_api, name='get_userinfo_api'),  # 获取用户信息
177
+]

+ 0 - 0
miniapp/__init__.py


+ 4 - 0
miniapp/admin.py

@@ -0,0 +1,4 @@
1
+from django.contrib import admin
2
+
3
+
4
+# Register your models here.

+ 0 - 0
miniapp/migrations/__init__.py


+ 4 - 0
miniapp/models.py

@@ -0,0 +1,4 @@
1
+from django.db import models
2
+
3
+
4
+# Create your models here.

+ 4 - 0
miniapp/tests.py

@@ -0,0 +1,4 @@
1
+from django.test import TestCase
2
+
3
+
4
+# Create your tests here.

+ 28 - 0
miniapp/views.py

@@ -0,0 +1,28 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.db import transaction
4
+from logit import logit
5
+from pywe_miniapp import get_userinfo
6
+
7
+from account.models import UserInfo
8
+from utils.error.errno_utils import UserStatusCode
9
+from utils.error.response_utils import response
10
+
11
+
12
+@logit
13
+@transaction.atomic
14
+def get_userinfo_api(request):
15
+    appid = request.POST.get('appid', '')
16
+    secret = request.POST.get('secret', '')
17
+    code = request.POST.get('code', '')
18
+    encryptedData = request.POST.get('encryptedData', '')
19
+    iv = request.POST.get('iv', '')
20
+
21
+    userinfo = get_userinfo(appid=appid, secret=secret, code=code, encryptedData=encryptedData, iv=iv)
22
+
23
+    try:
24
+        user = UserInfo.objects.select_for_update().get(unionid=userinfo.get('unionid', ''))
25
+    except UserInfo.DoesNotExist:
26
+        return response(UserStatusCode.USER_NOT_FOUND)
27
+
28
+    return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.data)

+ 1 - 0
pai2/settings.py

@@ -49,6 +49,7 @@ INSTALLED_APPS = (
49 49
     'geo',
50 50
     'group',
51 51
     'message',
52
+    'miniapp',
52 53
     'operation',
53 54
     'page',
54 55
     'pay',

+ 1 - 0
requirements.txt

@@ -27,6 +27,7 @@ isoweek==1.3.1
27 27
 jsonfield==1.0.3
28 28
 mock==2.0.0
29 29
 pep8==1.7.0
30
+pywe-miniapp==1.0.0
30 31
 pywe-oauth==1.0.2
31 32
 records==0.4.3
32 33
 redis-extensions==1.0.38