默认情况下,用户只要扫码关注后台首页的二维码,当有用户下单,并完成在线支付(或者货到付款情况下下单即推送)以后,“api工厂” 的官方服务号将会已模板消息的形式提醒你尽快处理订单并发货。
除了以上提醒以外,“api工厂” 还提供了2种其他的提醒方式:
- 通过开通钉钉提醒插件,将提醒信息推送到钉钉的多人群;
《“api工厂” 钉钉提醒插件使用教程》 - 通过你自己的服务号提醒;
下面主要介绍如何采用自己的服务号进行模板消息的推送:
设置模板消息模板
登录自己的微信服务号,设置模板消息模板:
从模板库中搜索 “新订单通知” 的模板消息模板,点击添加,然后复制出“模板ID”接下来会用到;
选择任意一个适合你自己的模版即可
服务号配置
左侧菜单,微信设置 --> 公众号设置,配置好你自己的服务号的 APPID 和 SECRET,如图:
如果左侧菜单,没有看到 “公众号设置” 的菜单,请前往左侧菜单 “工厂设置” --> “模块管理”,启用 “微信公众号” 模块以后,F5 刷新下后台界面即可。
获得openid
这里的 openid,是指的接收提醒的这个人,在你自己的服务号上面对应的 openid;
如何获得 openid 呢?
登录你的服务号的后台 https://mp.weixin.qq.com/ ,点击左侧菜单的 “用户管理” ,找到用户后,点击进入用户的详细界面;
在浏览器的地址栏中,你能看到一个链接地址,其中 tofakeid 对应的就是这个用户的 openid
至此,你已经通过上面的步骤获得了2个数据:“模板ID”、“openid”
配置提醒
在左侧菜单,系统设置 --> 系统参数 菜单,添加以下2个系统参数设置(文本类型):
wx_template_alarm_code = “模板ID” wx_template_alarm_openid = “openid” wx_template_alarm_template= 模版消息的变量信息
前2个参数的值,分别对应上面步骤获取的2个对应值,模版消息的变量:
{ "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" } }
请根据你自己的实际情况修改
变量先写死,排除变量错误导致的发送异常
暂时先不用变量,变量的地方就用微信官方的例子写死做测试,如果写死变量可以收到,那么问题就是变量导致的,我们再进行下一步排查
如果变量写死了,还是收不到,那么,说明你配置的 json 数据有问题,请仔细排查
例:
这个模版,有3个变量,那么测试的时候,就把这3个变量,用左侧的示例内容写死,看看能否收到消息,如:
{ "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
收不到消息
常规检查
- 订单支付以后才会提醒,如果用户只是下单,没有支付,系统不做提醒;
- 检查对应的服务号的配置(accessToken 刷新时间),有可能你的服务号的 secret 中途有被重置过,导致没法及时刷新获得最新的 accessToken;
变量使用不当
可能是你的变量写错了,你可以先不用变量,先按照模版消息的例子上的文字写死做测试,如果写死可收到小程序,用变量不行,那就是变量的问题。如果是变量问题,那就一个一个变量替换,看看是哪个变量写错了,就比较容易排查。
时间日期必须指定格式
所有的日期类的变量,必须指定日期显示格式,例如当前时间:
${.now?string('yyyy-MM-dd HH:mm:ss')}
这里的 ?string('yyyy-MM-dd HH:mm:ss') 是不能省略的