【最新】微信小程序发送订阅消息(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" };
}

SendSubscribe方法就是调用微信接口:
https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
然后post参数,比较简单,这里就不贴了

在这里插入图片描述

注意

先贴下遇到的返回信息的几种情况

  • {“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这种格式,注意这个参数名是不可以自己修改定义的,需严格按照模板中的来,在模板中以下位置
在这里插入图片描述
进入“详情”,按照详细内容中的名称填写
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值