Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jcy2004x
ShopXO
提交
3c7481a5
ShopXO
项目概览
jcy2004x
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3c7481a5
编写于
6月 28, 2019
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.6
上级
fac8a4b6
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
45 addition
and
245 deletion
+45
-245
application/api/controller/User.php
application/api/controller/User.php
+4
-32
application/common.php
application/common.php
+0
-68
application/service/UserService.php
application/service/UserService.php
+1
-2
extend/base/AlipayAuth.php
extend/base/AlipayAuth.php
+34
-131
public/appmini/old/alipay/app.js
public/appmini/old/alipay/app.js
+2
-2
public/appmini/old/alipay/pages/login/login.js
public/appmini/old/alipay/pages/login/login.js
+4
-10
未找到文件。
application/api/controller/User.php
浏览文件 @
3c7481a5
...
...
@@ -97,28 +97,6 @@ class User extends Common
return
DataReturn
(
'授权登录成功'
,
0
,
$result
[
'data'
][
'user_id'
]);
}
return
DataReturn
(
$result
[
'msg'
],
-
100
);
// // 参数
// if(empty($this->data_post['authcode']))
// {
// return DataReturn('授权码不能为空', -1);
// }
// // 授权
// $ret = (new \base\AlipayAuth())->GetAuthCode($this->data_post['authcode'], MyC('common_app_mini_alipay_appid'));
// if($ret['status'] != 0)
// {
// return DataReturn($ret['msg'], -10);
// } else {
// $data = $ret['data'];
// $data['gender'] = empty($data['gender']) ? 0 : ($data['gender'] == 'm') ? 2 : 1;
// $data['openid'] = $data['user_id'];
// $data['referrer']= isset($this->data_post['referrer']) ? $this->data_post['referrer'] : 0;
// return UserService::AuthUserProgram($data, 'alipay_openid');
// }
}
/**
...
...
@@ -138,11 +116,6 @@ class User extends Common
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
// [
// 'checked_type' => 'empty',
// 'key_name' => 'userinfo',
// 'error_msg' => '用户数据为空',
// ],
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
!==
true
)
...
...
@@ -154,15 +127,14 @@ class User extends Common
$user
=
UserService
::
UserInfo
(
'alipay_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
$result
=
$this
->
data_post
;
$result
[
'nick_name'
]
=
isset
(
$result
[
'nickName'
])
?
$result
[
'nickName'
]
:
''
;
$result
[
'gender'
]
=
empty
(
$result
[
'gender'
])
?
0
:
(
$result
[
'gender'
]
==
'f'
)
?
1
:
2
;
return
UserService
::
AuthUserProgram
(
$result
,
'alipay_openid'
);
$result
[
'nick_name'
]
=
isset
(
$this
->
data_post
[
'nickName'
])
?
$this
->
data_post
[
'nickName'
]
:
''
;
$this
->
data_post
[
'gender'
]
=
empty
(
$this
->
data_post
[
'gender'
])
?
0
:
(
$this
->
data_post
[
'gender'
]
==
'f'
)
?
1
:
2
;
return
UserService
::
AuthUserProgram
(
$this
->
data_post
,
'alipay_openid'
);
}
else
{
$user
[
'is_mandatory_bind_mobile'
]
=
intval
(
MyC
(
'common_user_is_mandatory_bind_mobile'
));
return
DataReturn
(
'授权成功'
,
0
,
$user
);
}
return
DataReturn
(
empty
(
$
resul
t
)
?
'获取用户信息失败'
:
$result
,
-
100
);
return
DataReturn
(
empty
(
$
this
->
data_pos
t
)
?
'获取用户信息失败'
:
$result
,
-
100
);
}
/**
...
...
application/common.php
浏览文件 @
3c7481a5
...
...
@@ -1293,74 +1293,6 @@ function Authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
}
}
/**
* [SS 设置缓存]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-24T19:01:00+0800
* @param [string] $key [缓存key]
* @param [mixed] $data [需要存储的数据]
* @return [boolean] [成功true, 失败false]
*/
function
SS
(
$key
,
$data
)
{
if
(
empty
(
$key
)
||
empty
(
$data
))
{
return
false
;
}
$data
[
'cache_time'
]
=
time
();
return
cache
(
$key
,
$data
);
}
/**
* [GS 获取缓存]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-24T18:54:54+0800
* @param [string] $key [缓存key]
* @param [integer] $expires_time [默认过期时间0长期有效(单位秒)]
* @param [boolean] $is_filem_time [是否返回文件上一次更新时间]
* @return [boolean|mixed] [没数据false, 则数据]
*/
function
GS
(
$key
,
$expires_time
=
0
,
$is_filem_time
=
false
)
{
if
(
empty
(
$key
))
{
return
false
;
}
$data
=
cache
(
$key
);
if
(
$data
!==
null
)
{
$expires_time
=
intval
(
$expires_time
);
if
(
$expires_time
>
0
)
{
if
(
$data
[
'cache_time'
]
+
$expires_time
<
time
())
{
return
false
;
}
}
return
$data
;
}
return
false
;
}
/**
* [DS 删除缓存]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-24T19:01:00+0800
* @param [string] $key [缓存key]
* @return [boolean] [成功true, 失败false]
*/
function
DS
(
$key
)
{
return
cache
(
$key
,
null
);
}
/**
* [ParamsChecked 参数校验方法]
* @author Devil
...
...
application/service/UserService.php
浏览文件 @
3c7481a5
...
...
@@ -1093,7 +1093,6 @@ class UserService
// 用户数据
$salt
=
GetNumberCode
(
6
);
$data
=
[
'add_time'
=>
time
(),
'upd_time'
=>
time
(),
'salt'
=>
$salt
,
'pwd'
=>
LoginPwdEncryption
(
$params
[
'pwd'
],
$salt
),
...
...
@@ -1676,6 +1675,7 @@ class UserService
$data
[
'referrer'
]
=
self
::
UserReferrerDecrypt
(
$params
);
// 添加用户
$data
[
'add_time'
]
=
time
();
$user_id
=
Db
::
name
(
'User'
)
->
insertGetId
(
$data
);
if
(
$user_id
>
0
)
{
...
...
@@ -1819,7 +1819,6 @@ class UserService
// 不存在添加/则更新
if
(
empty
(
$temp_user
))
{
$data
[
'add_time'
]
=
time
();
$user_ret
=
self
::
UserInsert
(
$data
,
$params
);
if
(
$user_ret
[
'code'
]
==
0
)
{
...
...
extend/base/AlipayAuth.php
浏览文件 @
3c7481a5
...
...
@@ -17,137 +17,6 @@ namespace base;
*/
class
AlipayAuth
{
/**
* [__construct 构造方法]
*/
public
function
__construct
(){}
/**
* [GetParamSign 生成参数和签名]
* @param [array] $data [待生成的参数]
* @param [array] $config [配置信息]
* @return [array] [生成好的参数和签名]
*/
private
function
GetParamSign
(
$data
,
$config
=
[])
{
$param
=
''
;
$sign
=
''
;
ksort
(
$data
);
foreach
(
$data
AS
$key
=>
$val
)
{
$param
.
=
"
$key
="
.
urlencode
(
$val
)
.
"&"
;
$sign
.
=
"
$key
=
$val
&"
;
}
$result
=
array
(
'param'
=>
substr
(
$param
,
0
,
-
1
),
'value'
=>
substr
(
$sign
,
0
,
-
1
),
);
if
(
!
empty
(
$config
[
'key'
]))
{
$result
[
'sign'
]
=
$result
[
'value'
]
.
$config
[
'key'
];
}
return
$result
;
}
/**
* [GetAlipayUserInfo 支付宝小程序获取用户信息]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-23T22:30:43+0800
* @param [string] $authcode [用户授权码]
* @param [string] $app_id [应用appid]
* @return [array|boolean] [成功返回用户数据, 则false]
*/
public
function
GetAlipayUserInfo
(
$authcode
,
$app_id
)
{
// 从缓存获取用户信息
$key
=
'alipay_userinfo_'
.
$authcode
;
$result
=
GS
(
$key
);
if
(
$result
!==
false
)
{
return
[
'status'
=>
0
,
'msg'
=>
'success'
,
'data'
=>
$result
];
}
// 获取授权信息并且获取用户信息
$auth
=
$this
->
GetAuthAccessToken
(
$authcode
,
$app_id
);
if
(
$auth
[
'status'
]
==
0
)
{
// 请求参数
$param
=
[
'app_id'
=>
$app_id
,
'method'
=>
'alipay.user.info.share'
,
'charset'
=>
'utf-8'
,
'format'
=>
'JSON'
,
'sign_type'
=>
'RSA2'
,
'timestamp'
=>
date
(
'Y-m-d H:i:s'
),
'version'
=>
'1.0'
,
'auth_token'
=>
$auth
[
'data'
][
'access_token'
],
];
// 生成签名参数+签名
$p
=
$this
->
GetParamSign
(
$param
);
$param
[
'sign'
]
=
$this
->
MyRsaSign
(
$p
[
'value'
]);
// 执行请求
$result
=
$this
->
HttpRequest
(
'https://openapi.alipay.com/gateway.do'
,
$param
);
if
(
!
empty
(
$result
[
'alipay_user_info_share_response'
][
'code'
])
&&
$result
[
'alipay_user_info_share_response'
][
'code'
]
==
10000
)
{
// 验证签名正确则存储缓存返回数据
if
(
!
$this
->
SyncRsaVerify
(
$result
,
'alipay_user_info_share_response'
))
{
return
[
'status'
=>-
1
,
'msg'
=>
'签名验证失败'
];
}
// 存储缓存
SS
(
$key
,
$result
[
'alipay_user_info_share_response'
]);
// 返回用户数据
return
[
'status'
=>
0
,
'msg'
=>
'success'
,
'data'
=>
$result
[
'alipay_user_info_share_response'
]];
}
$msg
=
empty
(
$result
[
'error_response'
][
'sub_msg'
])
?
'授权失败'
:
$result
[
'error_response'
][
'sub_msg'
];
if
(
!
empty
(
$result
[
'alipay_user_info_share_response'
][
'sub_msg'
]))
{
$msg
=
$result
[
'alipay_user_info_share_response'
][
'sub_msg'
];
}
return
[
'status'
=>-
1
,
'msg'
=>
$msg
];
}
else
{
return
$auth
;
}
}
/**
* [GetAuthAccessToken 根据用户授权换取授权访问令牌]
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2017-09-23T22:36:26+0800
* @param [string] $authcode [用户授权码]
* @param [string] $app_id [应用appid]
* @return [array|boolean] [失败false, 用户授权信息]
*/
public
function
GetAuthAccessToken
(
$authcode
,
$app_id
)
{
// 获取用户授权信息
$key
=
'alipay_authcode_'
.
$authcode
;
$result
=
GS
(
$key
,
0
,
true
);
// 过期判断
if
(
$result
==
false
||
$result
[
'filemtime'
]
+
$result
[
're_expires_in'
]
<
time
())
{
$result
=
$this
->
GetAuthCode
(
$app_id
,
$key
,
$authcode
);
}
else
{
if
(
$result
[
'filemtime'
]
+
$result
[
'expires_in'
]
<
time
())
{
$result
=
$this
->
GetAuthCode
(
$app_id
,
$key
,
''
,
$result
[
'refresh_token'
]);
}
}
return
$result
;
}
/**
* [GetAuthCode 获取用户授权信息]
* @author Devil
...
...
@@ -201,6 +70,40 @@ class AlipayAuth
return
[
'status'
=>-
1
,
'msg'
=>
$msg
];
}
/**
* [__construct 构造方法]
*/
public
function
__construct
(){}
/**
* [GetParamSign 生成参数和签名]
* @param [array] $data [待生成的参数]
* @param [array] $config [配置信息]
* @return [array] [生成好的参数和签名]
*/
private
function
GetParamSign
(
$data
,
$config
=
[])
{
$param
=
''
;
$sign
=
''
;
ksort
(
$data
);
foreach
(
$data
AS
$key
=>
$val
)
{
$param
.
=
"
$key
="
.
urlencode
(
$val
)
.
"&"
;
$sign
.
=
"
$key
=
$val
&"
;
}
$result
=
array
(
'param'
=>
substr
(
$param
,
0
,
-
1
),
'value'
=>
substr
(
$sign
,
0
,
-
1
),
);
if
(
!
empty
(
$config
[
'key'
]))
{
$result
[
'sign'
]
=
$result
[
'value'
]
.
$config
[
'key'
];
}
return
$result
;
}
/**
* [MyRsaSign 签名字符串]
* @author Devil
...
...
public/appmini/old/alipay/app.js
浏览文件 @
3c7481a5
...
...
@@ -293,11 +293,11 @@ App({
*/
user_auth_login
(
object
,
method
,
auth_data
)
{
var
openid
=
my
.
getStorageSync
({
key
:
this
.
data
.
cache_user_login_key
});
if
((
openid
||
null
)
==
null
)
if
((
openid
.
data
||
null
)
==
null
)
{
this
.
user_login
(
object
,
method
,
auth_data
);
}
else
{
this
.
get_user_login_info
(
object
,
method
,
openid
,
auth_data
);
this
.
get_user_login_info
(
object
,
method
,
openid
.
data
,
auth_data
);
}
},
...
...
public/appmini/old/alipay/pages/login/login.js
浏览文件 @
3c7481a5
...
...
@@ -17,7 +17,7 @@ Page({
*/
onLoad
(
option
)
{
// 标题设置
my
.
setNavigationBar
({
title
:
'
手机绑定
'
});
my
.
setNavigationBar
({
title
:
(
this
.
data
.
user
==
null
)
?
'
授权用户信息
'
:
'
手机绑定
'
});
// 设置用户信息
this
.
setData
({
params
:
option
,
user
:
app
.
get_user_cache_info
()
||
null
});
...
...
@@ -39,17 +39,11 @@ Page({
user_auth_code
(
object
,
method
,
auth_data
)
{
my
.
getOpenUserInfo
({
success
:
(
userinfo
)
=>
{
// my.alert({
// title: '亲',
// content: userinfo,
// buttonText: '我知道了',
// });
// 字符串则转为json对象(兼容支付宝框架bug)
// if(typeof(userinfo
) == 'string')
//
{
if
(
typeof
(
userinfo
.
response
)
==
'
string
'
)
{
userinfo
=
JSON
.
parse
(
userinfo
.
response
);
//
}
}
console
.
log
(
userinfo
.
response
)
app
.
user_auth_login
(
this
,
'
user_auth_back_event
'
,
userinfo
.
response
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录