Toggle navigation
Toggle navigation
This project
Loading...
Sign in
wangshusheng
/
YOHOBUYPC
·
Commits
Go to a project
GitLab
Go to dashboard
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
uedxwg
9 years ago
Commit
20217a3a2568d50cd4cd7f25df5c4c117b708c5e
2 parents
39cbda82
5874b818
Merge branch 'develop' of
http://git.dev.yoho.cn/web/yohobuy
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
144 additions
and
95 deletions
library/Api/Yohobuy.php
library/LibModels/Wap/Passport/LoginData.php
library/LibModels/Wap/Passport/RegData.php
library/Plugin/Helpers.php
library/Plugin/Partner/Factory.php
library/Plugin/Partner/sinaweibo/Config.inc.php
static/js/product/detail/detail.js
yohobuy/m.yohobuy.com/application/controllers/Home.php
yohobuy/m.yohobuy.com/application/models/Home/Order.php
yohobuy/m.yohobuy.com/application/models/Product/Detail.php
yohobuy/m.yohobuy.com/application/modules/Passport/controllers/Login.php
yohobuy/m.yohobuy.com/application/modules/Passport/controllers/Reg.php
library/Api/Yohobuy.php
View file @
20217a3
...
...
@@ -139,7 +139,7 @@ class Yohobuy
if
(
!
empty
(
$data
))
{
$url
=
self
::
httpBuildQuery
(
$url
,
$data
);
}
var_dump
(
$url
);
/* 开启缓存的情况 */
if
(
$cache
&&
USE_CACHE
)
{
// 先尝试获取一级缓存(master), 有数据则直接返回.
...
...
@@ -212,7 +212,16 @@ class Yohobuy
unset
(
$data
[
'private_key'
]);
}
if
(
!
empty
(
$data
))
{
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
$data
);
// 新加支持application/x-www-form-urlencoded调用方式
$str
=
''
;
foreach
(
$data
as
$key
=>
$val
)
{
$str
.=
$key
.
'='
.
$val
.
'&'
;
}
$str
=
rtrim
(
$str
,
'&'
);
// curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt
(
$ch
,
CURLOPT_POSTFIELDS
,
$str
);
}
$result
=
curl_exec
(
$ch
);
if
(
!
$returnJson
&&
!
empty
(
$result
))
{
...
...
library/LibModels/Wap/Passport/LoginData.php
View file @
20217a3
...
...
@@ -65,9 +65,11 @@ class LoginData
// 构建必传参数
$param
=
Yohobuy
::
param
();
$param
[
'v'
]
=
'4'
;
// 只有早期的V4版本才有直接生成UID
$param
[
'method'
]
=
'app.passport.signinByOpenID'
;
$param
[
'openId'
]
=
$openId
;
$param
[
'source_type'
]
=
$sourceType
;
$param
[
'nickname'
]
=
$nickname
;
$param
[
'client_secret'
]
=
Sign
::
getSign
(
$param
);
return
Yohobuy
::
get
(
Yohobuy
::
API_URL
,
$param
);
...
...
library/LibModels/Wap/Passport/RegData.php
View file @
20217a3
...
...
@@ -165,7 +165,7 @@ class RegData
$param
[
'password'
]
=
$password
;
$param
[
'client_secret'
]
=
Sign
::
getSign
(
$param
);
return
Yohobuy
::
post
(
Yohobuy
::
API_URL
,
$param
,
true
);
return
Yohobuy
::
post
(
Yohobuy
::
API_URL
,
$param
);
}
}
...
...
library/Plugin/Helpers.php
View file @
20217a3
...
...
@@ -542,5 +542,20 @@ class Helpers
return
$vipLevel
;
}
/**
* 同步用户的会话
*
* 转向老的PHP服务器上处理, 因购物车相关的操作会依赖SESSION
*
* @param int $uid 用户ID
* @param string $refer 访问来源
* @param string $callback 回调方法名
* @return string
*/
public
static
function
syncUserSession
(
$uid
,
$refer
=
''
,
$callback
=
'call'
)
{
return
'http://m1.yohobuy.com/Passport/session/index?callback='
.
$callback
.
'&uid='
.
$uid
.
'&go='
.
$refer
;
}
}
...
...
library/Plugin/Partner/Factory.php
View file @
20217a3
...
...
@@ -49,8 +49,8 @@ abstract class Factory
{
// require dirname(__FILE__) . DS . $apiName . DS . 'Call.class.php';
$apiNameCase
=
ucfirst
(
$apiName
);
$apiClass
=
"Plugin\Partner
\\
{
$apiNameCase
}
\\
Call"
;
//$apiNameCase = ucfirst($apiName);
$apiClass
=
"Plugin\Partner
\\
{
$apiName
}
\Call"
;
self
::
$apiObjs
[
$apiName
]
=
new
$apiClass
();
self
::
$apiObjs
[
$apiName
]
->
apiName
=
$apiName
;
...
...
library/Plugin/Partner/sinaweibo/Config.inc.php
View file @
20217a3
...
...
@@ -2,7 +2,7 @@
defined
(
'SITE_MAIN'
)
||
define
(
'SITE_MAIN'
,
$_SERVER
[
'HTTP_HOST'
]);
return
array
(
'appId'
=>
'2707954749'
,
'appKey'
=>
'431730e25a8a0983964a740731c3cb7d'
,
'appId'
=>
'3739328910'
,
'appKey'
=>
'9d44cded26d048e23089e5e975c93df1'
,
'appCallbackUrl'
=>
SITE_MAIN
.
'/passport/login/sinacallback'
,
);
\ No newline at end of file
...
...
static/js/product/detail/detail.js
View file @
20217a3
...
...
@@ -12,13 +12,27 @@ var goodsSwiper,
$discountFolder
=
$
(
'.goodsDiscount .discount-folder'
),
$discountArrow
=
$
(
'.goodsDiscount .first-item span'
);
var
goodsDiscountHammer
=
new
Hammer
(
document
.
getElementById
(
'goodsDiscount'
));
var
goodsDiscountEl
=
document
.
getElementById
(
'goodsDiscount'
),
goodsDiscountHammer
=
goodsDiscountEl
&&
new
Hammer
(
goodsDiscountEl
);
require
(
'./desc'
);
require
(
'./comments-consults'
);
//add extra marign-bottom for footer to show the yoho copyright
window
.
reMarginFooter
(
'.cart-bar'
);
function
showFooter
()
{
var
$cartBar
=
$
(
'.cart-bar'
);
var
timer
=
setInterval
(
function
()
{
if
(
$cartBar
)
{
window
.
reMarginFooter
(
'.cart-bar'
);
clearInterval
(
timer
);
}
else
{
$cartBar
=
$
(
'.cart-bar'
);
}
},
200
);
}
showFooter
();
lazyLoad
(
$
(
'img.lazy'
));
...
...
@@ -29,7 +43,8 @@ goodsSwiper = new Swiper('.banner-swiper', {
paginationClickable
:
true
,
pagination
:
'.banner-top .pagination-inner'
,
nextButton
:
'.my-swiper-button-next'
,
prevButton
:
'.my-swiper-button-prev'
prevButton
:
'.my-swiper-button-prev'
,
spaceBetween
:
3
});
...
...
@@ -40,15 +55,18 @@ if (0 === $('.goodsDiscount .discount-folder').children().length) {
}
//goods-discount下拉按钮点击事件
goodsDiscountHammer
.
on
(
'tap'
,
function
(
e
)
{
if
(
$discountFolder
.
is
(
':hidden'
))
{
$discountArrow
.
removeClass
(
'icon-down'
).
addClass
(
'icon-up'
).
html
(
''
);
$discountFolder
.
slideDown
();
}
else
{
$discountArrow
.
removeClass
(
'icon-up'
).
addClass
(
'icon-down'
).
html
(
''
);
$discountFolder
.
slideUp
();
}
return
false
;
});
if
(
goodsDiscountHammer
)
{
goodsDiscountHammer
.
on
(
'tap'
,
function
(
e
)
{
if
(
$discountFolder
.
is
(
':hidden'
))
{
$discountArrow
.
removeClass
(
'icon-down'
).
addClass
(
'icon-up'
).
html
(
''
);
$discountFolder
.
slideDown
();
}
else
{
$discountArrow
.
removeClass
(
'icon-up'
).
addClass
(
'icon-down'
).
html
(
''
);
$discountFolder
.
slideUp
();
}
return
false
;
});
}
require
(
'./like'
);
...
...
yohobuy/m.yohobuy.com/application/controllers/Home.php
View file @
20217a3
...
...
@@ -471,6 +471,7 @@ class HomeController extends AbstractAction
$service
=
array
(
'header'
=>
array
(
'title'
=>
'在线客服'
),
'pageFooter'
=>
true
,
'service'
=>
$service
);
...
...
yohobuy/m.yohobuy.com/application/models/Home/Order.php
View file @
20217a3
...
...
@@ -23,7 +23,7 @@ class OrderModel
{
$result
=
array
();
//调用接口获得数据
$data
=
OrderData
::
getOrderData
(
$type
,
$page
,
$limit
,
$gender
,
$yh_channel
,
3444485
);
$data
=
OrderData
::
getOrderData
(
$type
,
$page
,
$limit
,
$gender
,
$yh_channel
,
$uid
);
// 判断是否还有数据, 没有数据则返回空
if
(
isset
(
$data
[
'data'
][
'page_total'
])
&&
$page
>
$data
[
'data'
][
'page_total'
])
{
return
$result
;
...
...
yohobuy/m.yohobuy.com/application/models/Product/Detail.php
View file @
20217a3
...
...
@@ -211,9 +211,12 @@ class DetailModel
// 悬浮的购物车信息
$result
[
'cartInfo'
]
=
array
(
'cartUrl'
=>
Helpers
::
url
(
'/product/buy_'
.
$productId
.
'_'
.
$goodsId
.
'.html'
),
'cartUrl'
=>
Helpers
::
url
(
'/cart/index/index'
,
null
),
// 购物车链接
'addToCartUrl'
=>
Helpers
::
url
(
'/product/buy_'
.
$productId
.
'_'
.
$goodsId
.
'.html'
),
// 加入购物车链接
'numInCart'
=>
0
,
'goodsInstore'
=>
$baseInfo
[
'storage'
],
'goodsInstore'
=>
$baseInfo
[
'storage'
],
// 库存量
'soldOut'
=>
$baseInfo
[
'storage'
]
==
0
,
// 已售磬
'notForSale'
=>
$baseInfo
[
'attribute'
]
==
2
,
// 非卖品
);
// 是否收藏
...
...
yohobuy/m.yohobuy.com/application/modules/Passport/controllers/Login.php
View file @
20217a3
...
...
@@ -19,8 +19,10 @@ class LoginController extends AbstractAction
{
$this
->
setTitle
(
'登录'
);
$refer
=
$this
->
get
(
'refer'
,
SITE_MAIN
.
'/?go=1'
);
$this
->
setCookie
(
'refer'
,
$refer
);
$refer
=
$this
->
get
(
'refer'
);
if
(
!
empty
(
$refer
))
{
$this
->
setCookie
(
'refer'
,
$refer
);
}
$data
=
array
(
'loginIndex'
=>
true
,
// 模板中使用JS的标识
...
...
@@ -47,8 +49,10 @@ class LoginController extends AbstractAction
{
$this
->
setTitle
(
'国际账号登录'
);
$refer
=
$this
->
get
(
'refer'
,
SITE_MAIN
.
'/?go=1'
);
$this
->
setCookie
(
'refer'
,
$refer
);
$refer
=
$this
->
get
(
'refer'
);
if
(
!
empty
(
$refer
))
{
$this
->
setCookie
(
'refer'
,
$refer
);
}
$data
=
array
();
$data
[
'loginInternational'
]
=
true
;
// 模板中使用JS的标识
...
...
@@ -70,7 +74,9 @@ class LoginController extends AbstractAction
{
$this
->
setCookie
(
'_UID'
,
''
);
headers_sent
()
||
header
(
'Location: /'
);
$refer
=
$this
->
server
(
'HTTP_REFERER'
,
SITE_MAIN
);
$this
->
go
(
$refer
);
}
/**
...
...
@@ -115,12 +121,11 @@ class LoginController extends AbstractAction
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
else
{
$refer
=
rawurldecode
(
$refer
);
}
$data
[
'data'
]
=
array
(
// 为了异步调用老系统的SESSION会话
'session'
=>
'http://m1.yohobuy.com/Passport/session/index?callback=call&uid='
.
$data
[
'data'
][
'uid'
]
.
'&sign='
.
md5
(
$data
[
'data'
][
'uid'
]
.
'Js8Yn0!EwPM45-ws'
),
'href'
=>
rawurldecode
(
$refer
),
);
$data
[
'data'
][
'session'
]
=
Helpers
::
syncUserSession
(
$data
[
'data'
][
'uid'
]);
$data
[
'data'
][
'href'
]
=
$refer
;
}
while
(
false
);
$this
->
echoJson
(
$data
);
...
...
@@ -131,10 +136,6 @@ class LoginController extends AbstractAction
*/
public
function
alipayAction
()
{
$redirect
=
$this
->
_request
->
getServer
(
'HTTP_REFERER'
,
''
);
if
(
$redirect
!=
''
)
{
$this
->
setCookie
(
'alipay_redirect'
,
$redirect
);
}
Factory
::
create
(
'alipay'
)
->
getAuthorizeUrl
();
exit
();
...
...
@@ -145,10 +146,6 @@ class LoginController extends AbstractAction
*/
public
function
qqAction
()
{
$redirect
=
$this
->
_request
->
getServer
(
'HTTP_REFERER'
,
''
);
if
(
$redirect
!=
''
)
{
$this
->
setCookie
(
'qq_redirect'
,
$redirect
);
}
Factory
::
create
(
'qqconnect'
)
->
getAuthorizeUrl
();
exit
();
...
...
@@ -159,13 +156,7 @@ class LoginController extends AbstractAction
*/
public
function
sinaAction
()
{
$redirect
=
$this
->
_request
->
getServer
(
'HTTP_REFERER'
,
''
);
if
(
$redirect
!=
''
)
{
$this
->
setCookie
(
'sina_redirect'
,
$redirect
);
}
header
(
'Location:'
.
Factory
::
create
(
'sinaweibo'
)
->
getAuthorizeUrl
());
exit
();
$this
->
go
(
Factory
::
create
(
'sinaweibo'
)
->
getAuthorizeUrl
());
}
/**
...
...
@@ -173,30 +164,27 @@ class LoginController extends AbstractAction
*/
public
function
alipaycallbackAction
()
{
$nickname
=
''
;
$alipay
=
Factory
::
create
(
'alipay'
);
$access
=
$alipay
->
getAccessToken
();
if
(
!
isset
(
$_GET
[
'real_name'
]))
{
/* 获取支付宝用户的详细信息 */
$userInfo
=
$alipay
->
getUserInfo
(
$access
);
if
(
$userInfo
&&
$userInfo
[
'is_success'
]
===
'T'
&&
isset
(
$userInfo
[
'response'
][
'user_info'
][
'user_name'
]))
{
$nickname
=
$userInfo
[
'response'
][
'user_info'
][
'user_name'
];
// $alipayEmail = $userInfo['response']['user_info']['email'];
}
$realName
=
$this
->
_request
->
get
(
'real_name'
);
$email
=
$this
->
_request
->
get
(
'email'
);
$userId
=
$this
->
_request
->
get
(
'user_id'
);
$result
=
array
();
if
(
isset
(
$realName
,
$email
,
$userId
))
{
$result
=
LoginData
::
signinByOpenID
(
$realName
,
$userId
,
'alipay'
);
}
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
else
{
$nickname
=
$_GET
[
'real_name'
];
// $alipayEmail = isset($_GET['email']) ? $_GET['email'] : '';
$refer
=
rawurldecode
(
$refer
);
}
$result
=
LoginData
::
signinByOpenID
(
$nickname
,
$access
[
'user_id'
],
'qq'
);
if
(
$result
[
'code'
]
==
200
)
{
$redirect
=
$this
->
_request
->
getCookie
(
'alipay_redirect'
);
$redirect
&&
$this
->
redirect
(
$redirect
);
if
(
$result
[
'code'
]
==
200
&&
!
empty
(
$result
[
'data'
][
'uid'
]))
{
$this
->
go
(
Helpers
::
syncUserSession
(
$result
[
'data'
][
'uid'
],
$refer
));
}
else
{
$this
->
go
(
$refer
);
}
$this
->
redirect
(
'/'
);
}
/**
...
...
@@ -209,16 +197,23 @@ class LoginController extends AbstractAction
/* 获取QQ腾讯用户的详细信息 */
$partnerInfo
=
$qqconnect
->
getUserInfo
(
$access
);
$result
=
array
();
if
(
$partnerInfo
&&
is_array
(
$partnerInfo
))
{
$result
=
LoginData
::
signinByOpenID
(
$partnerInfo
[
'nickname'
],
$access
[
'openid'
],
'qq'
);
if
(
$result
[
'code'
]
==
200
)
{
$redirect
=
$this
->
_request
->
getCookie
(
'qq_redirect'
);
$redirect
&&
$this
->
redirect
(
$redirect
);
}
$result
=
LoginData
::
signinByOpenID
(
$partnerInfo
[
'nickname'
],
$access
[
'openid'
],
'qq'
);
}
$this
->
redirect
(
'/'
);
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
else
{
$refer
=
rawurldecode
(
$refer
);
}
if
(
$result
[
'code'
]
==
200
&&
!
empty
(
$result
[
'data'
][
'uid'
]))
{
$this
->
go
(
Helpers
::
syncUserSession
(
$result
[
'data'
][
'uid'
],
$refer
));
}
else
{
$this
->
go
(
$refer
);
}
}
/**
...
...
@@ -231,16 +226,24 @@ class LoginController extends AbstractAction
/* 获取QQ腾讯用户的详细信息 */
$partnerInfo
=
$sina
->
getUserInfo
(
$access
);
$result
=
array
();
if
(
$partnerInfo
&&
is_array
(
$partnerInfo
))
{
$result
=
LoginData
::
signinByOpenID
(
$partnerInfo
[
'screen_name'
],
$access
[
'uid'
],
'sina'
);
if
(
$result
[
'code'
]
==
200
)
{
$redirect
=
$this
->
_request
->
getCookie
(
'sina_redirect'
);
$redirect
&&
$this
->
redirect
(
$redirect
);
}
}
$this
->
redirect
(
'/'
);
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
else
{
$refer
=
rawurldecode
(
$refer
);
}
if
(
$result
[
'code'
]
==
200
&&
!
empty
(
$result
[
'data'
][
'uid'
]))
{
$this
->
go
(
Helpers
::
syncUserSession
(
$result
[
'data'
][
'uid'
],
$refer
));
}
else
{
$this
->
go
(
$refer
);
}
}
}
...
...
yohobuy/m.yohobuy.com/application/modules/Passport/controllers/Reg.php
View file @
20217a3
...
...
@@ -133,7 +133,7 @@ class RegController extends AbstractAction
/* 返回跳转到验证页面的链接 */
if
(
$data
[
'code'
]
==
200
)
{
$token
=
Helpers
::
makeToken
(
$mobile
);
$data
[
'data'
]
=
'/passport/reg/code?token='
.
$token
.
'&phoneNum='
.
$mobile
.
'&areaCode='
.
$area
;
$data
[
'data'
]
=
Helpers
::
url
(
'/passport/reg/code'
,
array
(
'token'
=>
$token
,
'phoneNum'
=>
$mobile
,
'areaCode'
=>
$area
))
;
}
}
while
(
false
);
...
...
@@ -176,7 +176,7 @@ class RegController extends AbstractAction
/* 返回跳转到设置密码的链接 */
if
(
$data
[
'code'
]
==
200
)
{
$token
=
Helpers
::
makeToken
(
$mobile
);
$data
[
'data'
]
=
'/passport/reg/password?token='
.
$token
.
'&phoneNum='
.
$mobile
.
'&areaCode='
.
$area
;
$data
[
'data'
]
=
Helpers
::
url
(
'/passport/reg/password'
,
array
(
'token'
=>
$token
,
'phoneNum'
=>
$mobile
,
'areaCode'
=>
$area
))
;
}
else
if
(
$data
[
'code'
]
==
404
)
{
$data
[
'message'
]
=
'验证码错误'
;
//统一验证提示
}
...
...
@@ -259,22 +259,20 @@ class RegController extends AbstractAction
/* 验证注册的标识码是否有效 */
$data
=
RegData
::
regMobile
(
$area
,
$mobile
,
$password
);
if
(
!
isset
(
$data
[
'code'
]))
{
if
(
!
isset
(
$data
[
'code'
])
||
$data
[
'code'
]
!=
200
)
{
break
;
}
/* 返回跳转到来源页面 */
if
(
$data
[
'code'
]
==
200
)
{
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
$data
[
'data'
]
=
array
(
// 为了异步调用老系统的SESSION会话
'session'
=>
'http://m1.yohobuy.com/Passport/session/index?uid='
.
$data
[
'data'
][
'uid'
]
.
'&sign='
.
md5
(
$data
[
'data'
][
'uid'
]
.
'Js8Yn0!EwPM45-ws'
),
'href'
=>
rawurldecode
(
$refer
),
);
$refer
=
$this
->
getCookie
(
'refer'
);
if
(
empty
(
$refer
))
{
$refer
=
SITE_MAIN
.
'/?go=1'
;
}
else
{
$refer
=
rawurldecode
(
$refer
);
}
$data
[
'data'
][
'session'
]
=
Helpers
::
syncUserSession
(
$data
[
'data'
][
'uid'
]);
$data
[
'data'
][
'href'
]
=
$refer
;
}
while
(
false
);
$this
->
echoJson
(
$data
);
...
...
Please
register
or
login
to post a comment