接收到用户的消息,我们需要做出反馈。4 微信公众号开发 被动回复消息 回复没有反应怎么办
文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543

官方返回的数据格式是xml,我们需要转化为json。获取数据,构造xml在返回就OK了。
核心代码:

server.route({
  method: 'POST',
  path: '/wx',
  options: {
    tags: ['api'],
    description: '接收消息',
    auth: false,
  },
  handler: (request, h) => {
    const data = JSON.parse(parser.toJson(request.payload)).xml;
    // 定义参数
    const toUser = data.FromUserName;
    const fromUser = data.ToUserName;
    const content = '欢迎来到英雄联盟';
    const response = h.response(weixin.reply.text(toUser, fromUser, content));
    response.type('application/xml');
    return response;
  }
});

// reply.text 函数代码
text(toUser: string, fromUser: string, content: string) {
  const data = `<xml>
  <ToUserName><![CDATA[${toUser}]]></ToUserName>
  <FromUserName><![CDATA[${fromUser}]]></FromUserName>
  <CreateTime>${timeStamp()}</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[${content}]]></Content>
  </xml>`;
  return data
};
注意,这里有一个神坑,官方的xml格式是错误的。

4 微信公众号开发 被动回复消息 回复没有反应怎么办
从官方复制过来的xml会有很多空格。就是< !] ],把这些空格全部去除掉可以正常回复。

相关文章:

  • 2021-09-12
  • 2021-07-04
  • 2021-09-16
  • 2021-12-16
  • 2022-02-16
  • 2021-11-20
  • 2021-05-29
  • 2022-02-03
猜你喜欢
  • 2021-12-25
  • 2022-12-23
  • 2022-01-08
  • 2021-11-29
  • 2021-11-17
  • 2021-07-14
  • 2021-12-23
相关资源
相似解决方案