微擎处理公众号消息的流程

最近在处理一项客户定制功能的时候,需要用到下发客服消息的功能,而要成功的下发客服消息需要用户和公众号产生特定动作的交互(发送信息,点击自定义菜单,关注公众号,扫描二维码,支付成功 ,用户维权),开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。通过查阅微擎文档之后终于捋顺了微擎框架发送消息的逻辑,具体逻辑如下图:

2019083003485993

首先用户发送消息后,微信服务器会推送一段xml代码到用户服务器,结构如下

<xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[fromUser]]></FromUserName>
    <CreateTime>12345678</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[你好!]]></Content>
</xml>

微擎系统接收到消息后,会转化成以下的数组形式,如下:

$message => array(
    // 此部分数据结构为**全局共有的结构**, 其他消息类型为此结构的**补充**.
    'from' => 'fromUser', //string: 发送消息方, 代表一个粉丝用户(使用OpenID表示)
    'to' => 'toUser', //string: 消息接收方, 对应当前的公众号(使用OpenID表示)
    'time' => '12345678', //int: 消息发送时间, 使用Unix时间戳表示
    'type' => 'text', //string: 消息类型, 用于区分不同类型的消息, 请参阅下文
    'content' => '你好!', //string:消息内容
    'msgid' => '' //int: 消息ID, 公众平台系统用于唯一标识一条请求消息
);

微擎系统会通过这个消息结构数组,使用 规则 和 模块 的机制来处理公众平台的请求数据并推送到模块下的processor.php文件返回响应的结果

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/code/2396.html

发表评论

登录后才能评论