微信开发第六篇服务器主动发送信息

上几篇文章基本是介绍有手机客户端触发的事件在先,这种有手机微信客户端触发的请求,咱们的服务器被动响应,这种模式我个人理解为被动发送信息。

但是除此之外我们有时间要让用户推送消息,比如向家长每天发送孩子的作业信息。这就要用到模板消息了

对于模板消息首先要添加

进入模板选择行业之后就要等两天才能用模板消息

能用模板消息之后 根据自己的情况,查看模板选择适用于自己的模板 如果没有可以自己定义 只要微信官方审核通过就可以用(我申请的好像说是7-15天,完成审计,但是好像30分钟就给我发通知说申请成功)

后两个都是我自己申请的模板。

给一个我调用模板的方法

[WebMethod(Description = "测试优学酷能力报告")]

public string TestEveryOneWeek(string featherOpenid)

{

string url = "http://......";

string first = "亲爱的家长,您孩子能力报告出炉通知\n";

var keyword1 = string.Format("英语");

var keyword2 = "单词、语法很棒哦!听力、口语还不错!差一点就当学霸了,继续加油!\n";

var remark = "点击“详情”查看";

//得到所需要的模板数据

var data = MessageTemplate.NoticeYouxuekuEvery(first, keyword1, keyword2, remark);

//模板标号

string templateid = "XakPchhUx1InpJX0pxDqmDKKQz6-ocrPTn682sV5VSw";

featherOpenid = "............";  //我个人微信的openid

bool sendsucess = SendTemplateMessageService.SendTemplateMessage(templateid, featherOpenid, url, data);

if (sendsucess)

{

return "成功";

}

else

{

return "失败";

}

}

要给所谓的消息,制成固定格式如下 格式并添加颜色

public static object NoticeYouxuekuEvery(string first, string keyword1, string keyword2,string remark)

{

var data = new

{

first = new TemplateDataItem(first, "#000000"),

keyword1 = new TemplateDataItem(keyword1, "#000000"),

keyword2 = new TemplateDataItem(keyword2, "#000000"),

remark = new TemplateDataItem(remark, "#000000")

};

return data;

}

里面的first,keyword1,keyword2,remark都是模板里面的参数。

调用发送消息方法如下

public static bool SendTemplateMessage(string templateId, string openId, string url, object data)

{

WeiXinService weixin = new WeiXinService();

var accessToken = weixin.GetAccessToken();

var getInfoUrl = string.Format(GetBaseUserInfoApi, accessToken, openId);

WeiXinUserInfo userInfo = HttpClientHelper.GetResponse<WeiXinUserInfo>(getInfoUrl);

string resultes=null;

//判断用户是否关注公众号

switch (userInfo.Subscribe)

{

case 0:

break;

default:

var sendUrl = string.Format(SendMessageApi, accessToken);

var msg = new TemplateMessage

{

template_id = templateId,

touser = openId,

url = url,

data = data

};

//序列化实体为json

string json = JsonConvert.SerializeObject(msg, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });

//调用消息发送接口

var result = HttpClientHelper.PostResponse<TemplateMessageResult>(string.Format(sendUrl, accessToken), json);

resultes = result.errmsg;

break;

}

if (resultes=="ok")

{

return true;

}

else

{

return false;

}

}

如果知道了用户的openid,这样就可以使用模板消息,主动向手机客户端发送消息了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 16:56:50

微信开发第六篇服务器主动发送信息的相关文章

微信开发 api 需要 https 服务器

微信开发 api 需要 https 服务器 先建一个环境,本地的 https 服务器. 以下这篇不错,很完整. https://zhuanlan.zhihu.com/p/23640321 原文地址:https://www.cnblogs.com/F4NNIU/p/9018040.html

微信开发之入门篇(一)

刚开始进行微信的开发测试,从最基础的入手: 控件.接口等的使用参考https://mp.weixin.qq.com/debug/wxadoc/dev/index.html?t=2017117 今天测试wx.request接口的时候出现域名网址不合法的情况,捣鼓了好久,网上说需要在小程序的公众平台账号上配置域名才能正常访问: 但今天测试出来了另外一种方法(适用于测试): 将微信开发工具左上角的设置-->设置代理栏选为不使用任何代理,直接连接服务器 然后勾选项目中的开发环境不校验请求域名与TLS版本

微信开发第四篇----已关注用户管理

公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成.一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求. 接口调用请求说明 http请求方式: GET(请使用https协议) https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID 参数 是否必须

微信开发第五篇手机端微信公众号自定义菜单及OAuth2.0授权页面

说到自定义菜单,首先要想到调用微信的接口,其实微信公众号开发本身就是看对不对微信公众号接口的熟悉程度,我也是在项目中才开始接触微信公众号开发的,很感谢公司能给我这个项目机会.其实对于一个程序员来说最宝贵的是他的学习能力,而不是经验,不扯没用的了. 菜单上一篇讲到了怎么查看微信开发文档,那么很容易找到自定义菜单管理,根据里面的内容可以做一下思路 手机微信客户端与微信服务器交互,再由微信服务器与咱们自己的服务器交互,在第一次交互时先删除原始的那种可以打字的那种菜单,之后设置自己新的菜单,最后把自己的

【微信开发】1、服务器响应,与微信服务器握手

官方说明 按照微信公众平台,第一步微信服务器会按照公众号的设置验证我们自己的服务器,服务器需要做正确响应. 官方文档说明如下: 开发者通过检验signature对请求进行校验(下面有校验方式).若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败.加密/校验流程如下: 1)将token.timestamp.nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与signatu

Swift开发第六篇——操作运算符也可以重载&amp; func 的参数修饰

本篇分为两部分: 1.Swift 中重载操作运算符的使用 2.Swfit 中 func 的参数修饰 1.Swift 中重载操作运算符的使用 与别的语言不同,Swift 支持运算符的重载,运算符指的是“+,-,%,*”等操作运算符,从而使一些操作更加简便. 在开发中,我们对于一些基本运算通常是这样写的: struct Vector2D { var x = 0.0 var y = 0.0 } let v1 = Vector2D(x: 2, y: 3) let v2 = Vector2D(x: 1,

php微信开发-tp5下验证服务器的代码

废话少说,直接上干货! 1 <?php 2 namespace app\index\controller; 3 4 use think\Controller; 5 6 7 8 Class Index extends Controller 9 { 10 public function index()//接收微信客户端发送的信息并回应! 11 { 12 13 //获得参数 signature nonce token timestamp echostr 14 $nonce = $_GET['nonce

微信开发-点击链接自己主动加入关注

这个功能和微信提供的接口无关.仅仅牵扯到微信的图文消息的还有一种应用. 1.登录进入须要被关注的微信公众号,进入管理->素材管理.新增一条单图文消息,标题为点击下方链接关注XXX.图片能够是一张白色的图片,正文能够是此微信公众号的一些简单介绍. 2.保存后回到图文消息列表.打开刚才保存的图文消息,复制打开窗体的URL地址,这个地址就是在微信上点击以后跳转到图文消息,在图文消息第二行有一行蓝色字,点击就会弹出关注提示

软件工程迭代开发第六篇

今天更新了整个玩耍界面,学会了如何通过二维纹理载入图片. 最终界面如下: 下面的十个框框,左边五个是技能栏,右边五个是道具.这俩要等到整合之后才能体现. 实现方法: 将一张由我们美工画好的界面图加载到程序中并用OpenGL画出. 通过OpenGL的二维纹理加载画出. 在init中加载图片: //加载用户界面 p1.load_UI(ATLLoadTexture("res/hp.png")); 这个load_UI()函数是这样的: void Player::load_UI(int i) {