微信公众号三方平台开发【全网发布及全网发布接入检测】

经过之前系列内容过后,接下来的代微信公众号实现业务部分跟微信公众号开发业务逻辑一样,所以公众号其他业务功能部分后面我会单独整理一套相关内容,今天,咱们就来说说微信第三方平台开发的最后一步—— 全网发布,因为只有进行全网发布后,我们的第三方平台才可以接收所有的微信公众号的授权,否则就只能接收测试公众号的授权。

在正式进行全网发布之前,必须先通过全网发布接入检测,意思就是此时微信服务器会通过自动化测试的方式,来检测我们开发的第三方平台的基础逻辑是否正常可用,只有在确定基础可用的情况下,才会允许第三方平台提交全网发布。

当然,在前往开放平台进行全网发布之前,我们首先要根据测试步骤,用代码实现相关逻辑,才能顺利通过全网发布,在这一步一般会出现以下三个问题:返回Api文本信息返回普通文本信息发送事件信息

首先,在开发文档里,我们可以看到,官方提供了专用测试公众号信息,其中appid为 wx570bc396a51b8ff8,Username为gh_3c884a361561。

1) 发送事件信息

模拟粉丝触发专用测试公众号的事件,并推送事件消息到专用测试公众号,第三方平台需要提取推送过来的XML信息中event的值,并且第三方平台需要在5秒内立即返回按照官方要求组装成文本消息回复给粉丝,格式为:event + “from_callback”(假定event为LOCATION,则文本消息内容为: LOCATIONfrom_callback)。
这里,我们需要先判断事件信息是否属于专用测试公众号,然后组装进行回复:

if($toUsername== 'gh_3c884a361561'){
$event = $postObj-> Event;
$content =$event.'from_callback';
responseText($postObj,$content);
}

2)返回普通文本信息

模拟粉丝发送文本消息给专用测试公众号,第三方平台需要根据文本消息的内容进行相应的响应,这里推过来的会是一个固定内容,为TESTCOMPONENT_MSG_TYPE_TEXT,而我们也是返回一个固定文本内容即可,为TESTCOMPONENT_MSG_TYPE_TEXT_callback

if(strtolower($postObj -> MsgType) == 'text' &&trim($postObj->Content)=='TESTCOMPONENT_MSG_TYPE_TEXT'){
$toUsername = $postObj-> ToUserName;
if($toUsername =='gh_3c884a361561'){
$content ='TESTCOMPONENT_MSG_TYPE_TEXT_callback';
responseText($postObj,$content);
}
}

3)返回Api文本信息

模拟粉丝发送文本消息给专用测试公众号,第三方平台需要在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝。
 
第三方平台接收到的文本信息为QUERY_AUTH_CODE: queryauthcode ,这里我们只要进行“QUERY_AUTH_CODE”字段判定就可以了,在拿到 queryauthcode 的值后,需要利用 queryauthcode 的值来换取公众号的授权信息(换取授权信息实现方法见微信公众号三方平台开发【获取授权方的授权信息以及基本信息】),然后再调用发送客服消息api来给粉进行文本消息回复,其中文本消息内容为: queryauthcode _from_api

if(strpos ( $postObj->Content, 'QUERY_AUTH_CODE' ) !== false){
$query_auth_code =str_replace ( 'QUERY_AUTH_CODE:', '', $postObj->Content);
$wechat =A('Wechat/Wechat');
$info = $wechat->getAuthInfo($query_auth_code);
$access_info=$info['authorization_info'] ['authorizer_access_token'];
$param ['touser'] =$postObj ->FromUserName;
$param ['msgtype'] ='text';
$param ['text']['content'] = $query_auth_code . '_from_api';
$url ='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_info;
$res = post_data ($url, $param );
}

完整消息事件完整代码:

public function reponseMsg(){
require_once(dirname(FILE).'/wxBizMsgCrypt.php');
//encodingAesKey和token均为申请三方平台是所填写的内容
$encodingAesKey = '公众号消息加解密Key';
$token = '公众号消息校验Token';
$appId = '三方平台appid';
$timeStamp = empty($_GET ['timestamp'] ) ? "" : trim ( $_GET ['timestamp'] );
$nonce = empty ($_GET['nonce'] ) ? "" : trim ( $_GET ['nonce'] );
$msg_sign = empty($_GET ['msg_signature'] ) ? "" : trim ( $_GET ['msg_signature'] );
$pc = new\WXBizMsgCrypt( $token, $encodingAesKey, $appId );
//获取到微信推送过来post数据(xml格式)
$postArr=$GLOBALS['HTTP_RAW_POST_DATA'];
$msg = '';
$errCode=$pc->decryptMsg($msg_sign, $timeStamp, $nonce, $postArr,$msg);
if($errCode == 0){
//处理消息类型,并设置回复类型和内容
$postObj=simplexml_load_string($msg,'SimpleXMLElement',LIBXML_NOCDATA);
//判断该数据包是否是订阅(用户关注)的事件推送
if(strtolower($postObj-> MsgType) == 'event'){
//第三方平台全网发布检测发送事件消息测试
$toUsername= $postObj -> ToUserName;
if($toUsername== 'gh_3c884a361561'){
$event= $postObj -> Event;
$content= $event.'from_callback';
responseText($postObj,$content);
}
//如果是关注subscribe事件
if(strtolower($postObj->Event== 'subscribe')){
$public_name=strval($postObj->ToUserName);
$map['public_name']=$public_name;
$cont=M('Subscribe')->where($map)->find();
//回复用户消息
$content=$cont['content'];
responseText($postObj,$content);
}
}
//第三方平台全网发布检测普通文本消息测试
if(strtolower($postObj-> MsgType) == 'text' &&trim($postObj->Content)=='TESTCOMPONENT_MSG_TYPE_TEXT'){
$toUsername= $postObj -> ToUserName;
if($toUsername== 'gh_3c884a361561'){
$content= 'TESTCOMPONENT_MSG_TYPE_TEXT_callback';
responseText($postObj,$content);
}
}
//第三方平台全网发布检测返回api文本消息测试
if(strpos ($postObj->Content, 'QUERY_AUTH_CODE' ) !== false){
$query_auth_code= str_replace ( 'QUERY_AUTH_CODE:', '', $postObj->Content);
$wechat= A('Wechat/Wechat');
$info= $wechat ->getAuthInfo($query_auth_code);
$access_info=$info['authorization_info'] ['authorizer_access_token'];
$param['touser'] = $postObj ->FromUserName;
$param['msgtype'] = 'text';
$param['text'] ['content'] = $query_auth_code . '_from_api';
$url='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_info;
$res = post_data ( $url,$param );
}
//用户发送某一图文关键字的时候,回复图文消息
if(strtolower($postObj->MsgType) == 'text' && trim($postObj->Content)=='图文'){
//这一步可从数据库中查询得到
$arr=array(
array(
'title'=>'test1',
'description'=>'test1',
'picUrl'=>'http://mmbiz.qpic.cn/mmbiz/mLiaE7fSUysSbbqzicX2LVsLL1HsXMRV0m6uicfiaSX9Aic43BA5vnpFOBMWAoEuaVDicoOX4HzGT8OT5QK6DRs14VkQ/0',
'url'=>'https://mp.weixin.qq.com/s?__biz=MjM5NzY4MDc0MA==&tempkey=mKI6U0rlJZofvceyQdxTPAYtneMxKyhWy52ytbUZfOJzFEHMDqmYTQLQWrkrSRky&appmsgid=10000002&itemidx=1&sign=99baf31f45e2357af575c63b5b303b6a#wechat_redirect',
),
array(
'title'=>'test2',
'description'=>'test2',
'picUrl'=>'http://mmbiz.qpic.cn/mmbiz_jpg/mLiaE7fSUysTFDEZQTOvXleYwYqFN1JeLwM66Zg7dHjK3aHQxdVtwGTJgzuKJRuZCBHljIvVLkvZ2CADJ6paJYQ/0?wx_fmt=jpeg',
'url'=>'https://mp.weixin.qq.com/s?__biz=MjM5NzY4MDc0MA==&tempkey=mKI6U0rlJZofvceyQdxTPDXw5wcPw4rpHzkwOv4U7kDY1V%2BUUirAB0C9oEEsX5HQB8Uv1Ut2zj3buNkRPh6KNYWVyTaxebMkb8IcD9FjNbpcqY0mdRbCxRnbIjtmNBd37cKXm3Egbo1KWdkSEy5NZg%3D%3D&chksm=315123030626aa15c3e454afbd931ec3458149b13370999b16bc72b876326977e7d68b406a8c#rd',
)
);
responseNews($postObj,$arr);
}else{
//当微信用户发送关键字,公众号回复对应内容
$public_name=strval($postObj->ToUserName);
$keyword=strval(trim($postObj -> Content));
$log['public_name']=$public_name;
$log['keyword']=array('like','%'.$keyword.'%');
$con=M('Keyword')->where($log)->select();
foreach($conas $vo => $k){
$conn=$con[$vo]['content'];
}
if($conn){
$content=$conn;
}else{
$lg['public_name']=$public_name;
$lg['keyword']='';
$con=M('Keyword')->where($lg)->select();
foreach($conas $vo => $k){
$conn=$con[$vo]['content'];
}
$content=$conn;
}
responseText($postObj,$content);
}
}
}

完成后,再前往开放平台,点击全网发布,等待一分钟左右,看到所有状态都为成功,则代表全网发布接入检测通过了,点击【确定】,就愉快的发布咯。

全网发布接入检测成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/53547.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wechat-0010,微信公众号,接入微信公众平台

demo:https://github.com/wenrongyao/wechat-demo 接入准备: 1、有一个能在公网上访问的项目 可以用内网穿透(推荐使用natapp),微信接入必须使用80端口或443端口,某壳现在需要花钱才能使用80端口,果断放弃…

微信公众平台测试帐号申请及Token验证地址提供

1、浏览器打开微信公众平台测试帐号申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?tsandbox/login, 通过微信扫一扫授权就能进入到测试号管理页面。 上面图中 有个接口配置信息 需要你自己有服务器提供接口来接收微信的token验证 配置了验…

微信开放平台,公众号第三方平台接入

微信开放平台和公众平台的区别 开放平台是网站或app使用的接口平台,利用开放平台可在自己的网站或app上开发微信帐户登录、微信分享等功能! 公众平台是微信号的一种,也具有开发功能,是在公众号中开发出更多功能,例如微…

抑郁症前期如何治疗,有哪些方法?

随着社会的告诉发展,越来越多的人因为不喜欢职场上的花花绕绕,喜欢独自待在家里,不管是做什么,发呆也好,追剧也罢,总之拒绝和人交流沟通就可以。久而久之,就容易形成一个性格孤僻、不喜欢与人交…

脑电植入:治疗抑郁症的新方法?重磅!UCSF研究人员成功治疗一例重度抑郁症患者

患者 Sarah 在诊所与精神病学家 Katherine Scangos 在一起 © Maurice Ramirez,UCSF Sarah多年来饱受着严重且无法治愈的抑郁症的折磨。她说:“我每天都强迫自己克制自杀冲动,而这种冲动每小时就会出现好几次。” 近日,加州大学旧金山分校…

好心情医生:精神病性症状≠精神分裂症

01 幻觉和妄想是最常见的精神病性症状 精神病性症状有哪些?哪些疾病会出现精神病性症状?我们通常说的精神病性症状,就是经常提到的认知方面的异常,如感知觉异常,如出现幻听、幻视、幻嗅等幻觉;思维内容异…

抑郁症要身心同治

来源:中国数字科技馆 “没有人对抑郁症有绝对的免疫力。”著名心理学家马丁塞利曼将抑郁症称为精神病学中的“感冒”。世界卫生组织预计,到2020年抑郁症将跃至全球第二大疾病,自杀是其最可怕的症状。抑郁症可导致躯体各种功能的障碍&#xf…

抑郁症维持期治疗应维持多久?如何管理患者发生停药反应的风险?

抑郁症的治疗往往需要一个比较长的治疗阶段,其中维持期是抑郁症治疗的非常重要的一个阶段,同时,也是很多患者在维持期选择放弃了治疗,甚至有一些学者会认为维持期的时间过长,不利于患者的服药依从性。那么抑郁症维持期…

好心情发布《2022国民抑郁症蓝皮书》

抑郁症是全球常见病,据世界卫生组织数据显示,全球抑郁症患者高达3.22亿。据最新的流行病学调查数据估算,我国抑郁症患者将近5000万,新冠疫情后,抑郁症的患病人数更是大幅增加。但事实上,大众对于抑郁症的了…

好心情心理咨询:抑郁焦虑,都是反刍思维惹的祸,4招打破

(图源:网络) 武林外传中佟掌柜的口头禅让人上头,其实这话我们也老说,常常每到夜晚就开启“网抑云”模式,脑中就滚动播放这些微不足道的憾事,而且还是重播! 网络上戏称人生憾事归结…

好心情互联网医院:抑郁症一直吃药,为何还会复发?

原标题:抑郁症一直吃药,为何还会复发?如何才能终身不复发? 一位抑郁症病友在网上分享了自己患病25年的经历: 我是1995年被确诊了抑郁症,吃了两个月的药后,我觉得自己又活过来了,之后就没再坚持吃药&#…

会议报道丨心语心“悦”——抑郁症诊疗进展“大咖”谈(三)

2022年10月27日,灵北中国举办的心语心“悦”——抑郁症诊疗进展“大咖”谈系列会议第三期于线上圆满召开。本次大会邀请到中南大学湘雅二医院的李凌江教授、首都医科大学附属北京安定医院的张玲教授、武汉大学人民医院的刘忠纯教授和南京医科大学附属脑科医院的姚志…

好心情:抑郁症治疗究竟需要花多少钱?

最近,后台一名刚患病的抑郁症患者小K留言给好心情小编,原文是这样的: 感觉自己已经得了抑郁症,但是自己家庭条件并不是很好,自己最近一两年也没有工作,因此也没有医疗保险。抑郁症治疗会不会很贵&#xff0…

JAMA Psychiatry:老年抑郁症患者的神经影像学、认知、临床症状和遗传学的异质性表征

重要性:老年抑郁症(LLD)的临床表现具有相当大的异质性。揭示这种异质性可能有助于阐明LDD的发病机制,并有助于精准和个性化治疗LDD。 目的:横向和纵向描述与神经解剖学、认知功能、临床症状和遗传图谱相关的LLD异质性…

老年期抑郁症的机制及治疗

抑郁症对生理疾病易感,并促进端粒缩短、大脑衰老和表观遗传衰老等生理衰老。同时,生理疾病还增加了老年抑郁症的风险。抑郁症的老化相关的病程变化和疾病相关的病程变化是相关的,并产生了相应的致病假设和提供了治疗方向。比如,在…

数据分析的种类及其在会计行业的应用

​逝者如斯,不舍昼夜。过去的已经过去,无法改变,但你仍需为未来努力。对于公司而言,这就是数据分析发挥作用的地方。 数据分析通过研究一组原始数据得出能指导未来行动的结论。数据包括历史记录,研究报告,行…

信息化条件下会计档案电子化的最新要求,企业管理和财务工作或将再次迎来变革

随着互联网、大数据、云计算、区块链接等信息技术的应用和电子商务的快速发展,信息化、电子化已经成为时代发展的主要趋势。会计档案电子化的实施极大地改善了信息管理的水平,提高了档案信息的利用率和共享率,因此如何推动会计档案电子化的进…

简述使用计算机对会计工作的影响,会计电算化对会计工作的影响有哪些

会计电算化对会计工作的影响有哪些 会计电算化也叫计算机会计,是指以电子计算机为主体的信息技术在会计工作的应用,具体而言,就是利用会计软件,指挥在各种计算机设备替代手工完成或在手工下很难完成的会计工作过程,会计…

【明天股票会涨吗?】

股票明天会涨吗? 以中证500为例的股指涨跌预测1.数据的获取2.数据的处理3.模型训练与求解4.结果与反思5.结语 最近真的是啥都一片绿啊,股票也、基金也、哎!说…

YAML和JSON对比

1️⃣YAML是什么干什么的? YAML 是You are my love 的缩写 YAML(YAML Ain’t Markup Language),YAML 是一种简洁的非标记语言 1、YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。 2、YAML是一种可读的文本的数据结构,它的设计目标是使人们容…