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格式是错误的。

在这里插入图片描述
从官方复制过来的xml会有很多空格。就是< !] ],把这些空格全部去除掉可以正常回复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值