| @@ -275,11 +275,10 @@ WECHAT = { | ||
| 275 | 275 |  | 
| 276 | 276 | WECHAT_REDIRECT_URI = 'http://api.pai.ai/to_redirect' | 
| 277 | 277 |  | 
| 278 | -WECHAT_GET_CODE_BASE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect' | |
| 279 | -WECHAT_GET_CODE_USERINFO = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=%s#wechat_redirect' | |
| 280 | -WECHAT_GET_OAUTH2_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code' | |
| 278 | +WECHAT_OAUTH2_AUTHORIZE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_uri}&response_type=code&scope={scope}&state={state}#wechat_redirect' | |
| 279 | +WECHAT_OAUTH2_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type=authorization_code' | |
| 281 | 280 |  | 
| 282 | -WECHAT_GET_USERINFO = 'https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s' | |
| 281 | +WECHAT_OAUTH2_USERINFO = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}' | |
| 283 | 282 |  | 
| 284 | 283 | # 微信支付设置 | 
| 285 | 284 | WXPAY_NOTIFY_SUCCESS = '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>' | 
| @@ -19,7 +19,6 @@ ipython==4.0.0 | ||
| 19 | 19 | jsonfield==1.0.3 | 
| 20 | 20 | kkconst==1.1.2 | 
| 21 | 21 | pep8==1.6.2 | 
| 22 | -pysnippets==1.0.2 | |
| 23 | 22 | pytz==2015.7 | 
| 24 | 23 | records==0.4.3 | 
| 25 | 24 | redis==2.10.5 | 
| @@ -5,12 +5,10 @@ import urllib | ||
| 5 | 5 |  | 
| 6 | 6 | import requests | 
| 7 | 7 | import shortuuid | 
| 8 | -from CodeConvert import CodeConvert as cc | |
| 9 | 8 | from django.conf import settings | 
| 10 | 9 | from django.shortcuts import redirect | 
| 11 | 10 | from furl import furl | 
| 12 | 11 | from json_response import auto_response | 
| 13 | -from pysnippets import dictsnippets as dsnippets | |
| 14 | 12 | from wechatpy import WeChatClient | 
| 15 | 13 |  | 
| 16 | 14 |  | 
| @@ -25,9 +23,12 @@ def get_openid(request): | ||
| 25 | 23 |      default_url = request.GET.get('default_url', '') | 
| 26 | 24 |  | 
| 27 | 25 | if request.weixin: | 
| 28 | - authorize_url = settings.WECHAT_GET_CODE_USERINFO if scope == 'snsapi_userinfo' else settings.WECHAT_GET_CODE_BASE | |
| 29 | - get_code_url = authorize_url % (JSAPI['appID'], urllib.quote_plus(settings.WECHAT_REDIRECT_URI), urllib.quote_plus(redirect_url)) | |
| 30 | - return redirect(get_code_url) | |
| 26 | + return redirect(settings.WECHAT_OAUTH2_AUTHORIZE.format( | |
| 27 | + appid=JSAPI['appID'], | |
| 28 | + redirect_uri=urllib.quote_plus(settings.WECHAT_REDIRECT_URI), | |
| 29 | + scope=scope, | |
| 30 | + state=urllib.quote_plus(redirect_url) | |
| 31 | + )) | |
| 31 | 32 |  | 
| 32 | 33 | return redirect(default_url if default_url else redirect_url) | 
| 33 | 34 |  | 
| @@ -36,14 +37,18 @@ def to_redirect(request): | ||
| 36 | 37 |      code = request.GET.get('code', '') | 
| 37 | 38 |      state = request.GET.get('state', '') | 
| 38 | 39 |  | 
| 39 | - access_info = requests.get(settings.WECHAT_GET_OAUTH2_ACCESS_TOKEN % (JSAPI['appID'], JSAPI['appsecret'], code), verify=False).json() | |
| 40 | + access_info = requests.get(settings.WECHAT_OAUTH2_ACCESS_TOKEN.format( | |
| 41 | + appid=JSAPI['appID'], | |
| 42 | + secret=JSAPI['appsecret'], | |
| 43 | + code=code | |
| 44 | + ), verify=False).json() | |
| 40 | 45 |      unionid, openid, access_token = access_info.get('unionid', ''), access_info.get('openid', ''), access_info.get('access_token', '') | 
| 41 | 46 |  | 
| 42 | - res = requests.get(settings.WECHAT_GET_USERINFO % (access_token, openid), verify=False) | |
| 47 | + res = requests.get(settings.WECHAT_OAUTH2_USERINFO.format(access_token=access_token, openid=openid), verify=False) | |
| 43 | 48 | res.encoding = 'utf-8' | 
| 44 | 49 | userinfo = res.json() | 
| 45 | 50 |  | 
| 46 | - return redirect(furl(state).add(cc.Convert2Utf8(dsnippets.filter(userinfo, ['unionid', 'openid', 'nickname', 'headimgurl']))).url) | |
| 51 | + return redirect(furl(state).add(userinfo).url) | |
| 47 | 52 |  | 
| 48 | 53 |  | 
| 49 | 54 | @auto_response |