Add WECHAT_OAUTH2_RETRY_REDIRECT_URI

Brightcells 8 年之前
父节点
当前提交
2d6faa5600
共有 3 个文件被更改,包括 7 次插入1 次删除
  1. 1 0
      pai2/settings.py
  2. 1 1
      requirements.txt
  3. 5 0
      wechat/views.py

+ 1 - 0
pai2/settings.py

@@ -238,6 +238,7 @@ WECHAT = {
238 238
 
239 239
 WECHAT_BASE_REDIRECT_URI = 'https://api.pai.ai/base_redirect'
240 240
 WECHAT_USERINFO_REDIRECT_URI = 'https://api.pai.ai/userinfo_redirect'
241
+WECHAT_OAUTH2_RETRY_REDIRECT_URI = 'http://api.pai.ai/wx_oauth2?redirect_url={}'
241 242
 
242 243
 # 微信支付设置
243 244
 WXPAY_NOTIFY_SUCCESS = '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>'

+ 1 - 1
requirements.txt

@@ -29,7 +29,7 @@ mock==2.0.0
29 29
 pep8==1.7.0
30 30
 pywe-oauth==1.0.2
31 31
 records==0.4.3
32
-redis-extensions==1.0.37
32
+redis-extensions==1.0.38
33 33
 requests==2.12.4
34 34
 rlog==0.2
35 35
 shortuuid==0.4.3

+ 5 - 0
wechat/views.py

@@ -31,6 +31,8 @@ def base_redirect(request):
31 31
     state = request.GET.get('state', '')
32 32
 
33 33
     access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code)
34
+    if 'errcode' in access_info:
35
+        return redirect(settings.WECHAT_OAUTH2_RETRY_REDIRECT_URI.format(state))
34 36
 
35 37
     return redirect(furl(state).add(access_info).url)
36 38
 
@@ -40,6 +42,9 @@ def userinfo_redirect(request):
40 42
     state = request.GET.get('state', '')
41 43
 
42 44
     access_info = get_access_info(JSAPI['appID'], JSAPI['appsecret'], code)
45
+    if 'errcode' in access_info:
46
+        return redirect(settings.WECHAT_OAUTH2_RETRY_REDIRECT_URI.format(state))
47
+
43 48
     userinfo = get_userinfo(access_info.get('access_token', ''), access_info.get('openid', ''))
44 49
 
45 50
     return redirect(furl(state).add(userinfo).url)