游戏攻略网
当前位置: 首页 游戏攻略

微信开放平台怎么授权(微信三方平台之全网发布及全网发布接入检测)

时间:2023-08-23 作者: 小编 阅读量: 1 栏目名: 游戏攻略

今天,咱们就来说说微信第三方平台开发的最后一步——全网发布,因为只有进行全网发布后,我们的第三方平台才可以接收所有的微信公众号的授权,否则就只能接收测试公众号的授权。在正式进行全网发布之前,必须先通过全网发布接入检测,意思就是此时微信服务器会通过自动化测试的方式,来检测我们开发的第三方平台的基础逻辑是否正常可用,只有在确定基础可用的情况下,才会允许第三方平台提交全网发布。

今天,咱们就来说说微信第三方平台开发的最后一步—— 全网发布,因为只有进行全网发布后,我们的第三方平台才可以接收所有的微信公众号的授权,否则就只能接收测试公众号的授权。

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

当然,在前往开放平台进行全网发布之前,我们首先要根据测试步骤,用代码实现相关逻辑,才能顺利通过全网发布,在这一步一般会出现以下三个问题:返回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:$query_auth_code$,这里我们只要进行“QUERY_AUTH_CODE”字段判定就可以了,在拿到$query_auth_code$的值后,需要利用$query_auth_code$的值来换取公众号的授权信息(换取授权信息实现方法见“微信三方平台之获取授权方的授权信息以及基本信息”),然后再调用发送客服消息api来给粉进行文本消息回复,其中文本消息内容为:$query_auth_code$_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+UUirAB0C9oEEsX5HQB8Uv1Ut2zj3buNkRPh6KNYWVyTaxebMkb8IcD9FjNbpcqY0mdRbCxRnbIjtmNBd37cKXm3Egbo1KWdkSEy5NZg==&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);

}

}

}

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

全网发布接入检测成功

    推荐阅读
  • steam棋牌游戏推荐(幸运之夜新版本亮相TGC)

    steam棋牌游戏推荐12月1日,2017腾讯游戏嘉年华正式在成都开幕,腾讯的VR社交游戏《幸运之夜》在现场发布了最新版本。VR《幸运之夜》在TGC2017上惊艳亮相《幸运之夜》新版本发布邀请好友一起游戏今年7月底,《幸运之夜》正式在Steam发布,并推出了首款游戏作品“德州扑克”。今年的TGC2017现场,《幸运之夜》全新版本便带来了对互动性方面的提升。

  • 儿童睡前故事卖火柴的小女孩大全(卖火柴的小女孩)

    在长发公主的故事里,兔子小姐变成了手持宝剑的骑士,穿过了山川和河流,战胜了地狱恶犬,最终救出了长着一头金黄色长发的熊猫先生。随着一阵空间的波动,熊猫先生和兔子小姐来到了冰天雪地的圣诞节。小女孩被这突如其来的变化惊呆了。熊猫先生没有回答,轻轻摸了摸小女孩的头。小女孩点燃了第二根火柴。熊猫先生和兔子小姐则来到壁炉前,商量起小女孩最后一个愿望。熊猫先生蹲下来,握起小女孩的手。

  • 怎样做ppr管快一点(PPR管安装方法及技巧)

    怎样做ppr管快一点PPR管安装方法及技巧首先准备好需要的材料:热熔机,小剪刀,ppr管,管件,手巾。一定要根据自己热熔ppr管的口径,准备相应的热熔头。清洁:清洁管材与管件的焊接段部位,建议用95%浓度酒精擦净。在熔接时间内迅速的将管材无旋转的垂直插入管件中,并维持5秒以上,然后按相应冷却时间冷却。热熔后做到横平竖直,美观大方。

  • 大托特包搭配技巧(大托特包搭配技巧简述)

    西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄搭配撞色托特包,优雅而不失俏皮,让气场变得灵动起来内搭白色连帽卫衣,减龄又可爱,接下来我们就来聊聊关于大托特包搭配技巧?大托特包搭配技巧西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄。衬衫+托特包白色的衬衫休闲慵懒,给人一种空灵的感觉以及干净纯粹的气质。

  • 刘涛电视剧口碑(电视剧景气指数第一)

    还记得3月份刘涛在和周渝民主演的《大宋宫词》中扮嫩出演少妇被很多观众吐槽。万万没想到时隔数月,刘涛带着她的新剧《星辰大海》杀回来了。目前主要的剧情线在刘涛饰演的女主简爱身上。因为小时候意外发现母亲出轨的事,得知真相的父亲激愤之下杀死母亲并自杀,简爱因此成为了一个孤女。逃出傻子家的简爱在与姑姑的争执中误伤姑姑,从此开启逃命生涯。简爱从面馆辞职走投无路,误打误撞进入大公司之后面临着同事的故意刁难。

  • 外墙装修材料有哪些 外墙装修材料有哪些类型

    外墙涂料具有装饰性良好、耐污染耐老化以及施工维修容易和价格合理的特点。一般来说釉面外墙砖有亚光面与无光面两大类。它的装饰的效果也不错,有柚木色、深灰色等等可供选择。由于它的表面的肌理很清晰,所以色泽漂亮且装饰性极强。本站,中国知名大型装修平台,装修领导品牌。

  • 世界上有哪些花(世界上有哪些花 名字)

    瓜叶菊、香豌豆、夏兰、石竹、石蒜、荷花、翠菊、睡莲、福禄考、晚香玉、万寿菊、千日红、建兰、铃兰、报岁兰、香堇、大岩桐、水仙、小草兰、瓜叶菊、蒲包花、免子花、入腊红、三色堇、百日草、鸡冠花、一串红。孔雀草、大波斯菊、金盏菊、非洲凤仙花、菊花、非洲菊、观赏凤梨类、射干、非洲紫罗兰、天堂鸟、炮竹红、菊花、康乃馨、红掌、满天星、星辰花、三角梅、虞美人。

  • 长歌行李长歌母亲是谁杀的(长歌行李长歌的简介)

    下面更多详细答案一起来看看吧!长歌行李长歌母亲是谁杀的《长歌行》李长歌母亲是自杀的。李长歌,太子李建成之女,生母则是回纥王族。父母手足均死于玄武门之变,满怀愤恨的长歌凭高超武艺逃出皇宫,并在追捕过程中制造“坠崖假死”而逃生,其后女扮男装隐瞒身份流落民间,一心只想为父母复仇,在家和国的利害冲突中,最后放弃复仇,和阿诗勒隼一起成为了民族和解的使者。

  • 什么时候喝蛋白粉增肌效果最好(什么时候喝蛋白粉增肌效果最好)

    从长远来看,这种方法被证明可以促使肌肉明显增长。如果摄入量超过一定的阈值,蛋白质的合成就会受限。如果是以乳清饮料的形式摄入乳清蛋白,运动者可以在运动结束后立即饮用。按每公斤体重1克的标准,在健身前后立即摄入以及在运动后1小时内摄入可快速吸收的碳水化合物,可以明显抑制肌肉分解,并大大促进肌肉快速和明显的增长。在这种情况下,大量分泌的胰岛素促进了氨基酸向工作中的肌肉运输,为蛋白质合成奠定基础。

  • 窦骁周冬雨山楂树之恋结局(周冬雨18岁第一次出演)

    周冬雨18岁第一次出演要说最近最火的电影,非《少年的你》莫属,上映14天,已经收获了12.45亿的票房成绩,成为现阶段最强的票房黑马而作为该片主演的周冬雨和易烊千玺,也凭借在该片中的精彩演出,演技得到大众的进一步认可作为“。