首先说明一下本人用的是java的开发语言,先前做过微信支付、微信公众号开发,对于微信的第三方平台开发是第一次接触,但总的来说这种只需看看文档调用接口的工作还是相对容易的,接下来就讲讲在微信第三方平台开发全网发布遇到的坑。
首先讲一下微信第三方全网发布的微信自动化测试的几大流程
-
组件ticket正确接收;
-
生成预授权码;
-
获取授权code;
-
授权;
-
返回Api文本消息;
-
返回普通文本消息;
-
发送事件消息;
-
取消授权。
以上是微信自动化测试的八个步骤,其实就是模拟人工进行公众号的授权流程。一般来说只要到了这个步骤了在测试环境中都是测试ok了才会进行全网发布,本人呢也是在测试环境测试ok了自信满满的丢到正式环境准备全网发布,但事实是啪啪打脸。主要原因不是出在代码出现BUG上,而是出在微信自动化测试的步骤上,下面开始讲一下我遇到的问题:
以上八个步骤一般会出错的就是5,6,7几个步骤前几个都比较容易过,只要你在测试环境测试ok前几个一般都没问题,
我的问题出现在5,6上,下面附上当时的截图
当时看到这个时候是懵逼的后来看了全网发布接入检测说明才恍然大悟,需要按照他们的步骤来测试完成才能将代码改成你自己想要的需求下面我们来讲一下返回普通文本和Api文本检测出错的问题
返回普通文本检测失败
首先来看文档说明(附上文档链接:点击打开链接)
需要注意的是红框部分只有在我们勾选了消息管理权限集时微信才会测试这个步骤。首先看第一步:微信那边会提供一个专门的测试公众号进行授权测试,授权后会模拟粉丝发送文本消息给他们的测试公众号,需要注意的是模拟粉丝发送的内容是一个固定的文本内容:TESTCOMPONENT_MSG_TYPE_TEXT并且是放在content字段中的,而我们需要做的是给他们回复一个固定的文本消息:TESTCOMPONENT_MSG_TYPE_TEXT_callback就行了不必画蛇添足加其他的东西。当时由于我们业务是回复粉丝一段固定的欢迎语而不是测试用的文本信息导致检测失败,后来改了之后立马就通过了检测
返回api文本信息检测失败
首先也是看文档说明
其实我们只要看红框的部分就行了,这里最重要的一个就是微信会模拟发送两次消息给测试公众号我们可以看到第一次发送到content字段内容是:TESTCOMPONENT_MSG_TYPE_TEXT ,第二次发送的文本content字段内容是 :QUERY_AUTH_CODE:$query_auth_code$ 所以我们在后台就可以加个判断分开发送不同的内容就行了
接下来就是调用客服发送消息接口了,具体调用附上详细信息:
- 客服回复用户消息
客户接口url:
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
method:post
参数:json
{
“touser”:”OPENID”,
“msgtype”:”text”,
“text”:
{
“content”:”$query_auth_code$_from_api”
}
}
注意这个access_token是授权测试公众号的access_token不是第三方平台的component_access_token 调用只需用http工具类调用就行了,还有就是我们返回给微信的content的值是:$query_auth_code$_from_api(其中$query_auth_code$需要替换成推送过来的query_auth_code)授权码和固定字符串“_from_api”拼接在一起的大概是这样的String textContent=authorization_code+"_from_api",但是我遇到到的问题是没有调用客服回复接口而是直接回复了图文消息所以失败,因为我的业务不需要用到客服接口,这就有点小坑了,所以如果你需要全网发布的话还得按照官方的来,毕竟他们是大佬。至于后面用不用得到客服接口就看你们自己的业务需求了,一切准备OK再次发起全网发布自动化测试就ok了,全网发布审核大概需要三个工作日和小程序的审核时间差不多。
最后希望这篇文章能解决您在开发中遇到的问题![再见](https://static-blog.csdn.net/xheditor/xheditor_emot/default/bye.gif)