<?php namespace App\Http\Controllers\Wechat\ThirdWx; use App\Http\Controllers\WechatController; use App\Http\Requests; use Illuminate\Http\Request; use Illuminate\Http\Response; use EasyWeChat\Foundation\Application; use WechatOP; use Cookie; /** * 维护第三方平台的基础配置 * @author zhoulingjie * */ class MsgsController extends WechatController { /** * 接收微信的第三方平台信息推送 * grep -nr component_verify_ticket storage/* * @param Request $request */ function receive_component_verify_ticket(Request $request){ v('receive_tickt_start'); v($request->all()); $server = WechatOP::server(); v('start_setmessage'); if(env('DEVELOP_MODE') == 'local'){ v('local_test'); $message = $this->get_fake_data(); $res = $this->deal_callback($message); }else{ v('online_test'); $server->setMessageHandler(function($message) { $res = $this->deal_callback($message); }); } v('receive_tickt_end'); return $server->serve(); } function deal_callback($message){ v('thirdwx_deal_callback');v($message); v('InfoType:'.$message->get('InfoType')); switch ($message->get('InfoType')) { case "component_verify_ticket": v('save_ticket:'.$message->get('ComponentVerifyTicket')); // 保存开放平台 ticket $save_ticket_res = app('wechat_op')->saveTicket($message->get('ComponentVerifyTicket')); v('save_ticket_res');v($save_ticket_res); break; case "unauthorized": // 公众号取消授权记录 $appid = $message->get('AuthorizerAppid'); v('gzh_unauthorized:'.$appid); parent::__construct($appid); $this->WechatApi->cancel_oauth_official_account($appid); break; case "authorized": // 公众号授权 v('gzh_authorized'); break; default: break; } } // {"\u0000*\u0000items":{ // "AppId":"wx46d3ea76723d890c","CreateTime":"1506602969","InfoType":"component_verify_ticket","ComponentVerifyTicket":"ticket@@@MX6T2u23fgQ6BWYyU5dteplNwP_Nu-HEjoVhzmjSIKeTNu8dTVUfdCjdJqVGX4uF5ODSJKJMRqH1blDFUYgpSw"} // } function get_fake_data(){ $message = new \stdClass(); $test = 'ticket'; if($test == 'ticket'){ $message->InfoType = 'EVENT_UNAUTHORIZED'; $message->AuthorizationCode = '200'; } return $message; } }