Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
______--______
ShopXO
提交
27c8650c
ShopXO
项目概览
______--______
/
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,体验更适合开发者的 AI 搜索 >>
提交
27c8650c
编写于
11月 18, 2021
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
保留老版本小程序接口
上级
7a9c2ec2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
501 addition
and
0 deletion
+501
-0
app/api/controller/User.php
app/api/controller/User.php
+501
-0
未找到文件。
app/api/controller/User.php
浏览文件 @
27c8650c
...
...
@@ -168,6 +168,507 @@ class User extends Common
return
ApiService
::
ApiDataReturn
(
UserService
::
AppMobileBindVerifySend
(
$this
->
data_post
));
}
/**
* 支付宝用户授权
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-03-04
* @desc description
*/
public
function
AlipayUserAuth
()
{
// 参数
if
(
!
empty
(
$this
->
data_post
[
'authcode'
]))
{
// 授权
$result
=
(
new
\
base\Alipay
())
->
GetAuthSessionKey
(
MyC
(
'common_app_mini_alipay_appid'
),
$this
->
data_post
[
'authcode'
]);
if
(
$result
[
'status'
]
==
0
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'alipay_openid'
,
$result
[
'data'
][
'user_id'
]);
if
(
empty
(
$user
))
{
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$result
[
'data'
][
'user_id'
]]);
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
// 标记用户存在
$user
[
'is_user_exist'
]
=
1
;
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$result
[
'msg'
],
-
100
);
}
}
else
{
$ret
=
DataReturn
(
'授权码为空'
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 支付宝小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
AlipayUserInfo
()
{
// 参数校验
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
===
true
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'alipay_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
$this
->
data_post
[
'nickname'
]
=
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
);
$ret
=
UserService
::
AuthUserProgram
(
$this
->
data_post
,
'alipay_openid'
);
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
$ret
=
DataReturn
(
'授权成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$ret
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 微信小程序获取用户授权
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
WechatUserAuth
()
{
// 授权
$result
=
(
new
\
base\Wechat
(
MyC
(
'common_app_mini_weixin_appid'
),
MyC
(
'common_app_mini_weixin_appsecret'
)))
->
GetAuthSessionKey
(
$this
->
data_post
);
if
(
$result
[
'status'
]
==
0
)
{
// unionid
$unionid
=
empty
(
$result
[
'data'
][
'unionid'
])
?
''
:
$result
[
'data'
][
'unionid'
];
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'weixin_openid'
,
$result
[
'data'
][
'openid'
]);
if
(
empty
(
$user
)
&&
!
empty
(
$unionid
))
{
// 根据unionid获取数据
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'weixin_unionid'
,
$unionid
);
}
if
(
empty
(
$user
))
{
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$result
[
'data'
][
'openid'
],
'unionid'
=>
$unionid
]);
}
else
{
// 如果用户openid为空则绑定到用户下面
if
(
empty
(
$user
[
'weixin_openid'
]))
{
if
(
UserService
::
UserOpenidBind
(
$user
[
'id'
],
$result
[
'data'
][
'openid'
],
'weixin_openid'
))
{
// 登录数据更新
$user
=
UserService
::
AppUserInfoHandle
(
$user
[
'id'
]);
}
}
}
// 用户状态
if
(
!
empty
(
$user
))
{
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
// 标记用户存在
$user
[
'is_user_exist'
]
=
1
;
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$result
[
'msg'
],
-
10
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 微信小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
WechatUserInfo
()
{
// 参数校验
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'auth_data'
,
'error_msg'
=>
'授权数据为空'
,
],
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
===
true
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'weixin_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
// 字段名称不一样参数处理
$auth_data
=
is_array
(
$this
->
data_post
[
'auth_data'
])
?
$this
->
data_post
[
'auth_data'
]
:
json_decode
(
htmlspecialchars_decode
(
$this
->
data_post
[
'auth_data'
]),
true
);
$auth_data
[
'nickname'
]
=
isset
(
$auth_data
[
'nickName'
])
?
$auth_data
[
'nickName'
]
:
''
;
$auth_data
[
'avatar'
]
=
isset
(
$auth_data
[
'avatarUrl'
])
?
$auth_data
[
'avatarUrl'
]
:
''
;
$auth_data
[
'gender'
]
=
empty
(
$auth_data
[
'gender'
])
?
0
:
((
$auth_data
[
'gender'
]
==
2
)
?
1
:
2
);
// 公共参数处理
$auth_data
[
'weixin_unionid'
]
=
isset
(
$this
->
data_post
[
'unionid'
])
?
$this
->
data_post
[
'unionid'
]
:
''
;
$auth_data
[
'openid'
]
=
$this
->
data_post
[
'openid'
];
$auth_data
[
'referrer'
]
=
isset
(
$this
->
data_post
[
'referrer'
])
?
$this
->
data_post
[
'referrer'
]
:
0
;
$ret
=
UserService
::
AuthUserProgram
(
$auth_data
,
'weixin_openid'
);
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
$ret
=
DataReturn
(
'授权成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$ret
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 百度小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
BaiduUserAuth
()
{
$config
=
[
'appid'
=>
MyC
(
'common_app_mini_baidu_appid'
),
'key'
=>
MyC
(
'common_app_mini_baidu_appkey'
),
'secret'
=>
MyC
(
'common_app_mini_baidu_appsecret'
),
];
$result
=
(
new
\
base\Baidu
(
$config
))
->
GetAuthSessionKey
(
$this
->
data_post
);
if
(
$result
[
'status'
]
==
0
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'baidu_openid'
,
$result
);
if
(
!
empty
(
$user
))
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
// 标记用户存在
$user
[
'is_user_exist'
]
=
1
;
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
$user
);
}
}
else
{
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$result
[
'data'
]]);
}
}
else
{
$ret
=
DataReturn
(
$result
[
'msg'
],
-
10
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 百度小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-11-06
* @desc description
*/
public
function
BaiduUserInfo
()
{
// 参数校验
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'encrypted_data'
,
'error_msg'
=>
'解密数据为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'iv'
,
'error_msg'
=>
'iv为空,请重试'
,
]
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
===
true
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'baidu_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
$config
=
[
'appid'
=>
MyC
(
'common_app_mini_baidu_appid'
),
'key'
=>
MyC
(
'common_app_mini_baidu_appkey'
),
'secret'
=>
MyC
(
'common_app_mini_baidu_appsecret'
),
];
$result
=
(
new
\
base\Baidu
(
$config
))
->
DecryptData
(
$this
->
data_post
[
'encrypted_data'
],
$this
->
data_post
[
'iv'
],
$this
->
data_post
[
'openid'
]);
if
(
$result
[
'status'
]
==
0
&&
!
empty
(
$result
[
'data'
]))
{
$result
[
'nickname'
]
=
isset
(
$result
[
'data'
][
'nickname'
])
?
$result
[
'data'
][
'nickname'
]
:
''
;
$result
[
'avatar'
]
=
isset
(
$result
[
'data'
][
'headimgurl'
])
?
$result
[
'data'
][
'headimgurl'
]
:
''
;
$result
[
'gender'
]
=
empty
(
$result
[
'data'
][
'sex'
])
?
0
:
((
$result
[
'data'
][
'sex'
]
==
2
)
?
1
:
2
);
$result
[
'openid'
]
=
$result
[
'data'
][
'openid'
];
$result
[
'referrer'
]
=
isset
(
$this
->
data_post
[
'referrer'
])
?
$this
->
data_post
[
'referrer'
]
:
0
;
$ret
=
UserService
::
AuthUserProgram
(
$result
,
'baidu_openid'
);
}
else
{
$ret
=
DataReturn
(
$result
[
'msg'
],
-
1
);
}
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
$ret
=
DataReturn
(
'授权成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$ret
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 头条小程序用户授权
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-10-27
* @desc description
*/
public
function
ToutiaoUserAuth
()
{
$config
=
[
'appid'
=>
MyC
(
'common_app_mini_toutiao_appid'
),
'secret'
=>
MyC
(
'common_app_mini_toutiao_appsecret'
),
];
$result
=
(
new
\
base\Toutiao
(
$config
))
->
GetAuthSessionKey
(
$this
->
data_post
);
if
(
$result
[
'status'
]
==
0
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'toutiao_openid'
,
$result
);
if
(
empty
(
$user
))
{
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$result
[
'data'
]]);
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
// 标记用户存在
$user
[
'is_user_exist'
]
=
1
;
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$result
[
'msg'
],
-
10
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 头条小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-10-27
* @desc description
*/
public
function
ToutiaoUserInfo
()
{
// 参数校验
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'userinfo'
,
'error_msg'
=>
'用户信息为空'
,
],
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
===
true
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'toutiao_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
$result
=
json_decode
(
htmlspecialchars_decode
(
$this
->
data_post
[
'userinfo'
]),
true
);
if
(
is_array
(
$result
))
{
$result
[
'nickname'
]
=
isset
(
$result
[
'nickName'
])
?
$result
[
'nickName'
]
:
''
;
$result
[
'avatar'
]
=
isset
(
$result
[
'avatarUrl'
])
?
$result
[
'avatarUrl'
]
:
''
;
$result
[
'gender'
]
=
empty
(
$result
[
'gender'
])
?
0
:
((
$result
[
'gender'
]
==
2
)
?
1
:
2
);
$result
[
'openid'
]
=
$this
->
data_post
[
'openid'
];
$result
[
'referrer'
]
=
isset
(
$this
->
data_post
[
'referrer'
])
?
$this
->
data_post
[
'referrer'
]
:
0
;
$ret
=
UserService
::
AuthUserProgram
(
$result
,
'toutiao_openid'
);
}
else
{
$ret
=
DataReturn
(
empty
(
$result
)
?
'获取用户信息失败'
:
$result
,
-
1
);
}
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
$ret
=
DataReturn
(
'授权成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$ret
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* QQ小程序获取用户授权
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-10-31
* @desc description
*/
public
function
QQUserAuth
()
{
// 参数
if
(
!
empty
(
$this
->
data_post
[
'authcode'
]))
{
// 授权
$result
=
(
new
\
base\QQ
(
MyC
(
'common_app_mini_qq_appid'
),
MyC
(
'common_app_mini_qq_appsecret'
)))
->
GetAuthSessionKey
(
$this
->
data_post
[
'authcode'
]);
if
(
$result
!==
false
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'qq_openid'
,
$result
);
if
(
empty
(
$user
))
{
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
[
'is_user_exist'
=>
0
,
'openid'
=>
$result
]);
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
// 标记用户存在
$user
[
'is_user_exist'
]
=
1
;
$ret
=
DataReturn
(
'授权登录成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
'授权登录失败'
,
-
100
);
}
}
else
{
$ret
=
DataReturn
(
'授权码为空'
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* QQ小程序获取用户信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-10-31
* @desc description
*/
public
function
QQUserInfo
()
{
// 参数校验
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'openid'
,
'error_msg'
=>
'openid为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'encrypted_data'
,
'error_msg'
=>
'解密数据为空'
,
],
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'iv'
,
'error_msg'
=>
'iv为空,请重试'
,
]
];
$ret
=
ParamsChecked
(
$this
->
data_post
,
$p
);
if
(
$ret
===
true
)
{
// 先从数据库获取用户信息
$user
=
UserService
::
AppUserInfoHandle
(
null
,
'qq_openid'
,
$this
->
data_post
[
'openid'
]);
if
(
empty
(
$user
))
{
$result
=
(
new
\
base\QQ
(
MyC
(
'common_app_mini_qq_appid'
),
MyC
(
'common_app_mini_qq_appsecret'
)))
->
DecryptData
(
$this
->
data_post
[
'encrypted_data'
],
$this
->
data_post
[
'iv'
],
$this
->
data_post
[
'openid'
]);
if
(
is_array
(
$result
))
{
$result
[
'nickname'
]
=
isset
(
$result
[
'nickName'
])
?
$result
[
'nickName'
]
:
''
;
$result
[
'avatar'
]
=
isset
(
$result
[
'avatarUrl'
])
?
$result
[
'avatarUrl'
]
:
''
;
$result
[
'gender'
]
=
empty
(
$result
[
'gender'
])
?
0
:
((
$result
[
'gender'
]
==
2
)
?
1
:
2
);
$result
[
'qq_unionid'
]
=
isset
(
$result
[
'unionId'
])
?
$result
[
'unionId'
]
:
''
;
$result
[
'openid'
]
=
$result
[
'openId'
];
$result
[
'referrer'
]
=
isset
(
$this
->
data_post
[
'referrer'
])
?
$this
->
data_post
[
'referrer'
]
:
0
;
$ret
=
UserService
::
AuthUserProgram
(
$result
,
'qq_openid'
);
}
else
{
$ret
=
DataReturn
(
empty
(
$result
)
?
'获取用户信息失败'
:
$result
,
-
1
);
}
}
else
{
// 用户状态
$ret
=
UserService
::
UserStatusCheck
(
'id'
,
$user
[
'id'
]);
if
(
$ret
[
'code'
]
==
0
)
{
$ret
=
DataReturn
(
'授权成功'
,
0
,
$user
);
}
}
}
else
{
$ret
=
DataReturn
(
$ret
,
-
1
);
}
return
ApiService
::
ApiDataReturn
(
$ret
);
}
/**
* 小程序用户授权
* @author Devil
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录