.NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解
.NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解
微信小程序消息订阅与推送消息流程:

开发步骤:
步骤一:
获取模板 ID,在微信公众平台手动配置获取模板 ID:登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
步骤二:
微信小程序通过手机号登录,判断当前手机号是否存在OpenId,若为空,调用微信服务器第一次注册并返回OpenID,在商户服务器保存手机号对应的OpenID。如下图:

步骤三:
订阅消息,小程序端若要接受信息,必须先订阅,而且每次只能订阅一次消息,然而系统需要频繁推送消息的,为了解决这个问题,必须在微信小程序某个节点触发下一次订阅,形成一个无限订阅消息的循环,比如打开某个界面,触发某个事件开始订阅。
微信服务器会判断只有订阅消息的客户端才能定向推送消息。
C# Code:
//消息模板内容
ModelWXSubscribeMessageTemplate data = new ModelWXSubscribeMessageTemplate
{
thing1 = new ModelWXSubscribeMessageParam { value = "【" + goods.CityFromName + "】-->【" + goods.CityToName + "】" },
thing2 = new ModelWXSubscribeMessageParam { value = goods.GoodsName + " " + goods.WV + " " + goods.Unit }
};
//调用微信后台,订阅消息接口的请求参数
ModelWXSubscribeMessage subscribe = new ModelWXSubscribeMessage
{
access_token = re.access_token,
data = data,
page = pageParam,
template_id = "nYSABmQjT2Dr1UyLXq5pUYSfPLob4Ejtig7ZtkxOkoo",
touser = goods.WXOpenId//openid
};
string dataMsg = JsonConvertEx.ToJson(subscribe);//转成JSON
//提交微信后台,URL
string posturl = $"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={re.access_token}";
string result = WebApiTools.Post(posturl, dataMsg);
//转换对象
ModelWXPostResult postResult = JsonConvertEx.ToObject<ModelWXPostResult>(result);
if (postResult.errcode != 0) LogManager.Log.Write("PushWxMessage", "发布货源推送微信订阅消息失败!", goods.GoodsID);
//来源:C/S框架网(www.csframework.com) QQ:23404761
//消息模板内容
ModelWXSubscribeMessageTemplate data = new ModelWXSubscribeMessageTemplate
{
thing1 = new ModelWXSubscribeMessageParam { value = "【" + goods.CityFromName + "】-->【" + goods.CityToName + "】" },
thing2 = new ModelWXSubscribeMessageParam { value = goods.GoodsName + " " + goods.WV + " " + goods.Unit }
};
//调用微信后台,订阅消息接口的请求参数
ModelWXSubscribeMessage subscribe = new ModelWXSubscribeMessage
{
access_token = re.access_token,
data = data,
page = pageParam,
template_id = "nYSABmQjT2Dr1UyLXq5pUYSfPLob4Ejtig7ZtkxOkoo",
touser = goods.WXOpenId//openid
};
string dataMsg = JsonConvertEx.ToJson(subscribe);//转成JSON
//提交微信后台,URL
string posturl = $"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={re.access_token}";
string result = WebApiTools.Post(posturl, dataMsg);
//转换对象
ModelWXPostResult postResult = JsonConvertEx.ToObject<ModelWXPostResult>(result);
if (postResult.errcode != 0) LogManager.Log.Write("PushWxMessage", "发布货源推送微信订阅消息失败!", goods.GoodsID);
//来源:C/S框架网(www.csframework.com) QQ:23404761
若OpenID没有订阅消息,会报43101错误。

步骤四:
商户WebApi服务器推送消息,可以推送指定消息模板以及指定用户的消息(定点推送)
微信小程序接受到消息:

本文参考文章:
WebApi后端框架开发微信小程序订阅消息接口
http://www.csframework.com/archive/1/arc-1-20191228-2681.htm
适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql)
http://www.csframework.com/archive/1/arc-1-20191228-2681.htm
.NET WebApi开发框架|MVC框架|后端框架|服务端框架-标准版V1.0
适用开发:快速构建支持多种客户端的服务端程序,支持APP、B/S、C/S跨平台移动终端等。
运行平台:Windows + .NET Framework 4.5
开发工具:Visual Studio 2015+,C#语言
数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql):


参考文档:
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
.Net开发服务器服务端应用程序 - WebApi后端开发框架
CSFramework.WebApi快速开发框架|APP后端开发框架 v2.0|C/S开发框架
Demo开发环境配置 | CSFramework.WebApi后端开发框架|C/S开发框架
Demo调用WebApi接口 | CSFramework.WebApi后端开发框架|C/S开发框架
CSFramework.WebApi后端开发框架服务器宿主承载方式|C/S开发框架
微信小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台
WebApi快速开发框架,C# ASP.NET后端开发平台
Web后端开发框架,WebApi后端主流开发框架介绍
C#.NET 后端WebApi接口搭建教程,WebApi接口开发实例
.NET WebApi开发框架精简高效架构及用户体验
.Net后端框架|WebApi服务端开发框架|C/S框架网原创作品
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token详解|C/S开发框架
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
.Net开发服务器服务端应用程序 - WebApi后端开发框架
CSFramework.WebApi快速开发框架|APP后端开发框架 v2.0|C/S开发框架
Demo开发环境配置 | CSFramework.WebApi后端开发框架|C/S开发框架
Demo调用WebApi接口 | CSFramework.WebApi后端开发框架|C/S开发框架
CSFramework.WebApi后端开发框架服务器宿主承载方式|C/S开发框架
微信小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台
WebApi快速开发框架,C# ASP.NET后端开发平台
Web后端开发框架,WebApi后端主流开发框架介绍
C#.NET 后端WebApi接口搭建教程,WebApi接口开发实例
.NET WebApi开发框架精简高效架构及用户体验
.Net后端框架|WebApi服务端开发框架|C/S框架网原创作品
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token详解|C/S开发框架
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服

