加载中…

用自己的服务号推送模板消息

默认情况下,用户只要扫码关注后台首页的二维码,当有用户下单,并完成在线支付(或者货到付款情况下下单即推送)以后,“api工厂” 的官方服务号将会已模板消息的形式提醒你尽快处理订单并发货。 除了以上提醒以外,“api工厂” 还提供了2种其他的提醒方式: 1. 通过开通钉钉提醒插件,将提醒信息推送到钉钉的多人群; [《“api工厂” 钉钉提醒插件使用教程》](https://www.yuque.com/apifm/doc/nmqn8v) 2. 通过你自己的服务号提醒; 下面主要介绍如何采用自己的服务号进行模板消息的推送: # 设置模板消息模板 登录自己的微信服务号,设置模板消息模板: 从模板库中搜索 “新订单通知” 的模板消息模板,点击添加,然后复制出“**模板ID**”接下来会用到; 选择任意一个适合你自己的模版即可 # 服务号配置 左侧菜单,微信设置 --> 公众号设置,配置好你自己的服务号的 APPID 和 SECRET,如图: ![](https://dcdn.it120.cc/yuque/0/2020/png/572726/1584410217788-9d418d48-af61-4366-af29-8409bce3ea45.png) 如果左侧菜单,没有看到 “公众号设置”  的菜单,请前往左侧菜单 “工厂设置” --> “模块管理”,启用 “微信公众号” 模块以后,F5 刷新下后台界面即可。 # 获得openid 这里的 openid,是指的接收提醒的这个人,在你自己的服务号上面对应的 openid; **如何获得 openid 呢?** 登录你的服务号的后台 [https://mp.weixin.qq.com/](https://mp.weixin.qq.com/) ,点击左侧菜单的 “用户管理” ,找到用户后,点击进入用户的详细界面; 在浏览器的地址栏中,你能看到一个链接地址,其中 tofakeid 对应的就是这个用户的 **openid** **** [《如何查看服务号用户的openid》](https://www.yuque.com/apifm/doc/dbtods) **至此,你已经通过上面的步骤获得了2个数据:“模板ID”、“openid”** # 配置提醒 在左侧菜单,系统设置 -->  系统参数 菜单,添加以下3个系统参数设置(文本类型): ```javascript wx_template_alarm_code = “模板ID” wx_template_alarm_openid = “openid” wx_template_alarm_template= 模版消息的变量信息 ``` 前2个参数的值,分别对应上面步骤获取的2个对应值,模版消息的变量: ```json { "first": { "value": "您有新的订单,请尽快处理", "color": "#173177" }, "keyword1": { "value": "${order.orderNumber}", "color": "#173177" }, "keyword2": { "value": "${order.isPay?string('已支付','未支付')}", "color": "#173177" }, "keyword3": { "value": "${order.amountReal}", "color": "#173177" }, "keyword4": { "value": "${.now?string('yyyy-MM-dd HH:mm:ss')}", "color": "#173177" }, "keyword5": { "value": "${user.nick}-${user.mobile}", "color": "#173177" }, "remark": { "value": "${order.remark}", "color": "#173177" } } ``` [《变量使用说明》](https://www.yuque.com/apifm/doc/wtviya) 请根据你自己的实际情况修改 ## 变量先写死,排除变量错误导致的发送异常 暂时先不用变量,变量的地方就用微信官方的例子写死做测试,如果写死变量可以收到,那么问题就是变量导致的,我们再进行下一步排查 如果变量写死了,还是收不到,那么,说明你配置的 json 数据有问题,请仔细排查 例: ![](https://dcdn.it120.cc/yuque/0/2020/png/572726/1585720223025-322bcede-a309-4be3-b503-408c4df4264c.png) 这个模版,有3个变量,那么测试的时候,就把这3个变量,用左侧的示例内容写死,看看能否收到消息,如: ```json { "character_string1": { "value": "2019103115382541014", "color": "#173177" }, "character_string5": { "value": "YT2018315450862", "color": "#173177" }, "time9": { "value": "2019-11-05 11:11:11", "color": "#173177" } } ``` 确认变量的内容直接使用官方的示例,这样肯定是可以收到消息的,再下一步排查变量导致的问题 # 如何推送给多人 wx_template_alarm_openid 参数,多人的 openid ,用英文的逗号分隔即可 # 如何使用其他账号下的服务号来推送 系统参数,增加一个参数: wx_template_alarm_merchant_id 参数值为对方的商户id # 收不到消息 ## 常规检查 1. 订单支付以后才会提醒,如果用户只是下单,没有支付,系统不做提醒; 2. 检查对应的服务号的配置(accessToken 刷新时间),有可能你的服务号的 secret 中途有被重置过,导致没法及时刷新获得最新的 accessToken; ## 变量使用不当 可能是你的变量写错了,你可以先不用变量,先按照模版消息的例子上的文字写死做测试,如果写死可收到小程序,用变量不行,那就是变量的问题。如果是变量问题,那就一个一个变量替换,看看是哪个变量写错了,就比较容易排查。 **时间日期必须指定格式** 所有的日期类的变量,必须指定日期显示格式,例如当前时间: ```javascript ${.now?string('yyyy-MM-dd HH:mm:ss')} ``` 这里的** ?string('yyyy-MM-dd HH:mm:ss') **是不能省略的