m lines-num-new">
-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', ''))

pai2 - Gogs: Go Git Service

拍爱

Brightcells: 0110c29272 rename api name 10 years ago
..
migrations 7a17d0fb90 add api wxpay & add redis relative 10 years ago
__init__.py 7a17d0fb90 add api wxpay & add redis relative 10 years ago
admin.py 7a17d0fb90 add api wxpay & add redis relative 10 years ago
models.py 7a17d0fb90 add api wxpay & add redis relative 10 years ago
tests.py 7a17d0fb90 add api wxpay & add redis relative 10 years ago
views.py 0110c29272 rename api name 10 years ago