3.公众号 - 2.ILazyMessager

ILazyMessager

  • 公众号模板消息 : 可在微信公众号平台登录之后在路径 功能->模板消息 中找到

    image-20200806100648409

模板消息

SendTemplateMessageAsync

有如下两个重载方法

重载方法一 : 点击Link后跳转到另外一个URL

重载方法二 : 点击跳转至小程序

Task<dynamic> SendTemplateMessageAsync(string touser, string template_id, string url, params (string, string, string)[] data);

Task<dynamic> SendTemplateMessageAsync(string touser, string template_id, string appid, string pagepath, params (string, string, string)[] data);
  • 参数
    • touser : 需要发送消息的用户的openid
    • template_id : 模板消息ID
    • url : 点击Link后跳转的URL
    • appid : 点击跳转的小程序appid;
    • pagepath : 跳转的小程序的页面路径 (备注 : pagepath这个参数的名字是错误的如果开发者自行开发模板消息的时候需要注意, 在Json序列化的时候一定要改pagepath为page , 此处应为微信开发者文档撰写者致敬, 不知道坑苦了多少微信开发者)
    • data : 为一个包含了三个string的元组,Item1为模板中的keyword, Item2为keyword对应的value, Item3为value对应的color(若使用默认可传递"")
  • 返回值 dynamic
{
    "errcode":0,
    "errmsg":"ok",
    "msgid":200228332
}

示例代码

using LazyWeChat.Abstract.OfficialAccount;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

namespace WebTest.OfficialAccount.Controllers
{
    public class TestController : Controller
    {
        private readonly ILazyMessager _lazyMessager;
        public TestController(ILazyMessager lazyMessager)
        {
        	_lazyMessager = lazyMessager;
        }

        public IActionResult SendTemplateMessage()
        {
            //需要发送消息的用户的openid
            var openid = "oNDiC0d-xxxxxxxx-mXFSXuhmtQ";

            //模板消息ID
            var template_id = "rBmkY7QbkF4vxklxxxxxxxxxxxxxxxxlG2J9BpuJ838";

            //模板消息底部link对应的URL
            var url = "https://test.lazywechat.cn";

            //模板消息内容
            var content = new List<(string, string, string)>();
            content.Add(("first", "亲,宝贝已经启程了,好想快点来到你身边", "#173177"));
            content.Add(("delivername", "顺丰快递", "#173177"));
            content.Add(("ordername", "3291987391", "#173177"));
            content.Add(("remark", "如果疑问,请在微信服务号中输入“KF”,**将在第一时间为您服务", "#173177"));

            _lazyMessager.SendTemplateMessageAsync(
                openid,
                template_id,
                url,
                content.ToArray());
            
            Thread.Sleep(1000);

            //小程序appid
            var appid = "wx260a67855553e9c2";
            
            //小程序页面路径
            var pagepath = "pages/index";
            _lazyMessager.SendTemplateMessageAsync(
                openid,
                template_id,
                appid,
                pagepath,
                content.ToArray());
            
            return View();
        }
    }
}

image-20200806103300530

GetIndustryAsync

  • 作用 : 获取设置的行业信息

  • 官方文档如下

https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#1

  • 返回值 : dynamic
{
    "primary_industry":{"first_class":"运输与仓储","second_class":"快递"},
    "secondary_industry":{"first_class":"IT科技","second_class":"互联网|电子商务"}
}

SetIndustryAsync

  • 作用 : 设置的行业信息

  • 官方文档如下 (在发送模板消息之前需要事先设置行业,可使用如下方法设置行业)

https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#0

  • 参数
    • industry1 : 公众号模板消息所属行业编号1
    • industry2 : 公众号模板消息所属行业编号2
  • 返回值 : dynamic
{
    "industry_id1":"1",
    "industry_id2":"4"
}
  • 示例代码
using LazyWeChat.Abstract.OfficialAccount;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace WebTest.OfficialAccount.Controllers
{
    public class TestController : Controller
    {
        private readonly ILazyMessager _lazyMessager;
        public TestController(ILazyMessager lazyMessager)
        {
        	_lazyMessager = lazyMessager;
        }

        public async Task<IActionResult> Industry()
        {
            //获取当前公众号所属行业
            var industry = await _lazyMessager.GetIndustryAsync();

            //设置公众号所属行业
            var industry1 = "1";
            var industry2 = "2";
            await _lazyMessager.SetIndustryAsync(industry1, industry2);

            return View();
        }
    }
}

GetTemplateListAsync

{	
     "template_list": [{
      "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
      "title": "领取奖金提醒",
      "primary_industry": "IT科技",
      "deputy_industry": "互联网|电子商务",
      "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:    { {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
      "example": "您已提交领奖申请\n\n领奖金额:xxxx元\n领奖时间:2013-10-10 12:22:22\n银行信息:xx银行(尾号xxxx)\n到账时间:预计xxxxxxx\n\n预计将于xxxx到达您的银行卡"
   }]
}

GetTemplateIDAsync

{
    "errcode":0,
    "errmsg":"ok",
    "template_id":"Doclyl5uP7Aciu-qZ7mJNPtWkbkYnWBWVja26EGbNyk"
  }
  • 示例代码
using LazyWeChat.Abstract.OfficialAccount;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace WebTest.OfficialAccount.Controllers
{
    public class TestController : Controller
    {
        private readonly ILazyMessager _lazyMessager;
        public TestController(ILazyMessager lazyMessager)
        {
        	_lazyMessager = lazyMessager;
        }

        public async Task<IActionResult> Template()
        {
            //获取当前公众号已经添加的模板消息列表
            var templates = await _lazyMessager.GetTemplateListAsync();

            //通过模板消息shortName获取模板消息ID
            var template_short_name = "TM00303";
            var template = await _lazyMessager.GetTemplateIDAsync(template_short_name);

            return View();
        }
    }
}

DeleteTemplateAsync

{
   "errcode" : 0,
   "errmsg" : "ok"
}
  • 示例代码
var template_id = "rBmkY7QbkF4vxklL6HBuO80WvUH69eDlG2J9BpuJ838";
_lazyMessager.DeleteTemplateAsync(template_id);

客服消息

SendKFMessage

  • 作用 : 向用户发送客户消息

  • 公众号客服消息类型, 消息参数与说明请参考官方文档 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Service_Center_messages.html#6

    • 文本消息 : WeChatKFTextMessage
    • 图片消息 : WeChatKFImageMessage
    • 语音消息 : WeChatKFVoiceMessage
    • 视频消息 : WeChatKFVideoMessage
    • 音乐消息 : WeChatKFMusicMessage
    • 外部图文消息 : WeChatKFExternalNewsMessage
    • 图文消息 : WeChatKFNewsMessage
    • 菜单消息 : WeChatKFMenuMessage
    • 卡券消息 : WeChatKFCardMessage
    • 小程序消息 : WeChatKFMiniMessage
  • 返回值

{
   "errcode" : 0,
   "errmsg" : "ok"
}
  • 示例代码
var text = new WeChatKFTextMessage();
text.touser = openid;
text.text.content = "hello world";
var resKF = await _lazyMessager.SendKFMessage(text);

AddKFAccountAsync

image-20200817110115549

  • 参数
    • kf_account : 客服email, 例如test1@test
    • nickname : 昵称
    • password : 密码
  • 返回值 dynamic
{
     "errcode" : 0,
     "errmsg" : "ok"
}
  • 示例代码
var kf_account = "test1@test";
var nick = "客服小D";
var password = "Passw0rd!";
var res = _lazyMessager.AddKFAccountAsync(kf_account, nick, password).Result;

EditKFAccountAsync

{
     "errcode" : 0,
     "errmsg" : "ok"
}
  • 示例代码
var kf_account = "test1@test";
var nick = "客服小B";
var password = "Passw0rd123";
var res = _lazyMessager.EditKFAccountAsync(kf_account, nick, password).Result;

DeleteKFAccountAsync

{
     "errcode" : 0,
     "errmsg" : "ok"
}
  • 示例代码
var kf_account = "test1@test";
var res = _lazyMessager.DeleteKFAccountAsync(kf_account, nick, password).Result;

GetKFAccountsAsync

{
    "kf_list": [
        {
            "kf_account": "test1@test", 
            "kf_nick": "ntest1", 
            "kf_id": "1001",
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw/0"
        }, 
        {
            "kf_account": "test2@test", 
            "kf_nick": "ntest2", 
            "kf_id": "1002",
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw /0"
        }, 
        {
            "kf_account": "test3@test", 
            "kf_nick": "ntest3", 
            "kf_id": "1003",
            "kf_headimgurl": " http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw /0"
        }
    ]
}
  • 示例代码
var res = await _lazyMessager.GetKFAccountsAsync();

UploadKFAvatarAsync

{
     "errcode" : 0,
     "errmsg" : "ok"
}
  • 示例代码
var root = Directory.GetCurrentDirectory();
var fullFilePath = root + @"\Materials\avatar.jpg";
res = await _lazyMessager.UploadKFAvatarAsync(kf_account, fullFilePath);
posted @ 2020-08-26 19:20  LazyWeChat  阅读(156)  评论(0)    收藏  举报