| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | 
							- <?php
 
- namespace app\api\controller\h5;
 
- use app\hander\HelpHander;
 
- use think\Controller;
 
- use think\Db;
 
- use think\Exception;
 
- class Oauth extends Controller
 
- {
 
-     public function checkCode(){
 
-         try{
 
-             $type = input('type/d',1); //1=微信公众号 2=微信小城序
 
-             $code = input('code','','trim');
 
-             $openid = "";
 
-             $avatar = "";
 
-             $nickname = "";
 
-             if($type == 1){
 
-                 $config = config('app.wx_config');
 
-                 $app = \EasyWeChat\Factory::officialAccount($config);
 
-                 $user = $app->oauth->user();
 
-                 $openid = $user->id;
 
-                 $avatar = $user->avatar;
 
-                 $nickname = $user->nickname;
 
-             }else if($type == 2){
 
-                 $config = config('app.wx_mini_config');
 
-                 $app = \EasyWeChat\Factory::miniProgram($config);
 
-                 $ret = $app->auth->session($code);
 
-                 if(!isset($ret['openid']) || !$ret['openid']){
 
-                     throw new Exception('登录失败');
 
-                 }
 
-                 $openid = $ret['openid'];
 
-             }
 
-             if(!$openid){
 
-                 \exception('参数错误');
 
-             }
 
-             $info = Db::name('wxuser')->where('type',$type)->where('openid',$openid)->find();
 
-             if($info){
 
-                 $token = create_token($info['id']);
 
-                 $userId = $info['id'];
 
-                 if($info['del'] != 0||$info['enable'] != 1){
 
-                     \exception('用户被禁用,请联系管理员');
 
-                 }
 
-                 $ret = Db::name('wxuser')->where('id',$info['id'])->update([
 
-                     'nickname' => $nickname,
 
-                     'token' => $token,
 
-                     'img' => $avatar,
 
-                     'update_time' => date('Y-m-d H:i:s')
 
-                 ]);
 
-                 if(!$ret){
 
-                     \exception('登录失败');
 
-                 }
 
-             }else{
 
-                 $ret = Db::name('wxuser')->insertGetId([
 
-                     'openid' => $openid,
 
-                     'nickname' => $nickname,
 
-                     'img' => $avatar,
 
-                     'type' => $type,
 
-                     'create_time' => date('Y-m-d H:i:s'),
 
-                     'update_time' => date('Y-m-d H:i:s')
 
-                 ]);
 
-                 if(!$ret){
 
-                     \exception('注册失败');
 
-                 }
 
-                 $userId = $ret;
 
-                 $token = create_token($userId);
 
-                 $ret = Db::name('wxuser')->where('id',$userId)->update([
 
-                     'token' => $token,
 
-                 ]);
 
-                 if(!$ret){
 
-                     \exception('登录失败');
 
-                 }
 
-             }
 
-         }catch (Exception $e){
 
-             trace('微信登录:'.$e->getMessage());
 
-             HelpHander::error('登录失败');
 
-         }
 
-         HelpHander::success(['token'=>$token,'user_id' => $userId]);
 
-     }
 
-     // 获取jssdk参数
 
-     public function jssdk(){
 
-         try{
 
-             $url = input('url');
 
-             $config = config('app.wx_config');
 
-             $app = \EasyWeChat\Factory::officialAccount($config);
 
-             $apis = ['checkJsApi','chooseWXPay','hideOptionMenu'];
 
-             $app->jssdk->setUrl(urldecode($url));
 
-             $ret = $app->jssdk->buildConfig($apis, false, false, false);
 
-             trace($ret);
 
-         }catch (\Exception $e){
 
-             trace('获取分享参数:'.$e->getMessage());
 
-             HelpHander::error('获取jssdk配置失败');
 
-         }
 
-         HelpHander::success($ret);
 
-     }
 
- }
 
 
  |