微信第三方平台全网发布流程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35829542/article/details/52162413
1 发布前阅读

    【消息加解密接入指引】https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318479&lang=zh_CN
    【全网发布指引】https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&lang=zh_CN


2 加解密

加解密按【消息加解密接入指引】文档操作即可,需注意的是如果是java环境,替换jdk ${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar


3 发布修改流程

    因为是全网发布检测,只要通过一次就行了,而且不能影响正常流程,所以代码加上判断是否是 gh_3c884a361561 发来的事件或消息。

3.1 配置公众号消息与事件接收URL

检测流程前三步都是通过此URL接口接受消息的,如图:
这里写图片描述
3.2 step 1

    模拟粉丝触发专用测试公众号的事件,并推送事件消息到专用测试公众号,第三方平台方开发者需要提取推送XML信息中的event值,并在5秒内立即返回按照下述要求组装的文本消息给粉丝。

    判断是 gh_3c884a361561 发来的事件
    解密收到的消息
    拼装Content: event + “from_callback” (假定event为LOCATION,则Content为: LOCATIONfrom_callback)
    设置文本消息,如:


 
 
 
 
  1470707436932

    1
    2
    3
    4
    5
    6
    7
    8

    加密, 其中timestamp跟nonce可以自主生成
    return

3.3 step 2

    模拟粉丝发送文本消息给专用测试公众号,第三方平台方需根据文本消息的内容进行相应的响应:

    判断是 gh_3c884a361561 发来的消息且消息包含 TESTCOMPONENT_MSG_TYPE_TEXT
    解密收到的消息
    拼装Content:TESTCOMPONENT_MSG_TYPE_TEXT_callback
    设置消息,加密跟注意事项跟step 1一样,这里不赘述。
    return

3.4 step 3

    模拟粉丝发送文本消息给专用测试公众号,第三方平台方需在5秒内返回空串表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝

    判断是 gh_3c884a361561 发来的消息且消息包含 QUERY_AUTH_CODE
    解密收到的消息
    根据QUERY_AUTH_CODE获取授权公众号的authorizer_access_token。具体怎么获取可以查看第三方平台接入文档
    查看微信|公众平台开发者文档的客服消息 http://mp.weixin.qq.com/wiki/11/c88c270ae8935291626538f9c64bd123.html
    使用http请求post https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=authorizer_access_token
    设置请求body:

{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}
# OPENID 替换为: 接受都消息中的 `FromUserName`
# content设置为:$query_auth_code$_from_api(其中$query_auth_code$需要替换成推送过来的query_auth_code)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    return “”, 返回空串

注:第5/6两步建议使用线程异步处理,主线程在获取完authorizer_access_token就直接返回空串。流程控制在5s内完成,否则通不过检测。
3.5 step 4

    模拟推送component_verify_ticket给开发者,开发者需按要求回复(接收到后必须直接返回字符串success)

此步骤不多赘述,具体怎么处理可以查看第三方平台接入文档


4 问题与解决
4.1 消息回复不正确

缺少 导致, 原因是使用对象转xml,这个字段放父类里边了,生成xml时丢了。
4.2 客服消息不成功

不成功主要是处理逻辑时间太长了,解决方法是在上次检测把authorizer_access_token记录下来, 这次检测的时候不走获取这个token的流程,这样节省不少时间。

 

你可能感兴趣的:(微信第三方平台全网发布流程)