【最新】微信小程序发送订阅消息(c#版)
说明
小程序端
调用下接口,需要用户允许才能发送
wx.requestSubscribeMessage({ //模板ID tmplIds: [JTh0eBJScPIcEVjb9dhQDVN9xZXFvyZ3WXWgrljnUP8], success (res) { console.log(res); } })
服务器端
//发送订阅消息 public ResponseModel SendSubscribe(string openid, string repairid) { //demo格式 //"{ // "touser": "OPENID", // "template_id": "TEMPLATE_ID", // "page": "index", // "miniprogram_state":"developer", // "lang":"zh_CN", // "data": { // "number01": { // "value": "339208499" // }, // "date01": { // "value": "2015年01月05日" // }, // "site01": { // "value": "TIT创意园" // } , // "site02": { // "value": "广州市新港中路397号" // } // } //}" //组装json格式的请求参数 string content = "维修水龙头"; string finishtime = DateTime.Now.ToLocalTime().ToString(); string tips = "超过7日未验收,系统将自动验收"; var param = new { touser = openid, template_id = DormConfig.WARN_ACCEPT, data = new { //参数名要按照小程序后台模板中详细内容的参数写 character_string1 = new { value= repairid }, thing2 = new { value = content }, time3 = new { value = finishtime }, thing4 = new { value = tips } } }; string _params = JsonTools.Instance.ToJson(param); string token = Home_BLL.Instance.GetAccessToken(); string res=RequestWXAPI.Instance.SendSubscribe(token, _params); if (res != "OK") return new ResponseModel() { Code = 101, Msg = res }; return new ResponseModel() { Code = 200, Msg = "success" }; }
注意
先贴下遇到的返回信息的几种情况
-
{“errcode”:43101,“errmsg”:“user refuse to accept the msg hint: [e5WcGA07873114]”} 用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系,如果只订阅1次,第二次发送也会有这个错误 {“errcode”:47003,“errmsg”:“argument invalid! hint: [26.orA01123945] data.character_string1.value i”} 模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错 参数名按照小程序后台模板里的写 {“errcode”:0,“errmsg”:“ok”} 成功
第二种47003错误,是因为post的参数名和模板中的不同,这点网上有很多案例是写的thing01这种格式,注意这个参数名是不可以自己修改定义的,需严格按照模板中的来,在模板中以下位置 进入“详情”,按照详细内容中的名称填写
上一篇:
uniapp开发微信小程序-2.页面制作