@@ -1,8 +1,12 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from django.conf import settings |
|
4 |
+ |
|
3 | 5 |
|
4 | 6 |
def DJANGO_WE_CFG_FUNC(request, state=None): |
5 | 7 |
""" WeChat CFG Callback Func """ |
8 |
+ if state in ['component_auth', 'component_callback', 'component_preauth_callback']: |
|
9 |
+ return settings.WECHAT.get('COMPONENT') |
|
6 | 10 |
|
7 | 11 |
|
8 | 12 |
def DJANGO_WE_QUOTE_STATE_FUNC(request, state): |
@@ -31,6 +35,10 @@ def DJANGO_WE_SHARE_FUNC(request, state=None): |
||
31 | 35 |
|
32 | 36 |
def DJANGO_WE_MESSAGE_CALLBACK_FUNC(request, data, decrypted=None): |
33 | 37 |
""" WeChat Message Callback Func """ |
38 |
+ |
|
39 |
+ |
|
40 |
+def DJANGO_WE_COMPONENT_CALLBACK_FUNC(request, appid, data, decrypted=None): |
|
41 |
+ """ WeChat Component Message Callback Func """ |
|
34 | 42 |
from account.models import UserInfo |
35 | 43 |
|
36 | 44 |
event = data.get('Event', '') |
@@ -0,0 +1,34 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from __future__ import division |
|
4 |
+ |
|
5 |
+from django.conf import settings |
|
6 |
+from django.shortcuts import render |
|
7 |
+from pywe_component import get_pre_auth_url |
|
8 |
+from pywe_component_preauthcode import component_preauthcode |
|
9 |
+from pywe_storage import RedisStorage |
|
10 |
+ |
|
11 |
+from utils.redis.connect import r |
|
12 |
+ |
|
13 |
+ |
|
14 |
+COMPONENT = settings.WECHAT.get('COMPONENT', {}) |
|
15 |
+ |
|
16 |
+ |
|
17 |
+def preauth(request): |
|
18 |
+ return render(request, 'page/preauth/preauth.html', { |
|
19 |
+ 'domain': settings.DOMAIN, |
|
20 |
+ 'preauthurl': settings.DJANGO_DEBUG_PREAUTHURL or get_pre_auth_url( |
|
21 |
+ COMPONENT.get('appID'), |
|
22 |
+ pre_auth_code=component_preauthcode(appid=COMPONENT['appID'], secret=COMPONENT['appsecret'], storage=RedisStorage(r)), |
|
23 |
+ redirect_uri=settings.DJANGO_WE_COMPONENT_REDIRECT_URI, |
|
24 |
+ auth_type=3, |
|
25 |
+ mobi=request.weixin, |
|
26 |
+ ), |
|
27 |
+ }) |
|
28 |
+ |
|
29 |
+ |
|
30 |
+def preauth_success(request): |
|
31 |
+ return render(request, 'page/preauth/preauth_success.html', { |
|
32 |
+ 'domain': settings.DOMAIN, |
|
33 |
+ 'authorizer_appid': settings.DJANGO_DEBUG_AUTHORIZER_APPID, |
|
34 |
+ }) |
@@ -4,7 +4,7 @@ from django.conf.urls import url |
||
4 | 4 |
|
5 | 5 |
from account import tourguide_views |
6 | 6 |
from group import lensman_views |
7 |
-from page import info_views, oauth_views, page_views, sale_views, screen_views |
|
7 |
+from page import info_views, oauth_views, page_views, preauth_views, sale_views, screen_views |
|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
urlpatterns = [ |
@@ -34,6 +34,12 @@ urlpatterns = [ |
||
34 | 34 |
url(r'^clerk/info$', info_views.clerk_info_oauth, name='clerk_info_oauth'), # 店员信息授权页面 |
35 | 35 |
] |
36 | 36 |
|
37 |
+# 微信第三方平台 |
|
38 |
+urlpatterns += [ |
|
39 |
+ url(r'^preauth$', preauth_views.preauth, name='preauth'), |
|
40 |
+ url(r'^preauth/success$', preauth_views.preauth_success, name='preauth_success'), |
|
41 |
+] |
|
42 |
+ |
|
37 | 43 |
urlpatterns += [ |
38 | 44 |
url(r'^qr$', screen_views.screen_admin_oauthqr, name='oauthqr'), |
39 | 45 |
url(r'^screen/admin/oauth$', screen_views.screen_admin_oauth, name='screen_admin_oauth'), |