C# 微信消息模板 发送
2024-10-13 03:17:34
项目要用到微信提醒 ,加上调转到小程序页面,或者 指定url
用到 RestSharp、Senparc.Weixin 类库
一开始直接照着微信示例直接post进去 发现一直提示 47001 ,估计是我姿势水平不太够,还是用个类库操作吧
using RestSharp;
using Senparc.Weixin.MP.AdvancedAPIs.TemplateMessage;
using System; namespace TemplateApp1
{
class Program
{
public static string OpenId = "";
public static string Template_id = "";
public static string AccessToken = GetACCESS_TOKEN();
static void Main(string[] args)
{
//网页跳转
SendTemplateMessageResult T = SendTemplateURL(AccessToken, OpenId, Template_id);
//小程序跳转
SendTemplateMessageResult T1 = SendTemplatMiniProgram(AccessToken, OpenId, Template_id);
Console.WriteLine(T+"\n"+T1);
Console.ReadKey();
}
/// <summary>
/// 网页跳转
/// </summary>
/// <param name="openId"></param>
/// <param name="template_id"></param>
/// <returns></returns>
public static SendTemplateMessageResult SendTemplateURL(string accessToken, string openId,string template_id)
{
var data = new
{
first = new TemplateDataItem("网页跳转"),
keyword1 = new TemplateDataItem("keyword1"),
keyword2 = new TemplateDataItem(DateTime.Now.ToString("yyyy年MM月dd日 HH:mm")),
remark = new TemplateDataItem("remark"),
};
string url = "https://baidu.com";
return Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, template_id, url, data,null);
}
/// <summary>
/// 小程序跳转
/// </summary>
/// <param name="openId"></param>
/// <param name="template_id"></param>
/// <returns></returns>
public static SendTemplateMessageResult SendTemplatMiniProgram(string accessToken,string openId, string template_id)
{
var data = new
{
first = new TemplateDataItem("小程序跳转"),
keyword1 = new TemplateDataItem("keyword1"),
keyword2 = new TemplateDataItem(DateTime.Now.ToString("yyyy年MM月dd日 HH:mm")),
remark = new TemplateDataItem("remark"),
};
// 小程序
TempleteModel_MiniProgram miniProgram = new TempleteModel_MiniProgram
{
appid = "",
pagepath = ""
};
string url = string.Empty;
return Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, template_id, url, data, miniProgram);
}
/// <summary>
/// 获取 AccessToken 需保存 有次数限制
/// </summary>
/// <returns></returns>
public static string GetACCESS_TOKEN()
{
string url = "";
var request = new RestRequest("", Method.GET);
RestClient restClient = new RestClient(url);
return restClient.Execute(request).Content;
}
}
}
最新文章
- Dagger2 (一) 入坑篇
- 上传文件swfUploadConfig.js
- 61. 从1到n,共有n个数字,每个数字只出现一次。从中随机拿走一个数字x,请给出最快的方法,找到这个数字。如果随机拿走k(k>;=2)个数字呢?[find k missing numbers from 1 to n]
- OAuth 2 的简单理解
- find命令基本使用一览
- JAVA HashMap详细介绍和示例
- Mysql 授权访问
- WPF控件---Border应用
- android Unable to resolve target &#39;android-XX&#39;错误和conversion to dalvik format failed with error 1错误
- 【MySQL案件】mysql登录-S失败
- dos攻击命令
- memcache 总结笔记
- 使用腾讯云服务器CentOS搭建JavaWeb环境
- js-对象的重要概念
- INotifyPropertyChanged
- 让bat以管理员权限运行
- Spring MVC之DispatcherServlet初始化详解
- 理解web service 和 SOA
- 【问题收录】Ubuntu14.04连接两个双显示器失败的解决方案
- maven报错集
热门文章
- 我大概知道他在说什么了,是对内存单元的竞争访问吧。Python有GIL,在执行伪码时是原子的。但是伪码之间不保证原子性。 UDP丢包,你是不是做了盲发?没有拥塞控制的情况下,确实会出现丢包严重的情况。你先看看发送速率,还有是否带有拥塞控制。
- RabbitMQ之Topic交换器模式开发
- shell编程系列14--文本处理三剑客之awk的概述及常用方法总结
- Dockerfile-server2
- 【编程基础】CppLint工具使用过程
- LintCode: coins in a line I
- Cas(07)——建立使用Cas进行单点登录的应用
- 基于vue-cli、elementUI的Vue简单入门例子
- Eclipse+TestNG搭建接口自动化测试框架
- [转帖]TPC-C解析系列05_TPC-C基准测试之存储优化