当前位置: 首页 > news >正文

英文网站建设方法云盘搜

英文网站建设方法,云盘搜,中企动力科技股份有限公司扬州分公司,怎么样做网站推广问题描述: 今天通过ajax调用方式做微信静默登录,发现本地可以跳转,到线上地址死活都不跳转,就像没起作用一般,经许久排查发现,是因为https和http域名的问题,线上只配置了http域名&#xff0…
问题描述:

    今天通过ajax调用方式做微信静默登录,发现本地可以跳转,到线上地址死活都不跳转,就像没起作用一般,经许久排查发现,是因为https和http域名的问题,线上只配置了http域名,所以导致https访问微信时无法实现跳转。
解决:

    1、配置https域名

    2、换为http访问

---------------------------------------------------------------------------------------------------------------------------------

附:ajax微信静默登录代码

梳理步骤:

1)静态页面调用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>测试微信静默登录</title><script src="/static/plugins/jquery-2.1.4.min.js"></script>
</head>
<body><div class="login">这是首页啦~~~
</div>
<script>$(function(){$.ajax({url:"/admin/system.Login/islogin",type:"post",data:[],dataType:"json",success:function (res) {if (res.code == 200) {$('.login').html('登录成功');//alert("登录成功!即将跳转到主页...");window.location.href = "/index";return false;} else {if(res.code == 4000){// $('.login').html('<a href="' + res.data.url + '">跳转2:'+res.data.url +'</a>');$('.login').html('获取成功,即将跳转到授权页...');window.location.href = res.data.url;return false;}$('.login').html('授权失败,即将跳转到登录页...');window.location.href = '/login';return false;}}});});
</script>
</body>
</html>

2)后端代码

第一步:获取微信openid并缓存起来

接口1:首页-判断用户是否已登录接口

  public function islogin(){$type = @$_GET['type'];$param['user_id'] = user_id(false);//获取用户登录信息$wx_openid = Cache::get('wx_openid');//第一步:  判断用户是否已经登录if($param['user_id']){return success($param,'用户已登录');}//第二步: 用户未登录  判断是否为微信内登录?if(request()->isWx()) {//手机端微信//第三步  微信内用户静默授权  获取用户openid  1)存在 自动登录  2)不存在 跳转登录页面 去登录绑定if($wx_openid){//获取openid后的操作$model = new UserModel();$userInfo = $model->where('openid', $wx_openid)->find();if ($userInfo) {//已登录//设置登录成功缓存信息$loginInfo = LoginService::setlogin($userInfo);return success($loginInfo, '登录成功');}}else{$url = $this->getWxCode();return error('未登录',['url'=>$url], 4000);}}return error('用户未登录');}

函数1):获取微信code码方法

    public function getWxCode(){//生成ticket$ticket = uniqid(); // 生成唯一的ticketCache::set($ticket, '', 300);//微信网页授权url$appId = self::$appId;$redirect_uri = urlencode('https://www.myweb.com/admin/system.Login/saveWeiXinOpenId');$scope = 'snsapi_base';//默认静默登录if($type == 2){$scope = 'snsapi_userinfo';//授权登录}$baseUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize';$param = '?appid=' . $appId . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope='. $scope .'&state=' . $ticket . '#wechat_redirect';$url = $baseUrl . $param;return $url;}

函数2:微信授权后回调页面处理函数

public function saveWeiXinOpenId(){$param = $this->params(['code/s'     => '','state/s' => '',]);$code = $param['code'];$ticket = $param['state'];$bool = Cache::has($ticket);if (!$bool) {// return ['code'=>4001,'msg'=>'已过期'];header('location:/login');//跳转去登录页exit;}$info = WxLoginService::getWeiXinOpenId($code);if (isset($info['errcode']) || !$info['openid']) {//授权失败直接跳登录页 再次登录// return ['code'=>4002,'msg'=>'获取微信OpenId错误','data'=>$info];header('location:/login');exit;}Cache::set($ticket, json_encode($info), 300);Cache::set('wx_openid', $info['openid'], 300);// session('wx_openid', $info['openid']); //这个方法不好使,换上面的cache缓存吧,原因暂不明// file_put_contents("openid-save.log", Cache::get('wx_openid')."---".date('Y-m-d H:i:s')."\n", FILE_APPEND);//获取openid后的操作$model = new UserModel();$userInfo = $model->where('openid', $info['openid'])->find();if (empty($userInfo)) {//未绑定过,直接去登录 然后绑定// return ['code'=>4003,'msg'=>'手机号不存在'];header('location:/login');exit;}//已绑定过,直接访问首页header('location:/index');exit;}//获取微信openid方法:WxLoginService::getWeiXinOpenId($code)public static function getWeiXinOpenId($code){$appId = self::$appId;$appSecret = self::$appSecret;$baseUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token';$param = '?appid=' . $appId . '&secret=' . $appSecret . '&code=' . $code . '&grant_type=authorization_code';$url = $baseUrl . $param;$guzzHttp = new Client();$response = $guzzHttp->request('GET', $url, ['verify' => false]);$json = $response->getBody()->getContents();$data = json_decode($json, true);return $data;}

第二步:跳转到登录页面,登录完成后,在登录接口调用bindOpenId()方法,给用户绑定openid

 public function bindOpenId($phone='',$openid=''){$model = new UserModel();$userInfo = $model->where('phone', $phone)->find();//这个不需要判断,因为已经登录成功,手机号肯定存在,加强判断if (empty($userInfo)) {return error('手机号不存在');}if(!$openid){$openid = Cache::get('wx_openid');}$model->where('phone', $phone)->update(['openid' => $openid]);return success([], '绑定成功');}

http://www.ds6.com.cn/news/28733.html

相关文章:

  • 长兴县建设管理网站优化设计四年级上册数学答案
  • 移动端网站开发项目宝鸡seo优化公司
  • 怎么做优惠卷网站精准推广的渠道有哪些
  • wordpress 后台文章 查询条件成都优化网站哪家公司好
  • 手机网站做安卓客户端邀请注册推广赚钱的app
  • iis如何用ip地址做域名访问网站百度搜索收录
  • 个人网站开发教程百度网页推广费用
  • 上海社保网站哪里做转入seo文章优化方法
  • 搭建本地网站设计网站一般多少钱
  • 西安网站建设报价方案软文是啥意思
  • 建设网站服务器百度推广天天打骚扰电话
  • 三合一网站制作价格怎样策划一个营销型网站
  • 自己的域名怎么做网站进入百度app
  • 重庆网站建设cav手机在线精品
  • 做摄影和后期的兼职网站广告推销网站
  • 个人网页主页seo 优化 服务
  • 手机网站在后台怎么做编辑百度推广代理怎么加盟
  • 单人做网站需要掌握哪些知识内江seo
  • 东阳网站建设个人怎么做网络推广
  • 返利淘网站怎么做广州推广排名
  • 广告公司seo是什么职位seo上排名
  • 绥化市建设局网站发软文是什么意思
  • 做网站多少钱zwnet河北百度代理公司
  • 做云盘网站哪个好电商代运营公司
  • win8网站模版网站怎么建设
  • 宠物网站页面设计css网站 推广
  • salient wordpressseo资源是什么意思
  • 关于网络营销的网站百度助手下载安装
  • 苏州公司网站建设价格持续优化完善防控措施
  • 百度搜索推广流程英文谷歌seo