【踩坑系列】发送微信模板消息返回40165 invalid weapp pagepath ...

打印 上一主题 下一主题

主题 1008|帖子 1008|积分 3024

1. 踩坑经历

最近做了个需求,需要往公司微信公众号推送一个模板消息,并且点击该消息需要跳转到公司小程序的某个页面。
1.1 拿到模板id

既然是发送模板消息,第一步就需要登录微信公众号后台新建模板消息,拿到模板id。
登录地址:https://mp.weixin.qq.com
新建模板消息的方法如下所示:
1)在左侧“广告与服务”菜单下找到“模板消息”菜单

2)点击”从历史模板库中添加“按钮

3)找到合适的模板后,点击”详情”,打开模板详情页

4)在模板详情页点击”添加“按钮,将模板添加到自己的公众号中

5)添加完成后,就可以拿到模板id

1.2 调用发送模板消息接口

模板消息接口文档:
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
发送模板消息接口:
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=
按照接口文档要求,最终调用接口的请求报文大致如下所示:
  1. {
  2.     "template_id":"RJr0LvTwWtwKNNeorUtfBF-ClwCRCB9GAfO55H6DjtE",
  3.     "touser":"oYLSx0S7Oci-kbNIrPA461q9g1iE",
  4.     "data":{
  5.         "first":{
  6.             "color":"",
  7.             "value":"尊敬的客户,感谢您选择****,\n以下为*****交易风险提示"
  8.         },
  9.         "keyword1":{
  10.             "color":"",
  11.             "value":"沪C88V88"
  12.         },
  13.         "keyword2":{
  14.             "color":"",
  15.             "value":"2023年03月28日 15:56"
  16.         },
  17.         "keyword3":{
  18.             "color":"",
  19.             "value":"*****交易风险提示\n为保障您的财产安全,谨防法律风险,***提醒您,请遵循平台交易流程,切勿与任何非平台第三方单独/私下交易,\n如您遇到有****买家或员工向您表示想私下交易的,可向平台进行举报,经查证属实可获奖励 800 元/单。\n"
  20.         },
  21.         "remark":{
  22.             "color":"#fe2d46",
  23.             "value":"如需举报,请点击本条消息 >>>"
  24.         }
  25.     },
  26.     "miniprogram":{
  27.         "appid":"wx356234er34567dv",
  28.         "pagepath":"pages/order/detail?id=23"
  29.     }
  30. }
复制代码
说明:
1)如果模板消息中的内容需要换行,如上面的first里的内容,可以使用换行符\n。
2)如果模板消息中的内容需要自定义字体颜色,如上面的remark里的内容,可以给color赋值为自定义的颜色。
提测后,测试反馈一直收不到微信模板消息,查看日志后,发现调用发送模板消息接口后,一直返回40165这个错误码,消息未发送成功。
响应报文如下所示:
  1. {
  2.     "errcode":40165,
  3.     "errmsg":"invalid weapp pagepath rid: 64229d9f-2e863b15-2db557df"
  4. }
复制代码
2. 原因分析

看到40165这个错误码,想先去微信接口文档中查找下这个错误码的说明,结果文档中并没有找到,
然后根据errmsg的提示猜测可能是小程序的跳转地址,微信识别不了,所以代码先把跳转小程序的部分注释了,再次发送,
发现消息发送成功了,证实消息发送失败确实是因为小程序跳转地址导致的。
和前端沟通后,得知这个跳转地址,是本次需求新加的,处于小程序的开发版中,小程序正式版中暂时没有该地址,
所以导致发送微信模板消息一直报这个错。
3. 解决方案

经过证实,不管小程序是开发版,还是体验版,只要不是正式版,新加的这个页面地址,发送微信模板消息就是识别不了,
一直返回40165这个错误码,直到小程序审核通过成为正式版后,这个地址才被识别,发送消息终于成功了:
  1. {
  2.     "errcode":0,
  3.     "errmsg":"ok",
  4.     "msgid":2868541260507217920
  5. }
复制代码
说点别的,因为发送微信模板消息跳转小程序有上面的这个问题,所以在做这种需求时,业务系统最好加个配置开关,上线时,先关闭该
开关,等小程序审核通过成为正式版后,再打开开关,不然在这之前的推送会全部失败。
文章持续更新,欢迎关注微信公众号「申城异乡人」第一时间阅读!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

嚴華

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表