文档章节

微信第三方平台全网发布检测

Nixus
 Nixus
发布于 2018/02/10 12:27
字数 538
阅读 380
收藏 4
  • 首先感谢easyWechat的作者,提供了非常实用的SDK!

  • 其次感谢飞山雪豹,虽然看了这个帖子后,还是走了很多弯路(自己太蠢),但是,没有这个帖子,只看微信文档,完全没有头绪;

  • 最后,问候微信文档的作者!!!

  • 微信全网发布检测的文档,看了几遍,可能是懵逼(Fuck The Writer Of The WeChat Document)的状态下,完全不知道文档在说什么…… 输入图片说明

  • 解决步骤:

  • 首先微信会验证返回Api文本消息这一项,在验证这项的时候,会有授权的code,可以拿到授权信息,需要保存下来,在验证返回普通文本消息发送事件消息的时候,都会用到,感觉这个比较关键;

  • 自己根据飞山雪豹帖子中的代码,做了一些调整,最终在凌晨2:30,终于被微信全网发布检测通过了。

// 由于项目使用的框架是laravel,所以以下代码都是基于laravel的
// http://www.example.com/Receiver/$APPID$
// $app_id 是微信传过来的公众号或小程序的APPID

// $this->openPlatform = \EasyWeChat::openPlatform(); 这行写在了构造函数里了

// 路由:
Route::any('Receiver/{appid}', '控制器@方法');   // 接收微信推送来的事件和消息


public function receiver($app_id)
{
    $this->app_id = $app_id;

    // $official = $this->initOfficialAccount();
    $openPlatform = $this->openPlatform;
    $server           = $openPlatform->server;

    $server->push(EventHandler::class, Message::EVENT); // 检测中,这个是没什么用的

    $msg = $server->getMessage();
    if ($msg['MsgType'] == 'text') {
        if ($msg['Content'] == 'TESTCOMPONENT_MSG_TYPE_TEXT') {
            $curOfficialAccount = $openPlatform->officialAccount($app_id, Redis::get($app_id));
            $curOfficialAccount->customer_service->message($msg['Content'] . '_callback')
                ->from($msg['ToUserName'])->to($msg['FromUserName'])->send();
            die;
        } elseif (strpos($msg['Content'], 'QUERY_AUTH_CODE') == 0) {
            echo '';
            $code           = substr($msg['Content'], 16);
            $authorizerInfo = $openPlatform->handleAuthorize($code)['authorization_info'];
            Redis::set(
                 $authorizerInfo['authorizer_appid'], 
                 $authorizerInfo['authorizer_refresh_token']
            );
            Redis::expire($authorizerInfo['authorizer_appid'], 20);
            $curOfficialAccount = $openPlatform->officialAccount(
                 $authorizerInfo['authorizer_appid'], 
                 $authorizerInfo['authorizer_refresh_token']
            );
            $curOfficialAccount->customer_service->message($code . "_from_api")
                        ->from($msg['ToUserName'])->to($msg['FromUserName'])->send();
        }
    } elseif ($msg['MsgType'] == 'event') {
        $curOfficialAccount = $openPlatform->officialAccount($app_id, Redis::get($app_id));
        $curOfficialAccount->customer_service->message($msg['Event'] . 'from_callback')
            ->to($msg['FromUserName'])->from($msg['ToUserName'])->send();
        die;
    }

    return $openPlatform->server->serve();
}

代码尚有优化的空间,但是在检测的时候,完全可以跑通

再次感谢easyWechat提供了非常实用的SDK!

话说,OSC啥时候能把这个md给好好整整啊,完全不会用

© 著作权归作者所有

共有 人打赏支持
Nixus
粉丝 10
博文 19
码字总数 4759
作品 0
广州
程序员
私信 提问
01第三方平台概述

第三方平台概述 一、概述 公众平台第三方平台是为了让公众号或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,...

MadDragon
2018/03/12
0
0
微信公众号登录授权(全网发布)一键绑定公众号设置教程及常见问题

一、 授权登录优点 1、微信官方认可; 2、操作简单,避免繁杂的接口对接设置; 3、不提供密码给平台或者开发者,公众号更加安全; 4.一键绑定,省去繁琐的对接流程; 5.认证服务号一键配置省...

伽罗kapple
2016/06/24
3.1K
1
JeeWx 捷微 2.3 发布,JAVA微信管家平台

JeeWx,敏捷微信开发,简称“捷微”,捷微是一款免费开源的JAVA微信管家平台 一、简介 Jeewx是一个开源、高效、敏捷的微信开发平台,采用JAVA语言基于Jeecg快速开发框架实现,Jeewx开源版实现...

Jeecg
2016/03/24
10.6K
0
Jeewx捷微 , 免费微信公众账号管家系统发布,采用JAVA语言

JeeWx, 微信管家平台,简称“捷微”. 捷微是一款免费开源的JAVA微信公众账号开发平台. 当前最新版本: 2.3(发布日期:20160323) 一、捷微Jeewx简介 Jeewx是一个开源、高效、敏捷的微信开发...

Jeecg
2016/03/24
248
0
微信公众号第三方平台 SDK--EasyOpenWechat SDK

本SDK是基于EasyWechat开发,为了方便微信公众号第三方平台开发,封装了微信公众号授权第三方平台的开发,以及实现了全网发布的接入,本项目还在持续开发中,目前虽然还没发布1.0.0版本但是已...

chunhei2008
2016/12/21
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

php-fpm配置文件详解

php-fpm配置文件详解 php-fpm配置文件路径: /usr/local/php-fpm/etc/php-fpm.conf ,还包含了一个配置文件路径下的所有以.conf结尾的配置文件(子配置文件)/usr/local/php-fpm/etc/php-fp...

李超小牛子
26分钟前
3
0
排序-堆排序

在说明堆排序的过程前得先了解什么是堆: 先看下图(来源于java数据结构和算法(第二版)): 堆是个完全二叉树,并且父节点总是大于(小于)它的孩子,因此根节点永远是最大或者最小的元素。...

FAT_mt
56分钟前
3
0
matlab-自控原理 秩判据 能观性 已知线性定常系统的A和C矩阵

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclc% x'=A*x......

志成就
今天
1
0
不改一行代码定位线上性能问题

背景 最近时运不佳,几乎天天被线上问题骚扰。前几天刚解决了一个 HashSet 的并发问题,周六又来了一个性能问题。 大致的现象是: 我们提供出去的一个 OpenAPI 反应时快时慢,快的时候几十毫...

编程SHA
今天
5
0
Go 示例测试实现原理剖析

简介 示例测试相对于单元测试和性能测试来说,其实现机制比较简单。它没有复杂的数据结构,也不需要额外的流程控制,其核心工作原理在于收集测试过程中的打印日志,然后与期望字符串做比较,...

恋恋美食
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部