net core 微信公众号发送模板消息完整实现

第一完整看一下微信官方的文档

链接:开发前必读 / 首页 (qq.com)

想要发送模板消息分为一下几步

第一步:想要发消息需要有这几个参数,

        openid,这是给谁发消息

        access_token,调用接口必要的

        appid、secret 这两个是生成access_token 的

ok,只要有这几个参数就意味着你就可以发模板消息了,但前提是你在微信公众号平台已经配置好了具体可以参考这篇文章:手把手教你微信公众号如何给指定用户发送消息提醒_微信公众号推送消息-优快云博客

上面配置过程中需要注意的是,有一个txt文件

这个txt 文件要放到 服务器上,如果服务器找不到这个文件的话例如我这是一个API站,那就要在Program.cs 文件中配置一下

var app = builder.Build();


app.UseStaticFiles();

这样才能找到txt文件。

第一步代码如下

	public string SendRemindMsg(string open_id, string msg_title, string redirect_url)
	{
		try
		{

		
		string access_token = GetAccessToken();
		string msgid = "";
		bool IsSuccess = false;
		string poster = "{\"touser\": \"" + open_id + "\",\"template_id\":\"这里是你的模板id\", "
            + "\"url\":\"" + redirect_url + "\","
			+ "\"data\":{\"first\":{\"value\":\"" + msg_title + "\",\"color\":\"#ff0000\"},"
			+ "\"thing2\":{\"value\":\"测试\",\"color\":\"#ff0000\"},"
			+ "\"number3\":{\"value\":\"1\",\"color\":\"#ff0000\"},"
			+ "\"thing4\":{\"value\":\"测试\",\"color\":\"#ff0000\"},"
			+ "\"time5\":{\"value\":\"" + DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss") + "\",\"color\":\"#ff0000\"},"
			+ "\"remark\":{\"value\":\"点击这里查看详情。\",\"color\":\"#0000ff\"}"
			+ " } }";
		string resultStr = GetPage("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + access_token, poster);
		dynamic result = JsonConvert.DeserializeObject(resultStr);

			return resultStr;

		}
		catch (Exception e)
		{

			return e.Message;
		}
	}

这就是发送逻辑,需要注意的是poster 中的内容

data中的 thing2、number3、thing4、time5 这些参数是根据平台上配置的模板参数来的

例如 我申请的模板是这样的

详细内容中的参数名就是 上面代码中poster -data 中的参数名

SendRemindMsg() 方法中 用到的基础方法代码如下 GetAccessToken() :

public string GetAccessToken()
{
	var tokenRecord =  _goodtooth.WeChatToken.Fir
### 实现Java应用与微信公众号消息推送接口对接 为了实现Java应用程序与微信公众号之间的消息推送功能,开发者需遵循特定流程并利用Spring Boot框架简化开发过程。以下是具体方法: #### 准备工作 在开始编码之前,获取必要的认证信息至关重要。这包括从微信公众平台上申请到的AppID和AppSecret,这些凭证用于后续的身份验证以及API调用。 - 注册成为微信开放平台成员,并创建一个新的服务号或订阅号项目。 - 完成账号设置后,在管理后台找到“开发”选项卡下的基本信息页面来查看已分配给该公众账号的应用程序标识符(AppID)及其对应的密钥(AppSecret)[^1]。 #### 构建Spring Boot工程 建立基于Maven构建工具的新Spring Boot Web应用程序作为基础架构支持。确保pom.xml文件内包含了如下依赖项以便于处理HTTP请求及JSON数据交换: ```xml <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- JSON Processing Library --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <!-- Optional: For easier interaction with WeChat API --> <dependency> <groupId>me.chanjar</groupId> <artifactId>wx-java-mp-spring-boot-starter</artifactId> <version>${wx.java.mp.version}</version> </dependency> </dependencies> ``` #### 配置WeChat SDK 引入第三方库`wx-java-mp-spring-boot-starter`可以极大地方便操作微信服务器端口。按照官方文档指导完成SDK初始化配置,主要包括设定appId, appSecret以及其他可能需要的安全令牌(token),加密模式(aesKey)等参数[^2]。 #### 编写业务逻辑代码 定义控制器类接收来自用户的输入并通过RESTful风格的服务向指定用户发送自定义模板消息。下面是一个简单的例子展示了如何构造这样的REST Controller: ```java @RestController @RequestMapping("/wechat") public class WechatMessageController { @Autowired private WxMpService wxMpService; /** * 发送模板消息. */ @PostMapping("/sendTemplateMsg") public ResponseEntity<String> sendTemplateMsg(@RequestBody Map<String, String> requestMap){ try { // 创建模板消息对象 WxMpTemplateMessage templateMessage = new WxMpTemplateMessage(); // 设置模板id和其他必要字段... templateMessage.setTemplateId(requestMap.get("template_id")); templateMessage.setToUser(requestMap.get("openid")); // 用户OpenID List<WxMpTemplateData> data = Arrays.asList( new WxMpTemplateData("first", "您好"), new WxMpTemplateData("keyword1", "订单状态更新"), ... ); templateMessage.setData(data); boolean result = this.wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); if (result) { return ResponseEntity.ok("成功"); } else { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("失败"); } } catch(Exception e){ log.error(e.getMessage(),e); throw new RuntimeException(e); } } } ``` 通过上述步骤,已经能够实现在Java环境中集成微信公众号消息推送能力。值得注意的是实际应用场景下还需要考虑更多细节问题比如错误重试机制、日志记录等功能增强系统的稳定性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值