ic tiny button" rel="nofollow" href="/Pai2/pai2/src/37c5365a18e030568b523635a6e88ad4993b1caf/requirements.txt">View File
@@ -18,6 +18,7 @@ django-paginator2==1.0.3 |
||
| 18 | 18 |
django-rlog==1.0.7 |
| 19 | 19 |
django-shortuuidfield==0.1.3 |
| 20 | 20 |
django-six==1.0.2 |
| 21 |
+django-we==1.0.1 |
|
| 21 | 22 |
djangorestframework==3.6.3 |
| 22 | 23 |
furl==1.0.0 |
| 23 | 24 |
hiredis==0.2.0 |
@@ -1,4 +0,0 @@ |
||
| 1 |
-from django.contrib import admin |
|
| 2 |
- |
|
| 3 |
- |
|
| 4 |
-# Register your models here. |
@@ -1,4 +0,0 @@ |
||
| 1 |
-from django.db import models |
|
| 2 |
- |
|
| 3 |
- |
|
| 4 |
-# Create your models here. |
@@ -1,4 +0,0 @@ |
||
| 1 |
-from django.test import TestCase |
|
| 2 |
- |
|
| 3 |
- |
|
| 4 |
-# Create your tests here. |
@@ -1,54 +0,0 @@ |
||
| 1 |
-# -*- coding: utf-8 -*- |
|
| 2 |
- |
|
| 3 |
-from django.conf import settings |
|
| 4 |
-from django.shortcuts import redirect |
|
| 5 |
-from furl import furl |
|
| 6 |
-from json_response import auto_response |
|
| 7 |
-from pywe_jssdk import jsapi_signature_params |
|
| 8 |
-from pywe_oauth import get_access_info, get_oauth_code_url, get_userinfo |
|
| 9 |
- |
|
| 10 |
- |
|
| 11 |
-JSAPI = settings.WECHAT.get('JSAPI', {})
|
|
| 12 |
- |
|
| 13 |
- |
|
| 14 |
-def wx_oauth2(request): |
|
| 15 |
- scope = request.GET.get('scope', 'snsapi_userinfo')
|
|
| 16 |
- redirect_url = request.GET.get('redirect_url', '')
|
|
| 17 |
- default_url = request.GET.get('default_url', '')
|
|
| 18 |
- |
|
| 19 |
- if request.weixin: |
|
| 20 |
- redirect_uri = settings.WECHAT_USERINFO_REDIRECT_URI if scope == 'snsapi_userinfo' else settings.WECHAT_BASE_REDIRECT_URI |
|
| 21 |
- return redirect(get_oauth_code_url(JSAPI['appID'], redirect_uri, scope, redirect_url)) |
|
| 22 |
- |
|
| 23 |
- return redirect(default_url or redirect_url) |
|
| 24 |
- |
|
| 25 |
- |
|
| 26 |
-def base_redirect(request): |
|
| 27 |
- code = request.GET.get('code', '')
|
|
| 28 |
- state = request.GET.get('state', '')
|
|
| 29 |
- |
|
| 30 |
- access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code) |
|
| 31 |
- if 'errcode' in access_info: |
|
| 32 |
- return redirect(settings.WECHAT_OAUTH2_RETRY_REDIRECT_URI.format(state)) |
|
| 33 |
- |
|
| 34 |
- return redirect(furl(state).add(access_info).url) |
|
| 35 |
- |
|
| 36 |
- |
|
| 37 |
-def userinfo_redirect(request): |
|
| 38 |
- code = request.GET.get('code', '')
|
|
| 39 |
- state = request.GET.get('state', '')
|
|
| 40 |
- |
|
| 41 |
- access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code) |
|
| 42 |
- if 'errcode' in access_info: |
|
| 43 |
- return redirect(settings.WECHAT_OAUTH2_RETRY_REDIRECT_URI.format(state)) |
|
| 44 |
- |
|
| 45 |
- userinfo = get_userinfo(access_info.get('access_token', ''), access_info.get('openid', ''))
|
|
| 46 |
- if 'openid' not in userinfo: |
|
| 47 |
- return redirect(settings.WECHAT_OAUTH2_RETRY_REDIRECT_URI.format(state)) |
|
| 48 |
- |
|
| 49 |
- return redirect(furl(state).add(userinfo).url) |
|
| 50 |
- |
|
| 51 |
- |
|
| 52 |
-@auto_response |
|
| 53 |
-def wx_jsapi_signature_api(request): |
|
| 54 |
- return jsapi_signature_params(JSAPI['appID'], JSAPI['appsecret'], request.GET.get('url', ''))
|