微擎人人商城网页快照和虚拟微信用户修复

 2914

自从微信公众号平台更新了用户授权的规则,微擎以前默认自动授权的方式,总是会出现网页快照,因为微擎默认的方式是打开前端默认跳转到微信授权的那个链接;正是因为没有经过用户的点击就授权,会常常出现网页快照,导致系统里总是会出现很多“微信用户”的虚拟用户,导致用户在人人商城或其他商城内出现下单付款失败的问题。


微擎人人商城网页快照和虚拟微信用户修复


现在我们只需要把微擎默认的自动授权方式,改为引导用户手动点击授权就可以了;下面是修改的方式,需要修改到微擎源码。

第一步,新建一个手动授权的模板html文件,我这里命名为publicAuth.html,文件里的代码如下(可以根据自己的需要修改):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport"
  6.           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
  7.     <title>授权登录-{$_W['account']['name']}</title>
  8.     <meta name="keywords" content="{$_W['account']['name']}">
  9.     <meta name="description" content="{$_W['account']['name']}">
  10.     <style>
  11.         .container {
  12.             padding: 50px 15px;
  13.             text-align: center;
  14.         }
  15.         .logo {
  16.             width: 140px;
  17.             margin: 0 auto 42px;
  18.             text-align: center;
  19.         }
  20.         .logo img {
  21.             max-width: 100%;
  22.             vertical-align: middle;
  23.         }
  24.         .container h2 {
  25.             margin: 0;
  26.             padding: 0;
  27.             line-height: 44px;
  28.             font-size: 24px;
  29.             font-weight: 500;
  30.         }
  31.         .container p {
  32.             margin: 0;
  33.             padding: 0;
  34.             line-height: 34px;
  35.             font-size: 16px;
  36.         }
  37.         .auth-btn {
  38.             width: 98%;
  39.             display: block;
  40.             line-height: 50px;
  41.             background: #0bb20c;
  42.             color: #FFFFFF;
  43.             text-align: center;
  44.             font-size: 20px;
  45.             border-radius: 24px;
  46.             text-decoration: none;
  47.             margin-top: 44px;
  48.         }
  49.         .is-snapshoot {
  50.             display: none;
  51.             width: 100%;
  52.             height: 100%;
  53.             position: absolute;
  54.             top: 0;
  55.             left: 0;
  56.             background: url('resource/images/snapshoot_bg.png') no-repeat;
  57.             background-position: center;
  58.             background-size: 100% 100%;
  59.             z-index: 1;
  60.         }
  61.     </style>
  62. </head>
  63. <body>
  64. <div>
  65.     <div>
  66.         <img src="{$_W['account']['logo']}"
  67.              alt="{$_W['account']['name']}"></div>
  68.     <h2>您好,请先登录~</h2>
  69.     <p>授权登录后,可以更好的享受我们的服务!</p>
  70.     <div>
  71.         <a href="{$forward}">点击授权登录</a>
  72.     </div>
  73. </div>
  74. <div {if isset($_GPC['is_snapshotuser']) && $_GPC['is_snapshotuser'== '1' }style="display:block;"{/if>
  75. </div>
  76. </body>
  77. </html>

新建好文件后,我们把它放在目录:/app/themes/default/auth/publicAuth.html 下

第二步,修改 /app/common/bootstrap.app.inc.php这个文件,只需要在这块代码下

  1. if ($oauth_type == 'snsapi_base') {
  2.     $forward = $oauth_account->getOauthCodeUrl($callback, $state);
  3. } else {
  4.     $forward = $oauth_account->getOauthUserInfoUrl($callback, $state);
  5. }

大概168行附近新增:

  1. template('auth/publicAuth');
  2. exit();

第三步,修改用户授权SESSION有效时间;把 /app/common/bootstrap.app.inc.php 文件里的

这段代码

  1. WeSession::start($_W['uniacid'], CLIENT_IP);

替换成:

  1. WeSession::start($_W['uniacid'], CLIENT_IP, (15 * 86400)); //15天有效期

上面的有效期根据自己的情况设置

下面是效果图


微擎人人商城网页快照和虚拟微信用户修复

第四步,用户不授权的情况,再次进入系统,也会变成虚拟用户;修改文件:/app/source/auth/oauth.ctrl.php

在文件这段代码:

  1. $oauth = $oauth_account->getOauthInfo($code);

下面新增(大概31行左右):

  1. //  start
  2. //判断是否是从快照来的,虚拟用户还是跳转到授权页,但是不会入库新增用户;一般是用户未授权再访问原来的链接,才会进入下面这个逻辑
  3. if( isset($oauth['is_snapshotuser']) &&  intval($oauth['is_snapshotuser']) === 1){
  4.     $_SESSION['oauth_openid'] = '';
  5.     $backUrl = urldecode($_SESSION['dest_url']).'&is_snapshotuser=1'; //设置当前为快照模式,可以在授权页加个箭头引导右下角微信官方授权页面,这里可以自由发挥
  6.     header('Location: ' . $backUrl);
  7.     exit();
  8. }
  9. //  end

第五步,把下面这张图片上传到 这个目录下/app/resource/images/snapshoot_bg.png


微擎人人商城网页快照和虚拟微信用户修复


当访问快照的时候,会显示下面的那个页面,不是快照没有登录则跳转到登录页面。


微擎人人商城网页快照和虚拟微信用户修复


最终,当用户访问人人商城或其他插件的时候,就会先跳转到手动授权登录页面,基本避免了用户打开我们商城就出现快照的模式。


转自:https://www.52pojie.cn/thread-1712109-1-1.html


本文网址:https://www.zztuku.com/detail-14321.html
站长图库 - 微擎人人商城网页快照和虚拟微信用户修复
申明:本文转载于《吾爱破解》,如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐