123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?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;
- }
- }
|