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