微信开发 回复用户消息 .net C#
前段时间开发了公司的微信
这里做个知识总结分享下经验,望一起学习。。。。。
感觉后面写个系列的最好了 。。。。
企业需求:
给指定企业用户发送消息:如考勤信息、 企业通知、个人信息推送等等,
/// </summary>
/// <param name="UserID">要发送的人ID</param>
/// <param name="StrMessg">消息</param>
private void SendMessage(string UserID, string StrMessg)
{
Como.LogUtil.WriteLog("回复用户" + UserID + "消息");
string Access_Token = Como.GetAccessToken.GetAccess_token();
if (Access_Token == "")
Como.LogUtil.WriteException("SendMessage 未能成功加载Access_Token");
string Text = @"{
""touser"":";
Text += '"' + UserID + '"';
Text += "," + '"' + @"msgtype"": ""text"",
""agentid"": ""5"",
""text"": {
""content"":";
Text += '"' + StrMessg + '"';
Text += @"},
""safe"": ""0""
}";
;
string url = String.Format("https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}", Access_Token);
string strResult = Como.Tools.GetPage(url, Text); JArray ja = (JArray)JsonConvert.DeserializeObject("[" + strResult + "]");
string Error = "";
try
{
if (strResult.Contains("errcode"))
{
Error = ja[0]["errcode"].ToString();
}
}
catch (Exception ex)
{
Como.LogUtil.WriteException("获取strResult,未获取到错误信息" + ex.Message.ToString());
}
string errcode = ja[0]["errcode"].ToString();
string errmsg = ja[0]["errmsg"].ToString();
if (errcode == "0" && errmsg == "ok")
{
Como.LogUtil.WriteLog("回复成功!");
}
else
{
Como.LogUtil.WriteLog("回复失败!");
Como.LogUtil.WriteException("回复失败:SendMessage:" + strResult);
}
}
/// <summary>
/// 根据请求地址 和数据返回请求结果
/// </summary>
/// <param name="posturl"></param>
/// <param name="postData"></param>
/// <returns></returns>
public static string GetPage(string posturl, string postData)
{ Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(postData); // 准备请求... try
{ // 设置参数 request = WebRequest.Create(posturl) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码 string content = sr.ReadToEnd(); string err = string.Empty; return content; } catch (Exception ex)
{ string err = ex.Message;
Como.LogUtil.WriteException("Tools GetPage 异常为:"+err.ToString());
return string.Empty; } }
参数引用详解:
1.Como.GetAccessToken.GetAccess_token() //获取 Access_token
2.GetPage //返回页面请求信息 结果
以上为基础发送关键代码:
以下为:成功后的实例图:
:
有不懂的地方大家可以留言:
个人原创,请勿抄袭!
微信开发 回复用户消息 .net C#的更多相关文章
- 微信被动回复用户消息-文本消息-springmvc环境下自动生成xml
微信被动回复用户消息-文本消息-springmvc环境下自动生成xml springmvc - 大牛! private Object subscribeMessage(Scan scan) { Sca ...
- C#微信开发回复信息
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Web;usi ...
- PHP开发微信被动回复消息遇到的大坑
最近开始做CMS后台与微信公众号的整合,在做被动回复消息时,按照官方文档的XML格式回复消息,总是提示"该公众号提供的服务出现故障,请稍后再试".但是通过微信提供的接口调试工具看我 ...
- 微信开发之消息接收与回复--weixin-java-tools
一.前言 在上一篇文章<微信开发之如何使用开发工具--weixin-java-tools>中我给各位介绍了weixin-java-tools,并且介绍了如何使用weixin-java-to ...
- 微信公众平台回复过了怎么不能再次回复?亲们要注意查看"公众平台回复用户消息时限变更通知"的公告啊
有网友一直在问“微信公众平台回复过了怎么不能再次回复?”,其实这个是微信公众平台订阅号设置的一个时间限制,一般都会提示:由于该用户48小时未与你互动,你不能再主动发消息给他.直到用户下次主动发消息给你 ...
- 微信.NET 微信开发 自己主动内容回复 ASP.NET C#代码
微信开发中,首先遇到的问题就是处理怎样接收和响应用户消息 , 本文将向大家介绍一下方法和关键的代码. 本文使用的接口库是 :https://github.com/chendong152/Weixin ...
- C#微信开发之旅--基本信息的回复
上一篇说到配置和验证<C#微信开发之旅--准备阶段> 下面来实现一下简单的信息回复. 也就是接收XML,返回XML 可以去看下微信开发文档的说明:http://mp.weixin.qq.c ...
- 记微信开发(自定义回复&关注回复)
记微信开发(自定义回复&关注回复) 记微信开发(自定义回复&关注回复) code: <?php/** * wechat php test *///define your toke ...
- java微信开发API解析(二)-获取消息和回复消息
java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...
- Nodejs微信开发使用wechat-api回复多条消息
在上一往篇文章<Nodejs微信开发>中,微信后台能够正常的接收到客户端的消息,并能够简单的回复一条消息至客户端. 但我的目录是将微信与Bot Framework进行关联,那么肯定就有一些 ...
随机推荐
- fabric学习笔记4
fabric学习笔记4 20201303张奕博 2023.1.12 目前fabric存在的项目工程 Hyperledger Sawtooth 该项目由Intel 等企业发起和贡献的分布式账本平台,基于 ...
- Java本地缓存解决方案---使用Google的CacheBuilder
一.背景 当业务实现上需要用到本地缓存,来解决一些数据量相对较小但是频繁访问数据的场景,可以采用Google的CacheBuilder解决方案. 二.代码实现 1. 首先在maven中引入下面的包 & ...
- 普通的patch 和使用git 打patch
参考博客: https://www.cnblogs.com/laoxiaobaiup/p/9455088.html https://blog.csdn.net/u012701023/article/d ...
- 写入自定义 ASP.NET Core 中间件
中间件是一种装配到应用管道以处理请求和响应的软件. ASP.NET Core 提供了一组丰富的内置中间件组件,但在某些情况下,你可能需要写入自定义中间件. 备注:本主题介绍如何编写基于约定的中间件. ...
- JAVA第六七八次大作业
21201411-李英涵 前言:这几次的作业较为简单,主要思路就是利用正则表达式来过滤掉不需要的信息. 题量设置较为合理,比之前的多边形好做一些,应该是老师为了捞起来 ...
- pdfjs-dist 后端返回文件前端实现预览pdf
pdfjs-dist锁定版本号2.2.228,别的都不太好使,各种各样的报错 不锁定的时候升高版本出现pdf预览不了 引用的时候 import pdfjsLib from 'pdfjs-dist/bu ...
- vue-封装组件-结合vant实现点击按钮弹出泡泡(Popover)事件控制多个泡泡出现时,弹出对应的泡泡
<template> <div class="sale-share-box"> <span class="sale-share-btn&qu ...
- VUE keepAlive缓存问题之动态使用exclude(会使用到VUEX)
exclude是啥? 官方解释: 怎么用呢? 处理的问题是什么?(答:返回首页的时候清除B页面的缓存) 我遇到的问题是: 一开始状态:A(首页). B(列表).C(列表中的详情)三个页面,设置B页面的 ...
- Mysql 的用户权限等操作管理与设置(创建、授权、修改、查看)
注:请在 MySql 的客户端操作 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password';//例 CREATE USER 'use ...
- toLua文件夹结构
写在前面 本文是我对toLua(1.0.8.591版本)文件夹内容理解的记录. 文件夹结构 总览 下图是toLua的Unity工程视图: BaseType 基础类型的Wrap文件,有些是自动生成(即用 ...