Merge branch 'develop' of http://git.dev.yoho.cn/web/yohobuy into feature/web-list
Showing
11 changed files
with
358 additions
and
81 deletions
@@ -25,7 +25,7 @@ class LoginData extends \LibModels\Wap\Passport\LoginData | @@ -25,7 +25,7 @@ class LoginData extends \LibModels\Wap\Passport\LoginData | ||
25 | * @param string $shoppingKey 未登录用户唯一识别码, 默认为空 | 25 | * @param string $shoppingKey 未登录用户唯一识别码, 默认为空 |
26 | * @return array 登录返回结果 | 26 | * @return array 登录返回结果 |
27 | */ | 27 | */ |
28 | - public static function signinByOpenID($nickname, $openId, $sourceType, $shoppingKey = null) | 28 | + public static function signinByOpenID($nickname, $openId, $sourceType, $shoppingKey = null, $replaceId = '') |
29 | { | 29 | { |
30 | // 构建必传参数 | 30 | // 构建必传参数 |
31 | $param = Yohobuy::param(); | 31 | $param = Yohobuy::param(); |
@@ -35,13 +35,18 @@ class LoginData extends \LibModels\Wap\Passport\LoginData | @@ -35,13 +35,18 @@ class LoginData extends \LibModels\Wap\Passport\LoginData | ||
35 | $param['openId'] = $openId; | 35 | $param['openId'] = $openId; |
36 | $param['source_type'] = $sourceType; | 36 | $param['source_type'] = $sourceType; |
37 | $param['nickname'] = $nickname; | 37 | $param['nickname'] = $nickname; |
38 | + //wechat传入replace_id | ||
39 | + if (!empty($replaceId)) { | ||
40 | + $param['replace_id'] = $replaceId; | ||
41 | + } | ||
42 | + //购物车 | ||
38 | if (!empty($shoppingKey)) { | 43 | if (!empty($shoppingKey)) { |
39 | $param['shopping_key'] = $shoppingKey; | 44 | $param['shopping_key'] = $shoppingKey; |
40 | } | 45 | } |
41 | 46 | ||
42 | $param['client_secret'] = Sign::getSign($param); | 47 | $param['client_secret'] = Sign::getSign($param); |
43 | 48 | ||
44 | - return Yohobuy::get(Yohobuy::API_URL, $param); | 49 | + return Yohobuy::get(Yohobuy::API_URL2, $param); |
45 | } | 50 | } |
46 | 51 | ||
47 | } | 52 | } |
library/Plugin/Partner/wechat/Call.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +namespace Plugin\Partner\wechat; | ||
4 | + | ||
5 | +use Plugin\Partner\Factory; | ||
6 | + | ||
7 | +define('WECHAT_CLASS_PATH', dirname(__FILE__) . '/class/'); | ||
8 | +require WECHAT_CLASS_PATH . 'Wechat.class.php'; | ||
9 | + | ||
10 | +/** | ||
11 | + * 微信的调用接口 | ||
12 | + * | ||
13 | + * @name Call | ||
14 | + * @package lib/partner/wechat | ||
15 | + * @copyright yoho.inc | ||
16 | + * @version 5.0 (2016-01-12 10:54:54) | ||
17 | + * @author xiaowei <xiaowei.gong@yoho.cn> | ||
18 | + */ | ||
19 | +class Call extends Factory | ||
20 | +{ | ||
21 | + | ||
22 | + //微信对象 | ||
23 | + protected $wechat; | ||
24 | + | ||
25 | + /** | ||
26 | + * 初始化 | ||
27 | + */ | ||
28 | + protected function init() | ||
29 | + { | ||
30 | + $this->wechat = new \WechatAuth($this->apiConfig['appId'], $this->apiConfig['appKey']); | ||
31 | + } | ||
32 | + | ||
33 | + /** | ||
34 | + * 获取授权URL | ||
35 | + * | ||
36 | + * @return string | ||
37 | + */ | ||
38 | + public function getAuthorizeUrl() | ||
39 | + { | ||
40 | + return $this->wechat->getAuthorizeURL($this->apiConfig['callback'], $this->apiConfig['scope']); | ||
41 | + } | ||
42 | + | ||
43 | + /** | ||
44 | + * 获取授权的TOKEN | ||
45 | + * | ||
46 | + * @return array | ||
47 | + */ | ||
48 | + public function getAccessToken() | ||
49 | + { | ||
50 | + $token = array(); | ||
51 | + | ||
52 | + if (isset($_REQUEST['code']) && !empty($_REQUEST['code'])) { | ||
53 | + try { | ||
54 | + $token = $this->wechat->getAccessToken($_REQUEST['code']); | ||
55 | + } | ||
56 | + catch (Exception $e) { | ||
57 | + // do nothing | ||
58 | + } | ||
59 | + } | ||
60 | + | ||
61 | + return $token; | ||
62 | + } | ||
63 | + | ||
64 | + /** | ||
65 | + * 获取当前用户的基本资料 | ||
66 | + * | ||
67 | + * @param object $token 授权成功的TOKEN, 默认为NULL | ||
68 | + * @return array | ||
69 | + */ | ||
70 | + public function getUserInfo($token) | ||
71 | + { | ||
72 | + $userInfo = array(); | ||
73 | + | ||
74 | + if (!empty($token)) { | ||
75 | + $userInfo = $this->wechat->getUserInfo($token['access_token'], $token['openid']); | ||
76 | + } | ||
77 | + | ||
78 | + return $userInfo; | ||
79 | + } | ||
80 | + | ||
81 | + public function getFriends($token, $params) | ||
82 | + { | ||
83 | + | ||
84 | + } | ||
85 | + | ||
86 | + public function syncShare($token, $content, $image, $link) | ||
87 | + { | ||
88 | + | ||
89 | + } | ||
90 | + | ||
91 | +} |
library/Plugin/Partner/wechat/Config.inc.php
0 → 100644
1 | +<?php | ||
2 | + | ||
3 | +/** | ||
4 | + * @ignore | ||
5 | + */ | ||
6 | +class OAuthException extends Exception | ||
7 | +{ | ||
8 | + // pass | ||
9 | +} | ||
10 | + | ||
11 | +class WechatAuth | ||
12 | +{ | ||
13 | + | ||
14 | + /** | ||
15 | + * @ignore | ||
16 | + */ | ||
17 | + public $appId; | ||
18 | + | ||
19 | + /** | ||
20 | + * @ignore | ||
21 | + */ | ||
22 | + public $appKey; | ||
23 | + | ||
24 | + /** | ||
25 | + * @ignore | ||
26 | + */ | ||
27 | + public $accessToken; | ||
28 | + | ||
29 | + /** | ||
30 | + * @ignore | ||
31 | + */ | ||
32 | + public $refreshToken; | ||
33 | + | ||
34 | + /** | ||
35 | + * Set API URLS | ||
36 | + */ | ||
37 | + | ||
38 | + /** | ||
39 | + * @ignore | ||
40 | + */ | ||
41 | + function userInfoURL() | ||
42 | + { | ||
43 | + return 'https://api.weixin.qq.com/sns/userinfo'; | ||
44 | + } | ||
45 | + | ||
46 | + /** | ||
47 | + * @ignore | ||
48 | + */ | ||
49 | + function authorizeURL() | ||
50 | + { | ||
51 | + return 'https://open.weixin.qq.com/connect/qrconnect'; | ||
52 | + } | ||
53 | + | ||
54 | + /** | ||
55 | + * @ignore | ||
56 | + */ | ||
57 | + function accessTokenURL() | ||
58 | + { | ||
59 | + return 'https://api.weixin.qq.com/sns/oauth2/access_token'; | ||
60 | + } | ||
61 | + | ||
62 | + /** | ||
63 | + * construct WeichatOAuth object | ||
64 | + */ | ||
65 | + function __construct($appId, $appKey, $accessToken = NULL) | ||
66 | + { | ||
67 | + $this->appId = $appId; | ||
68 | + $this->appKey = $appKey; | ||
69 | + $this->accessToken = $accessToken; | ||
70 | + } | ||
71 | + | ||
72 | + /** | ||
73 | + * authorize接口 | ||
74 | + * $callBackurl 回调地址 | ||
75 | + */ | ||
76 | + function getAuthorizeURL($callBackurl, $scope, $responseType = 'code', $state = 'STATE#wechat_redirect') | ||
77 | + { | ||
78 | + $params = array(); | ||
79 | + $params['appid'] = $this->appId; | ||
80 | + $params['redirect_uri'] = $callBackurl; | ||
81 | + $params['response_type'] = $responseType; | ||
82 | + $params['scope'] = $scope; | ||
83 | + $params['state'] = $state; | ||
84 | + return $this->authorizeURL() . "?" . http_build_query($params); | ||
85 | + } | ||
86 | + | ||
87 | + /* | ||
88 | + * 获取accesstoken | ||
89 | + * code:授权链接返回的code | ||
90 | + */ | ||
91 | + | ||
92 | + function getAccessToken($code, $grant_type = 'authorization_code') | ||
93 | + { | ||
94 | + if (empty($code)) { | ||
95 | + return ''; | ||
96 | + } | ||
97 | + $params = array(); | ||
98 | + $params['appid'] = $this->appId; | ||
99 | + $params['secret'] = $this->appKey; | ||
100 | + $params['code'] = $code; | ||
101 | + $params['grant_type'] = $grant_type; | ||
102 | + $url = $this->accessTokenURL() . "?" . http_build_query($params); | ||
103 | + $result = self::getCurl($url); | ||
104 | + return json_decode($result, true); | ||
105 | + } | ||
106 | + | ||
107 | + // 获取用户信息 | ||
108 | + function getUserInfo($access_token, $openid) | ||
109 | + { | ||
110 | + if (empty($access_token) || empty($openid)) { | ||
111 | + return array(); | ||
112 | + } | ||
113 | + $params = array(); | ||
114 | + $params['access_token'] = $access_token; | ||
115 | + $params['openid'] = $openid; | ||
116 | + $url = $this->userInfoURL() . "?" . http_build_query($params); | ||
117 | + $result = self::getCurl($url); | ||
118 | + return json_decode($result, true); | ||
119 | + } | ||
120 | + | ||
121 | + /** | ||
122 | + * Send a GET requst using cURL | ||
123 | + * @param string $url to request | ||
124 | + * @param array $get values to send | ||
125 | + * @param array $options for cURL | ||
126 | + * @return string | ||
127 | + */ | ||
128 | + public static function getCurl($url,$method="GET") | ||
129 | + { | ||
130 | + $curl = curl_init(); | ||
131 | + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); | ||
132 | + curl_setopt($curl, CURLOPT_URL, $url); | ||
133 | + curl_setopt($curl, CURLOPT_TIMEOUT, 20); | ||
134 | + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); | ||
135 | + curl_setopt($curl, CURLOPT_HEADER, 0); | ||
136 | + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); | ||
137 | + | ||
138 | + $output = curl_exec($curl); | ||
139 | + curl_close($curl); | ||
140 | + return $output; | ||
141 | + } | ||
142 | +} |
1 | {{> layout/header}} | 1 | {{> layout/header}} |
2 | <div class="brand-page brand-search-page yoho-page"> | 2 | <div class="brand-page brand-search-page yoho-page"> |
3 | <div class="newbrand-search"> | 3 | <div class="newbrand-search"> |
4 | - <form class="search-box clearfix"> | ||
5 | - <input type="text" class="search-input" id="keyword" placeholder="查找品牌"> | 4 | + <form class="search-box clearfix"> |
5 | + <input type="text" class="search-input" id="keyword" placeholder="查找品牌" autofocus> | ||
6 | <i class="search-icon iconfont"></i> | 6 | <i class="search-icon iconfont"></i> |
7 | <div class="search-action"> | 7 | <div class="search-action"> |
8 | <span class="iconfont clear-text"></span> | 8 | <span class="iconfont clear-text"></span> |
@@ -136,7 +136,7 @@ function picCaptchaAjaxFn(page, callback) { | @@ -136,7 +136,7 @@ function picCaptchaAjaxFn(page, callback) { | ||
136 | type: 'POST', | 136 | type: 'POST', |
137 | url: url, | 137 | url: url, |
138 | data: { | 138 | data: { |
139 | - code: $ca.val() | 139 | + verifyCode: $ca.val() |
140 | 140 | ||
141 | //mobile: $pn.val(), | 141 | //mobile: $pn.val(), |
142 | //area: $region.text().split('+')[1] | 142 | //area: $region.text().split('+')[1] |
@@ -169,7 +169,7 @@ function msgCaptchaAjaxFn(page, callback) { | @@ -169,7 +169,7 @@ function msgCaptchaAjaxFn(page, callback) { | ||
169 | type: 'POST', | 169 | type: 'POST', |
170 | url: url, | 170 | url: url, |
171 | data: { | 171 | data: { |
172 | - code: $ca.val(), | 172 | + verifyCode: $ca.val(), |
173 | mobile: $pn.val(), | 173 | mobile: $pn.val(), |
174 | area: $region.text().split('+')[1] | 174 | area: $region.text().split('+')[1] |
175 | } | 175 | } |
@@ -465,7 +465,7 @@ exports.init = function(page) { | @@ -465,7 +465,7 @@ exports.init = function(page) { | ||
465 | 465 | ||
466 | $regionSelect.change(function() { | 466 | $regionSelect.change(function() { |
467 | 467 | ||
468 | - $region.text('+' + $('#region').val()); | 468 | + $region.text($('#region').val()); |
469 | 469 | ||
470 | validateRule(page, $pn, showErrTip); //验证 | 470 | validateRule(page, $pn, showErrTip); //验证 |
471 | }); | 471 | }); |
@@ -493,7 +493,7 @@ exports.init = function(page) { | @@ -493,7 +493,7 @@ exports.init = function(page) { | ||
493 | data: { | 493 | data: { |
494 | area: $region.text().split('+')[1], | 494 | area: $region.text().split('+')[1], |
495 | mobile: $pn.val(), | 495 | mobile: $pn.val(), |
496 | - code: $ca.val() | 496 | + verifyCode: $ca.val() |
497 | } | 497 | } |
498 | }).then(function(data) { | 498 | }).then(function(data) { |
499 | if (data.code === 200) { | 499 | if (data.code === 200) { |
@@ -259,9 +259,12 @@ if ($udPrice.length > 0) { | @@ -259,9 +259,12 @@ if ($udPrice.length > 0) { | ||
259 | 259 | ||
260 | //【高级选项】鼠标移入显示子项 | 260 | //【高级选项】鼠标移入显示子项 |
261 | $seniorAttrWrap.on('mouseenter', '.attr', function() { | 261 | $seniorAttrWrap.on('mouseenter', '.attr', function() { |
262 | - var index = $(this).addClass('hover').index(); | 262 | + var $this = $(this); |
263 | + var index = $this.index(); | ||
264 | + | ||
265 | + $this.addClass('hover').siblings().removeClass('hover'); | ||
263 | 266 | ||
264 | - $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide'); | 267 | + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide'); |
265 | }).on('mouseleave', '.attr', function() { | 268 | }).on('mouseleave', '.attr', function() { |
266 | var $this = $(this), | 269 | var $this = $(this), |
267 | index = $this.index(); | 270 | index = $this.index(); |
@@ -296,4 +299,4 @@ $('.senior-sub').on('click', '.multi-select', function() { | @@ -296,4 +299,4 @@ $('.senior-sub').on('click', '.multi-select', function() { | ||
296 | clearTimeout(seniorHoverTime); | 299 | clearTimeout(seniorHoverTime); |
297 | }).on('mouseleave', function() { | 300 | }).on('mouseleave', function() { |
298 | hideSeniorPanel(); | 301 | hideSeniorPanel(); |
299 | -}); | ||
302 | +}); |
@@ -5,16 +5,17 @@ | @@ -5,16 +5,17 @@ | ||
5 | */ | 5 | */ |
6 | 6 | ||
7 | .product-search-page { | 7 | .product-search-page { |
8 | - | ||
9 | - | 8 | + @import "shop-entry"; |
10 | .goods-container { | 9 | .goods-container { |
11 | height: auto; | 10 | height: auto; |
12 | padding: 25px 0 0 0; | 11 | padding: 25px 0 0 0; |
13 | position: relative; | 12 | position: relative; |
14 | width: 1150px + 10px;//每列增加右边距 | 13 | width: 1150px + 10px;//每列增加右边距 |
15 | - } | ||
16 | 14 | ||
17 | - @import "shop-entry"; | 15 | + .good-info { |
16 | + width: 222px; | ||
17 | + } | ||
18 | + } | ||
18 | } | 19 | } |
19 | 20 | ||
20 | 21 |
@@ -230,12 +230,14 @@ class HomeModel | @@ -230,12 +230,14 @@ class HomeModel | ||
230 | $sortList = ChannelConfig::$newArrivalSortList[$channel]; | 230 | $sortList = ChannelConfig::$newArrivalSortList[$channel]; |
231 | // 获取分类列表获取商品信息 | 231 | // 获取分类列表获取商品信息 |
232 | $goodsList = SearchData::getSearchDataBySort($params, $sortList); | 232 | $goodsList = SearchData::getSearchDataBySort($params, $sortList); |
233 | + $pos = 1; | ||
233 | foreach ($goodsList as $goods) { | 234 | foreach ($goodsList as $goods) { |
234 | // 格式化数据 | 235 | // 格式化数据 |
235 | $val = Helpers::formatProduct($goods, true, true, true, 280, 373); | 236 | $val = Helpers::formatProduct($goods, true, true, true, 280, 373); |
236 | if ($val['price'] == false) { | 237 | if ($val['price'] == false) { |
237 | $val['price'] = $val['salePrice']; | 238 | $val['price'] = $val['salePrice']; |
238 | } | 239 | } |
240 | + $val['url'] = sprintf('%s?channel=%s&from=%s-n_%s', $val['url'], $channel , $channel, $pos++); | ||
239 | //TODO 字段要调整 | 241 | //TODO 字段要调整 |
240 | $val['isFew'] = $val['is_soon_sold_out']; | 242 | $val['isFew'] = $val['is_soon_sold_out']; |
241 | $val['tags']['isLimit'] = $val['tags']['is_limited']; | 243 | $val['tags']['isLimit'] = $val['tags']['is_limited']; |
@@ -2,7 +2,6 @@ | @@ -2,7 +2,6 @@ | ||
2 | 2 | ||
3 | use Action\AbstractAction; | 3 | use Action\AbstractAction; |
4 | use LibModels\Web\Passport\LoginData; | 4 | use LibModels\Web\Passport\LoginData; |
5 | -use Passport\PassportModel as PassportModel; | ||
6 | use Plugin\Helpers; | 5 | use Plugin\Helpers; |
7 | use Plugin\Partner\Factory; | 6 | use Plugin\Partner\Factory; |
8 | 7 | ||
@@ -62,13 +61,14 @@ class AutosignController extends AbstractAction | @@ -62,13 +61,14 @@ class AutosignController extends AbstractAction | ||
62 | 61 | ||
63 | $this->go(Factory::create('douban')->getAuthorizeUrl()); | 62 | $this->go(Factory::create('douban')->getAuthorizeUrl()); |
64 | } | 63 | } |
65 | - | ||
66 | - /** | 64 | + |
65 | + /** | ||
67 | * 微信网站授权入口 | 66 | * 微信网站授权入口 |
68 | */ | 67 | */ |
69 | - public function wechatAction(){ | ||
70 | - $url = QINWechat_Sdk_Open::getCode('http://www.yohobuy.com/passport/autosign/wechatback'); | ||
71 | - $this->helpGo($url); | 68 | + public function wechatAction() |
69 | + { | ||
70 | + $this->setSession('_TOKEN', ''); | ||
71 | + $this->go(Factory::create('wechat')->getAuthorizeUrl()); | ||
72 | } | 72 | } |
73 | 73 | ||
74 | /** | 74 | /** |
@@ -88,7 +88,12 @@ class AutosignController extends AbstractAction | @@ -88,7 +88,12 @@ class AutosignController extends AbstractAction | ||
88 | 88 | ||
89 | //判定是否需要绑定手机号 | 89 | //判定是否需要绑定手机号 |
90 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | 90 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { |
91 | - $this->go(Helpers::url('/passport/bind/index', array('openId' => $userId, 'sourceType' => 'alipay', 'nickname' => $realName))); | 91 | + $token = Helpers::makeToken($result['data']['uid']); |
92 | + $this->setSession('_TOKEN', $token); | ||
93 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
94 | + $this->setCookie('_TOKEN', $token); | ||
95 | + $fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $userId, 'sourceType' => 'alipay', 'nickname' => $realName))); | ||
96 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
92 | } | 97 | } |
93 | 98 | ||
94 | $refer = $this->getCookie('refer'); | 99 | $refer = $this->getCookie('refer'); |
@@ -126,11 +131,6 @@ class AutosignController extends AbstractAction | @@ -126,11 +131,6 @@ class AutosignController extends AbstractAction | ||
126 | $result = LoginData::signinByOpenID($partnerInfo['nickname'], $access['openid'], 'qq', $shoppingKey); | 131 | $result = LoginData::signinByOpenID($partnerInfo['nickname'], $access['openid'], 'qq', $shoppingKey); |
127 | } | 132 | } |
128 | 133 | ||
129 | - //判定是否需要绑定手机号 | ||
130 | - if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | ||
131 | - $this->go(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['openid'], 'sourceType' => 'qq', 'nickname' => $partnerInfo['nickname']))); | ||
132 | - } | ||
133 | - | ||
134 | $refer = $this->getCookie('refer'); | 134 | $refer = $this->getCookie('refer'); |
135 | if (empty($refer)) { | 135 | if (empty($refer)) { |
136 | $refer = SITE_MAIN . '/?go=1'; | 136 | $refer = SITE_MAIN . '/?go=1'; |
@@ -139,6 +139,16 @@ class AutosignController extends AbstractAction | @@ -139,6 +139,16 @@ class AutosignController extends AbstractAction | ||
139 | $refer = rawurldecode($refer); | 139 | $refer = rawurldecode($refer); |
140 | } | 140 | } |
141 | 141 | ||
142 | + //判定是否需要绑定手机号 | ||
143 | + if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | ||
144 | + $token = Helpers::makeToken($result['data']['uid']); | ||
145 | + $this->setSession('_TOKEN', $token); | ||
146 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
147 | + $this->setCookie('_TOKEN', $token); | ||
148 | + $fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['openid'], 'sourceType' => 'qq', 'nickname' => $partnerInfo['nickname']))); | ||
149 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
150 | + } | ||
151 | + | ||
142 | if (isset($result['code']) && $result['code'] == 200 && !empty($result['data']['uid'])) { | 152 | if (isset($result['code']) && $result['code'] == 200 && !empty($result['data']['uid'])) { |
143 | $token = Helpers::makeToken($result['data']['uid']); | 153 | $token = Helpers::makeToken($result['data']['uid']); |
144 | $this->setSession('_TOKEN', $token); | 154 | $this->setSession('_TOKEN', $token); |
@@ -169,7 +179,12 @@ class AutosignController extends AbstractAction | @@ -169,7 +179,12 @@ class AutosignController extends AbstractAction | ||
169 | 179 | ||
170 | //判定是否需要绑定手机号 | 180 | //判定是否需要绑定手机号 |
171 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | 181 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { |
172 | -// $this->go(Helpers::url('/passport/bind/index', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name']))); | 182 | + $token = Helpers::makeToken($result['data']['uid']); |
183 | + $this->setSession('_TOKEN', $token); | ||
184 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
185 | + $this->setCookie('_TOKEN', $token); | ||
186 | + $fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name']))); | ||
187 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
173 | } | 188 | } |
174 | 189 | ||
175 | $refer = $this->getCookie('refer'); | 190 | $refer = $this->getCookie('refer'); |
@@ -199,18 +214,21 @@ class AutosignController extends AbstractAction | @@ -199,18 +214,21 @@ class AutosignController extends AbstractAction | ||
199 | { | 214 | { |
200 | $renren = Factory::create('renren'); | 215 | $renren = Factory::create('renren'); |
201 | $access = $renren->getAccessToken(); | 216 | $access = $renren->getAccessToken(); |
202 | - /* 获取用户的详细信息 */ | ||
203 | - $partnerInfo = $renren->getUserInfo($access); | ||
204 | 217 | ||
205 | $result = array(); | 218 | $result = array(); |
206 | - if ($partnerInfo && is_array($partnerInfo)) { | 219 | + if ($access && is_array($access)) { |
207 | $shoppingKey = Helpers::getShoppingKeyByCookie(); | 220 | $shoppingKey = Helpers::getShoppingKeyByCookie(); |
208 | - $result = LoginData::signinByOpenID($partnerInfo['nickname'], $access['uid'], 'renren', $shoppingKey); | 221 | + $result = LoginData::signinByOpenID($access['user']['name'], $access['user']['id'], 'renren', $shoppingKey); |
209 | } | 222 | } |
210 | 223 | ||
211 | //判定是否需要绑定手机号 | 224 | //判定是否需要绑定手机号 |
212 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | 225 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { |
213 | -// $this->go(Helpers::url('/passport/bind/index', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['nick_name']))); | 226 | + $token = Helpers::makeToken($result['data']['uid']); |
227 | + $this->setSession('_TOKEN', $token); | ||
228 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
229 | + $this->setCookie('_TOKEN', $token); | ||
230 | + $fillHerf = rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['user']['id'], 'sourceType' => 'renren', 'nickname' => $access['user']['name']))); | ||
231 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
214 | } | 232 | } |
215 | 233 | ||
216 | $refer = $this->getCookie('refer'); | 234 | $refer = $this->getCookie('refer'); |
@@ -238,20 +256,25 @@ class AutosignController extends AbstractAction | @@ -238,20 +256,25 @@ class AutosignController extends AbstractAction | ||
238 | */ | 256 | */ |
239 | public function doubanbackAction() | 257 | public function doubanbackAction() |
240 | { | 258 | { |
241 | - $sina = Factory::create('douban'); | ||
242 | - $access = $sina->getAccessToken(); | 259 | + $douban = Factory::create('douban'); |
260 | + $access = $douban->getAccessToken(); | ||
243 | /* 获取用户的详细信息 */ | 261 | /* 获取用户的详细信息 */ |
244 | - $partnerInfo = $sina->getUserInfo($access); | 262 | + $partnerInfo = $douban->getUserInfo($access); |
245 | 263 | ||
246 | $result = array(); | 264 | $result = array(); |
247 | if ($partnerInfo && is_array($partnerInfo)) { | 265 | if ($partnerInfo && is_array($partnerInfo)) { |
248 | $shoppingKey = Helpers::getShoppingKeyByCookie(); | 266 | $shoppingKey = Helpers::getShoppingKeyByCookie(); |
249 | - $result = LoginData::signinByOpenID($partnerInfo['nickname'], $access['uid'], 'douban', $shoppingKey); | 267 | + $result = LoginData::signinByOpenID($partnerInfo['name'], $partnerInfo['uid'], 'douban', $shoppingKey); |
250 | } | 268 | } |
251 | 269 | ||
252 | //判定是否需要绑定手机号 | 270 | //判定是否需要绑定手机号 |
253 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | 271 | if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { |
254 | -// $this->go(Helpers::url('/passport/bind/index', array('openId' => $access['uid'], 'sourceType' => 'sina', 'nickname' => $partnerInfo['screen_name']))); | 272 | + $token = Helpers::makeToken($result['data']['uid']); |
273 | + $this->setSession('_TOKEN', $token); | ||
274 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
275 | + $this->setCookie('_TOKEN', $token); | ||
276 | + $fillHerf =rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $access['douban_user_id'], 'sourceType' => 'douban', 'nickname' => $partnerInfo['name']))); | ||
277 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
255 | } | 278 | } |
256 | 279 | ||
257 | $refer = $this->getCookie('refer'); | 280 | $refer = $this->getCookie('refer'); |
@@ -273,52 +296,51 @@ class AutosignController extends AbstractAction | @@ -273,52 +296,51 @@ class AutosignController extends AbstractAction | ||
273 | $this->go($refer); | 296 | $this->go($refer); |
274 | } | 297 | } |
275 | } | 298 | } |
276 | - | ||
277 | - | 299 | + |
278 | /** | 300 | /** |
279 | * 微信网站授权获取用户信息并登录 | 301 | * 微信网站授权获取用户信息并登录 |
280 | * @param string code | 302 | * @param string code |
281 | */ | 303 | */ |
282 | - public function wechatbackAction(){ | ||
283 | - $code = $this->helpGquery('code'); | ||
284 | - $accessToken = QINWechat_Sdk_Open::getAccessToken($code); | ||
285 | - $userInfo = array(); | ||
286 | - if(empty($accessToken)){ | ||
287 | - $this->helpGo('/signin.html'); | ||
288 | - } | ||
289 | - if(!isset($accessToken['access_token']) || !isset($accessToken['unionid']) || empty($accessToken['access_token']) || empty($accessToken['unionid'])){ | ||
290 | - $this->helpGo('/signin.html'); | ||
291 | - } | ||
292 | - $userInfo = QINWechat_Sdk_Open::getUserInfo($accessToken['access_token'], $accessToken['unionid']); | ||
293 | - if(empty($userInfo)){ | ||
294 | - $this->helpGo('/signin.html'); | ||
295 | - } | ||
296 | - $this->wechatlogin($userInfo); | ||
297 | - } | ||
298 | - | ||
299 | - /** | ||
300 | - * 微信登录 | ||
301 | - * @param array $userInfo | ||
302 | - */ | ||
303 | - public function wechatlogin($userInfo){ | ||
304 | - if(empty($userInfo)){ | ||
305 | - $this->helpGo('/signin.html'); | ||
306 | - } | ||
307 | - try { | ||
308 | - $oauthUserInfo = QINAuth_User_Utils::check('wechat', $userInfo['unionid'], $userInfo['nickname'], null, $userInfo); | ||
309 | - $auth = QINAuth_Factory::profile('wechat'); | ||
310 | - $res=$auth->associate($oauthUserInfo['email'], array( | ||
311 | - 'password' => QINAuth_User_Utils::$defaultPassword, | ||
312 | - 'open_id' => $userInfo['unionid'], | ||
313 | - 'nick_name' => $userInfo['nickname'] | ||
314 | - )); | ||
315 | - } catch (Exception $e) { | ||
316 | - $this->helpSession('passport_space')->__set('error_message', 'wechat' . $e->getMessage()); | ||
317 | - $this->helpGo('/signin.html'); | ||
318 | - } | ||
319 | - //跳转到 | ||
320 | - $url = $this->authInfo($res, 'wechat' , $oauthUserInfo['email']); | ||
321 | - $this->helpGo($url); | ||
322 | - } | 304 | + public function wechatbackAction() |
305 | + { | ||
306 | + $wechat = Factory::create('wechat'); | ||
307 | + $access = $wechat->getAccessToken(); | ||
308 | + /* 获取用户的详细信息 */ | ||
309 | + $partnerInfo = $wechat->getUserInfo($access); | ||
310 | + | ||
311 | + $result = array(); | ||
312 | + if ($partnerInfo && is_array($partnerInfo)) { | ||
313 | + $shoppingKey = Helpers::getShoppingKeyByCookie(); | ||
314 | + $result = LoginData::signinByOpenID($partnerInfo['nickname'],$partnerInfo['openid'], 'wechat', $shoppingKey,$partnerInfo['openid']); | ||
315 | + } | ||
316 | + | ||
317 | + //判定是否需要绑定手机号 | ||
318 | + if (isset($result['data']['mobile']) && $result['data']['mobile'] == '') { | ||
319 | + $token = Helpers::makeToken($result['data']['uid']); | ||
320 | + $this->setSession('_TOKEN', $token); | ||
321 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
322 | + $this->setCookie('_TOKEN', $token); | ||
323 | + $fillHerf =rawurlencode(Helpers::url('/passport/autouserinfo/userinfo', array('openId' => $partnerInfo['openid'], 'sourceType' => 'wechat', 'nickname' => $partnerInfo['nickname']))); | ||
324 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $fillHerf)); | ||
325 | + } | ||
323 | 326 | ||
327 | + $refer = $this->getCookie('refer'); | ||
328 | + if (empty($refer)) { | ||
329 | + $refer = SITE_MAIN . '/?go=1'; | ||
330 | + } | ||
331 | + else { | ||
332 | + $refer = rawurldecode($refer); | ||
333 | + } | ||
334 | + | ||
335 | + if (isset($result['code']) && $result['code'] == 200 && !empty($result['data']['uid'])) { | ||
336 | + $token = Helpers::makeToken($result['data']['uid']); | ||
337 | + $this->setSession('_TOKEN', $token); | ||
338 | + $this->setSession('_LOGIN_UID', $result['data']['uid']); | ||
339 | + $this->setCookie('_TOKEN', $token); | ||
340 | + $this->go(Helpers::syncUserSession($result['data']['uid'], $refer)); | ||
341 | + } | ||
342 | + else { | ||
343 | + $this->go($refer); | ||
344 | + } | ||
345 | + } | ||
324 | } | 346 | } |
-
Please register or login to post a comment