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