【最新】微信小程序发送订阅消息(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.页面制作
