| @@ -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>' | 
| @@ -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 | 
| @@ -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) |