| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /**
- * 微信模块
- * @author wesmiler
- */
- namespace app\weixin\controller;
- use app\admin\model\CarModel;
- use app\weixin\model\Commands;
- use app\weixin\model\Member;
- use app\weixin\model\Wechat;
- use app\weixin\service\PRedis;
- use cmf\controller\HomeBaseController;
- use herui\HeruiApi;
- class WeixinController extends HomeBaseController
- {
- /**
- * 入口
- */
- public function index()
- {
- $echostr = input('echostr', '');
- if ($echostr) {
- Wechat::valid();
- } else {
- $this->responseMsg();
- }
- }
- /**
- * 授权登录
- */
- public function auth()
- {
- $code = input('code', '');
- $rebackUrl = input('reback_url','');
- if($rebackUrl){
- session('reback_url',$rebackUrl);
- }
- $rebackUrl = session('reback_url');
- $rebackUrl = $rebackUrl? $rebackUrl : url('/weixin/match/index', null, false, true);
- if ($code) {
- Wechat::init();
- $userInfo = session('userInfo');
- if ($userInfo) {
- $this->redirect($rebackUrl);
- exit;
- }
- }
- Wechat::redirectUrl(urlencode($rebackUrl));
- }
- /**
- * 生成菜单
- */
- public function createMenu()
- {
- $key = input('key', '');
- $callKey = config('weixin.callKey');
- if ($callKey && ($key != $callKey || empty($key))) {
- showJson('error', 2009);
- }
- $result = Wechat::createMenu();
- showJson('success', 2011, $result);
- }
- /**
- * 消息接收处理
- */
- public function responseMsg()
- {
- $postStr = file_get_contents("php://input");
- if (!empty($postStr)) {
- libxml_disable_entity_loader(true);
- $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
- PRedis::set('weixin:response:'.((string)$postObj->FromUserName).'_'.date('YmdHis'), (array)$postObj, 600);
- if ($postObj->MsgType == 'event') {
- // 推送事件处理
- Wechat::catchEvent((array)$postObj);
- } else if ($postObj->MsgType == 'text'){
- Wechat::responseText((array)$postObj);
- }
- }
- exit;
- }
- }
- ?>
|