123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- // +----------------------------------------------------------------------
- // | Niucloud-admin 企业快速开发的saas管理平台
- // +----------------------------------------------------------------------
- // | 官方网址:https://www.niucloud.com
- // +----------------------------------------------------------------------
- // | niucloud团队 版权所有 开源版本可自由商用
- // +----------------------------------------------------------------------
- // | Author: Niucloud Team
- // +----------------------------------------------------------------------
- namespace app\api\controller\wechat;
- use app\service\api\wechat\WechatConfigService;
- use app\service\api\wechat\WechatAuthService;
- use core\base\BaseController;
- use think\db\exception\DataNotFoundException;
- use think\db\exception\DbException;
- use think\db\exception\ModelNotFoundException;
- use think\Response;
- class Wechat extends BaseController
- {
- //todo csrf 验证也需要
- /**
- * 获取跳转获取code
- * @return Response
- */
- public function getCodeUrl(){
- $data = $this->request->params([
- ['url', ''],
- ['scopes', '']
- ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->authorization($data['url'], $data['scopes']));
- }
- /**
- * code获取微信信息
- * @return Response
- */
- public function getWechatUser()
- {
- $data = $this->request->params([
- ['code', ''],
- ]);
- $wechat_auth_service = new WechatAuthService();
- $data = $wechat_auth_service->userFromCode($data['code']);
- return success([ 'data' => json_encode($data) ]);
- }
- /**
- * 授权信息登录
- * @return Response
- */
- public function wechatLogin()
- {
- $data = $this->request->params([
- ['data', ''],
- ]);
- $wechat_auth_service = new WechatAuthService();
- [ $avatar, $nickname, $openid, $unionid ] = json_decode($data['data'], true);
- return success($wechat_auth_service->login($openid, $nickname, $avatar, $unionid));
- }
- /**
- * 授权登录
- * @return Response
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- */
- public function login(){
- $data = $this->request->params([
- ['code', ''],
- ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->loginByCode($data['code']));
- }
- /**
- * 注册
- * @return Response
- */
- public function register(){
- $data = $this->request->params([
- ['openid', ''],
- ['unionid', ''],
- ['mobile', ''],
- ]);
- //参数验证
- $this->validate($data, [
- 'mobile' => 'mobile'
- ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->register($data['openid'], $data['mobile'], wx_unionid: $data['unionid']));
- }
- /**
- * 同步
- * @return Response
- */
- public function sync(){
- $data = $this->request->params([
- ['code', ''],
- ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->sync($data['code']));
- }
- /**
- * 获取jssdk config
- * @return Response
- */
- public function jssdkConfig(){
- $data = $this->request->params([
- ['url', ''],
- ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->jssdkConfig($data['url']));
- }
- /**
- * 扫码登录
- * @return Response
- */
- public function scanLogin(){
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->scanLogin());
- }
- /**
- * 检查微信公众号是否配置
- * @return Response
- */
- public function checkWechatConfig()
- {
- return success('SUCCESS', (new WechatConfigService())->checkWechatConfig());
- }
- /**
- * 更新openid
- * @return Response
- */
- public function updateOpenid()
- {
- $data = $this->request->params([ [ 'code', '' ] ]);
- $wechat_auth_service = new WechatAuthService();
- return success($wechat_auth_service->updateOpenid($data[ 'code' ]));
- }
- }
|