359 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
| <?php /*a:9:{s:57:"E:\www\xxzmoban\application\admin\view\we_chat\index.html";i:1586528062;s:55:"E:\www\xxzmoban\application\admin\view\public\base.html";i:1586528062;s:59:"E:\www\xxzmoban\application\admin\view\public\head_css.html";i:1586528062;s:58:"E:\www\xxzmoban\application\admin\view\public\head_js.html";i:1592546298;s:57:"E:\www\xxzmoban\application\admin\view\public\header.html";i:1586528062;s:58:"E:\www\xxzmoban\application\admin\view\public\sidebar.html";i:1586528062;s:65:"E:\www\xxzmoban\application\admin\view\public\content_header.html";i:1586528062;s:57:"E:\www\xxzmoban\application\admin\view\public\footer.html";i:1592550717;s:66:"E:\www\xxzmoban\application\admin\view\public\control_sidebar.html";i:1586528062;}*/ ?>
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <!DOCTYPE html>
 | ||
| <html lang="zh-CN">
 | ||
| <head>
 | ||
|     <meta charset="utf-8">
 | ||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | ||
|     <meta name="renderer" content="webkit">
 | ||
| <?php endif; ?>
 | ||
| 
 | ||
|     
 | ||
|     <title><?php echo htmlentities((isset($admin['title']) && ($admin['title'] !== '')?$admin['title']:'Admin')); ?> | <?php echo htmlentities((isset($admin['name']) && ($admin['name'] !== '')?$admin['name']:'Admin')); ?></title>
 | ||
|     
 | ||
| 
 | ||
| 
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
|     <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
 | ||
|     <!--头部css-->
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/bootstrap/css/bootstrap.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/bootstrap-switch/css/bootstrap-switch.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/font-awesome/css/font-awesome.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/iconpicker/css/iconpicker.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/select2/css/select2.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/fileinput/css/fileinput.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/css/AdminLTE.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/css/admin.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/css/_all-skins.min.css" />
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/css/skins.css" />
 | ||
| 
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/plugins/nprogress/nprogress.css" />
 | ||
| <!--[if lt IE 9]>
 | ||
| <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
 | ||
| <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 | ||
| <![endif]-->
 | ||
| 
 | ||
|     <!--头部js-->
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/js-cookie/js.cookie-2.2.0.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/jquery/jquery.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/jquery-ui/jquery-ui.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/layer/layer.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/laydate/laydate.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/bootstrap/js/bootstrap.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/jquery-slimscroll/jquery.slimscroll.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/jquery-validation/jquery.validate.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/jquery-validation/localization/messages_zh.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/bootstrap-switch/js/bootstrap-switch.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/bootstrap-number/bootstrap-number.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/fastclick/fastclick.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/select2/js/select2.full.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/nprogress/nprogress.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/iconpicker/js/iconpicker.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/ueditor/ueditor.config.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/ueditor/ueditor.all.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/ueditor/lang/zh-cn/zh-cn.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/clipboard/clipboard.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/viewer/viewer.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/plugins/viewer/jquery-viewer.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/js/tag/jquery.tag-editor.js"></script>
 | ||
| <link rel="stylesheet" type="text/css" href="/static/admin/js/tag/jquery.tag-editor.css" />
 | ||
| <script src="https://www.layuicdn.com/layui/layui.js"></script>
 | ||
| <link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css">
 | ||
| <!--勿必把地图api key更换成自己的-->
 | ||
| <script type="text/javascript" src='//webapi.amap.com/maps?v=1.4.15&key=cccf8ea926e153be0a013d55edd47c11&plugin=AMap.ToolBar'></script>
 | ||
| <!-- UI组件库 1.0 -->
 | ||
| <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
 | ||
| <script>
 | ||
|     //是否为debug模式
 | ||
|     var adminDebug = <?php echo htmlentities($debug); ?>;
 | ||
|     //cookie前缀
 | ||
|     var cookiePrefix = '<?php echo htmlentities($cookie_prefix); ?>';
 | ||
|     //UEditor server地址
 | ||
|     var UEServer = "<?php echo url('editor/server'); ?>";
 | ||
|     //列表页当前选择的ID
 | ||
|     var dataSelectIds = [];
 | ||
| </script>
 | ||
| <script type="text/javascript" src="/static/admin/js/adminlte.min.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/js/jquery.pjax.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/js/admin.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/js/demo.js"></script>
 | ||
| <script type="text/javascript" src="/static/admin/js/app.js"></script>
 | ||
| 
 | ||
| <?php endif; ?>
 | ||
| </head>
 | ||
| <body class="hold-transition skin-blue sidebar-mini">
 | ||
| <div class="wrapper">
 | ||
| <?php endif; ?>
 | ||
| 
 | ||
|     <!-- 顶部 -->
 | ||
|     
 | ||
|     <!--网页头部-->
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <header class="main-header">
 | ||
|     <a class="logo">
 | ||
|         <span class="logo-mini"><?php echo htmlentities((isset($admin['short_name']) && ($admin['short_name'] !== '')?$admin['short_name']:'Backend')); ?></span>
 | ||
|         <span class="logo-lg"><?php echo htmlentities((isset($admin['name']) && ($admin['name'] !== '')?$admin['name']:'Backend')); ?></span>
 | ||
|     </a>
 | ||
|     <nav class="navbar navbar-static-top">
 | ||
|         <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
 | ||
|             <span class="sr-only">Toggle navigation</span>
 | ||
|             <span class="icon-bar"></span>
 | ||
|             <span class="icon-bar"></span>
 | ||
|             <span class="icon-bar"></span>
 | ||
|         </a>
 | ||
|         <div class="navbar-custom-menu">
 | ||
|             <ul class="nav navbar-nav">
 | ||
| 
 | ||
|                 <li class="dropdown messages-menu">
 | ||
|                     <a href="#" class="dropdown-toggle ReloadButton" title="刷新页面" data-toggle="dropdown">
 | ||
|                         <i class="fa fa-refresh"></i>
 | ||
|                     </a>
 | ||
|                 </li>
 | ||
| 
 | ||
|                 <li class="dropdown user user-menu">
 | ||
|                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">
 | ||
|                         <img src="<?php echo htmlentities((isset($admin['user']['avatar']) && ($admin['user']['avatar'] !== '')?$admin['user']['avatar']:'/static/admin/images/avatar.png')); ?>" class="user-image" alt="用户头像">
 | ||
|                         <span class="hidden-xs"><?php echo htmlentities((isset($admin['user']['nickname']) && ($admin['user']['nickname'] !== '')?$admin['user']['nickname']:'')); ?></span>
 | ||
|                     </a>
 | ||
|                     <ul class="dropdown-menu">
 | ||
|                         <li class="user-header">
 | ||
|                             <img src="<?php echo htmlentities((isset($admin['user']['avatar']) && ($admin['user']['avatar'] !== '')?$admin['user']['avatar']:'/static/admin/images/avatar.png')); ?>" class="img-circle" alt="用户头像">
 | ||
|                             <p>
 | ||
|                                 <?php echo htmlentities((isset($admin['user']['nickname']) && ($admin['user']['nickname'] !== '')?$admin['user']['nickname']:'')); ?>
 | ||
|                                 <small><?php echo htmlentities((isset($admin['user']['username']) && ($admin['user']['username'] !== '')?$admin['user']['username']:'')); ?></small>
 | ||
|                             </p>
 | ||
|                         </li>
 | ||
|                         <li class="user-footer">
 | ||
|                             <div class="pull-left">
 | ||
|                                 <a href="<?php echo url('admin_user/profile'); ?>" class="btn btn-default btn-flat">个人资料</a>
 | ||
|                             </div>
 | ||
|                             <div class="pull-right">
 | ||
|                                 <a href="<?php echo url('auth/logout'); ?>" class="btn btn-default btn-flat">退出</a>
 | ||
|                             </div>
 | ||
|                         </li>
 | ||
|                     </ul>
 | ||
|                 </li>
 | ||
|                 <li>
 | ||
|                     <a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
 | ||
|                 </li>
 | ||
|             </ul>
 | ||
|         </div>
 | ||
|     </nav>
 | ||
| </header>
 | ||
| <?php endif; ?>
 | ||
| 
 | ||
|     
 | ||
|     <!-- 左侧 -->
 | ||
|     
 | ||
|     <!--左侧菜单-->
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <aside class="main-sidebar">
 | ||
|     <section class="sidebar">
 | ||
|         <div class="user-panel">
 | ||
|             <div class="pull-left image">
 | ||
|                 <img src="<?php echo htmlentities((isset($admin['user']['avatar']) && ($admin['user']['avatar'] !== '')?$admin['user']['avatar']:'__BACKEND_IMAGES__/avatar.png')); ?>" class="img-circle" alt="用户头像">
 | ||
|             </div>
 | ||
|             <div class="pull-left info">
 | ||
|                 <p><?php echo htmlentities((isset($admin['user']['nickname']) && ($admin['user']['nickname'] !== '')?$admin['user']['nickname']:'')); ?></p>
 | ||
|                 <a><i class="fa fa-circle text-success"></i> 在线</a>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|         <form method="get" class="sidebar-form" id="sidebar-form">
 | ||
|             <div class="input-group">
 | ||
|                 <input type="text" name="q" class="form-control" placeholder="搜索菜单" id="search-input">
 | ||
|                 <span class="input-group-btn">
 | ||
|                     <button type="submit" name="search" id="search-btn" class="btn btn-flat">
 | ||
|                         <i class="fa fa-search"></i>
 | ||
|                     </button>
 | ||
|                 </span>
 | ||
|             </div>
 | ||
|         </form>
 | ||
|         <ul class="sidebar-menu" data-widget="tree">
 | ||
|             <li class="header">导航菜单</li>
 | ||
|             <?php echo (isset($admin['menu']) && ($admin['menu'] !== '')?$admin['menu']:''); ?>
 | ||
|         </ul>
 | ||
|     </section>
 | ||
| </aside>
 | ||
| <?php endif; ?>
 | ||
|     
 | ||
|     <!-- 内容 -->
 | ||
|     <div class="content-wrapper" id="pjax-container">
 | ||
|         
 | ||
| <!--内容头部-->
 | ||
| <section class="content-header">
 | ||
|     <h1>
 | ||
|         <?php echo (isset($admin['title']) && ($admin['title'] !== '')?$admin['title']:'admin'); ?>
 | ||
|     </h1>
 | ||
|     <ol class="breadcrumb">
 | ||
|         <li><a href="<?php echo url('index/index'); ?>"><i class="fa fa-dashboard"></i> 主页</a></li>
 | ||
|         <li class="active"><?php echo (isset($admin['title']) && ($admin['title'] !== '')?$admin['title']:'Admin'); ?></li>
 | ||
|     </ol>
 | ||
| </section>
 | ||
| 
 | ||
| <?php if(app('session')->get('error_message')): ?>
 | ||
| <!--如果有错误或者成功的消息-->
 | ||
| <script>
 | ||
|     layer.msg('<?php echo htmlentities(app('session')->get('error_message')); ?>',{icon:2});
 | ||
|     $.pjax({
 | ||
|         url: "<?php echo htmlentities(app('session')->get('url')); ?>",
 | ||
|         container: '#pjax-container'
 | ||
|     });
 | ||
| </script>
 | ||
| <?php endif; if(app('session')->get('success_message')): ?>
 | ||
| <script>
 | ||
|     layer.msg('<?php echo htmlentities(app('session')->get('success_message')); ?>',{icon:1});
 | ||
|     $.pjax({
 | ||
|         url: '<?php echo htmlentities(app('session')->get('url')); ?>',
 | ||
|         container: '#pjax-container'
 | ||
|     });
 | ||
| </script>
 | ||
| <?php endif; ?>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| <section class="content">
 | ||
| <style>
 | ||
|     .box-body ol li{
 | ||
|         margin: 5px 2px;
 | ||
|         letter-spacing:1px;
 | ||
|     }
 | ||
| </style>
 | ||
|     <!-- 这里写内容即可 -->
 | ||
|     <div class="row">
 | ||
|         <div class="col-md-12">
 | ||
|             <div class="box">
 | ||
|                 <div class="box-body">
 | ||
|                     <p>本Demo的微信相关功能都基于 EasyWeChat 扩展包,该扩展包几乎包含所有微信开发相关功能。有关微信开发的注意事项/坑个人总结了以下几点,希望对大家有所帮助:</p>
 | ||
|                     <ol>
 | ||
|                         <li>
 | ||
|                             配置好微信公众平台/微信支付/企业微信相关配置。例如:app_id,app_secret,token,aes_key,IP白名单,授权域名,扫码通知地址等等。
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             确保配置和自己的环境一致。有可能会犯的错误:配置的是http,实际是https;配置的是xxx.com域名,实际是www.xxx.com域名。
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             确保程序的参数配置和微信公众平台/微信支付/企业微信相关配置一致,例如app_id,app_secret等
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             公众号/企业微信类的确保自己的域名已备案,并且没有被腾讯拉入黑名单;小程序确保域名备案的同时必须为https。
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             验证文件在框架中应该放置在 /public 目录下;关于各种目录的配置,注意微信的规则。
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             EasyWeChat扩展包的结果有时候可能不需要 return ,有时候却需要,同时要结合自己的框架版本来尝试。
 | ||
|                         </li>
 | ||
|                         <li>
 | ||
|                             类似于支付通知,授权登录跳转的url记得关闭登录验证或token验证之类的限制,否则可能会收不到通知/授权登录失败。
 | ||
|                         </li>
 | ||
|                     </ol>
 | ||
|                 </div>
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| 
 | ||
|     <div class="row">
 | ||
|         <div class="col-md-6">
 | ||
|             <div class="box">
 | ||
|                 <div class="box-header with-border">
 | ||
|                     <h3 class="box-title">示例方法如下,具体可直接查看 WeChatController 控制器源代码</h3>
 | ||
|                 </div>
 | ||
|                 <!-- /.box-header -->
 | ||
|                 <div class="box-body">
 | ||
|                     <table class="table table-bordered">
 | ||
|                         <tbody>
 | ||
|                         <tr>
 | ||
|                             <th>功能</th>
 | ||
|                             <th>方法</th>
 | ||
| 
 | ||
|                         </tr>
 | ||
|                         <tr>
 | ||
|                             <td>服务端验证</td>
 | ||
|                             <td><code>server</code></td>
 | ||
| 
 | ||
|                         </tr>
 | ||
|                         <tr>
 | ||
|                             <td>接收 & 回复用户消息</td>
 | ||
|                             <td><code>msg</code></td>
 | ||
|                         </tr>
 | ||
|                         <tr>
 | ||
|                             <td>获取用户信息</td>
 | ||
|                             <td><code>user</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         <tr>
 | ||
|                             <td>发送模版消息</td>
 | ||
|                             <td><code>templateMsg</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         <tr>
 | ||
|                             <td>拉黑用户</td>
 | ||
|                             <td><code>block</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         <tr>
 | ||
|                             <td>统一下单</td>
 | ||
|                             <td><code>pay</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         <tr>
 | ||
|                             <td>根据微信订单号退款</td>
 | ||
|                             <td><code>refundByTransactionId</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         <tr>
 | ||
|                             <td>根据商户订单号退款</td>
 | ||
|                             <td><code>refundByOutTradeNo</code></td>
 | ||
|                         </tr>
 | ||
|                         <tr>
 | ||
|                             <td>发送普通红包</td>
 | ||
|                             <td><code>redPacket</code></td>
 | ||
|                         </tr>
 | ||
| 
 | ||
|                         </tbody>
 | ||
|                     </table>
 | ||
|                 </div>
 | ||
| 
 | ||
|             </div>
 | ||
|         </div>
 | ||
|     </div>
 | ||
| 
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| 
 | ||
|     </div>
 | ||
|     
 | ||
|     <!--页面底部-->
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <footer class="main-footer">
 | ||
|     <div class="pull-right hidden-xs">
 | ||
|         <b>Version</b> <?php echo htmlentities((isset($admin['version']) && ($admin['version'] !== '')?$admin['version']:'1.0')); ?>
 | ||
|     </div>
 | ||
|     <strong>Copyright © 2020 <a href="<?php echo htmlentities((isset($admin['link']) && ($admin['link'] !== '')?$admin['link']:'#')); ?>"><?php echo htmlentities((isset($admin['author']) && ($admin['author'] !== '')?$admin['author']:'admin')); ?></a>.</strong> All rights
 | ||
|     reserved.
 | ||
| </footer>
 | ||
| <?php endif; ?>
 | ||
|     
 | ||
| 
 | ||
|     
 | ||
|     <!--侧边栏-->
 | ||
| <?php if(!$admin['pjax']): ?>
 | ||
| <aside class="control-sidebar control-sidebar-dark">
 | ||
|     <ul class="nav nav-tabs nav-justified control-sidebar-tabs">
 | ||
|     </ul>
 | ||
|     <div class="tab-content">
 | ||
|         <div class="tab-pane" id="control-sidebar-home-tab">
 | ||
|         </div>
 | ||
|     </div>
 | ||
| </aside>
 | ||
| <div class="control-sidebar-bg"></div>
 | ||
| <?php endif; if(!$admin['pjax']): ?>
 | ||
| </div>
 | ||
| <?php endif; if(!$admin['pjax']): ?>
 | ||
| </body>
 | ||
| </html>
 | ||
| <?php endif; ?>
 |