博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信第三方平台全网发布检测失败——返回Api文本信息 失败
阅读量:6704 次
发布时间:2019-06-25

本文共 1499 字,大约阅读时间需要 4 分钟。

hot3.png

先吐一下槽,微信官方的api文档,写的真TM的绕,真是刚爬出一个坑,然后又掉进另一个坑。

正文:

遇到问题:微信第三方平台全网发布检测失败,提示“返回Api文本信息 失败”。

 

官方测试要求

先看一下微信官方文档对第三方平台的“返回Api文本消息”功能的检测要求(下图):

111224_nZs7_873762.png

也就是这个检测要求的目的是:检测第三方平台,是否实现了,调用已授权的的公众号的api(这里是公众号的客服消息接口)的功能——也就是第三方平台代替公众号回复消息给粉丝的功能。

实现过程是:

1、微信往第三方平台的“公众号消息与事件接收URL” ,转发一条来自粉丝的发给授权公众号的文本消息(xml格式)。这条文本消息有些特殊,特殊在 Content字段的内容固定为: QUERY_AUTH_CODE:$query_auth_code$ (见下图的xml信息)。注意这里的$query_auth_code$,我们稍后要获取到这个值,进行下一步操作。

151227_fhfi_873762.png

2、第三方平台接收到这条消息后,首先要先解密,然后获取FromUserName,Content的内容,因为FromUserName的值就是粉丝的openid,下一步就是要回复消息给这个openid。至于Content的值,我们要从里面截获$query_auth_code$。

  1.  $openid= $xml->getElementsByTagName('FromUserName')->item(0)->nodeValue;   
  2.  $Content= $xml->getElementsByTagName('Content')->item(0)->nodeValue;   
  3.  $query_auth_code = trim(str_replace("QUERY_AUTH_CODE:","",$Content));

 

3、第三方平台拿着获取到的$query_auth_code,调用获取公众号授权的Api(下图),获取到该公众号的授权信息——也就是为了获取公众号的 authorizer_access_token 。我一直出错就是在此处。注意下面要post给接口的数据里authorization_code,就是第二步里拿到的$query_auth_code

https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=xxxx

POST数据示例:

{

"component_appid":"appid_value" ,
"authorization_code":
$query_auth_code
}

4、第三方平台使用第三步获取到的authorizer_access_token来调用公众号的“客服消息接口”(见下面的url),回复消息给粉丝$openid。要注意发送的消息是固定的: $query_auth_code$_from_api ,也就是将第二步里获取的 $query_auth_code和“_from_api”拼接成字符串。

http请求方式: POSTauthorizer_access_token

发送文本消息

{    "touser":$openid,    "msgtype":"text",    "text":    {         "content":$query_auth_code$_from_api    }}

基本上按照上面的步骤做,就可以获得检测通过

 

 

 

转载于:https://my.oschina.net/u/873762/blog/819270

你可能感兴趣的文章
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
人工智能白热化,运维脱帽“背锅侠”
查看>>
Android中使PopupWindow显示在指定控件的上下左右!
查看>>
html中ul标签的优化
查看>>
Android Studio 3.2 Canary带来了更好的跟踪支持、Lint检查等特性
查看>>
Kurento安装与入门05——One to many video call
查看>>
[deviceone开发]-cnodejs论坛移动端App
查看>>
智能指针shared_ptr(effective modern c++笔记)
查看>>
Failed to validate a newly established connection异常
查看>>
关联对象 AssociatedObject 完全解析
查看>>
打造最美HTML5 3D机房(MONO哥强势归来,第四季惊艳发布)
查看>>
Windows下80端口被pid为4的System进程占用解决方法
查看>>
POST 后台404错误
查看>>
Ubuntu 解压zip文件名乱码问题解决
查看>>
动态规划
查看>>
Hibernate的延迟加载
查看>>
IE中input标签密码框与文本框宽度不一样问题
查看>>
【系统架构师修炼之道】(10):绪论——系统架构师的定义与职业素质
查看>>
Uber 开源地理可视化工具 Ketoper.gl,加速数据处理
查看>>
NSDate格式化小例
查看>>