asp.net微信开发(高级群发文本)
这篇文章将带你深入了解asp微信开发中高级群发文本的相关内容。如果你是微信开发的新手,或者对群发功能有所疑问,那么请继续阅读。
我们来一下群发文本信息的流程。对于像我这样的开发者来说,通常会在有UI界面的基础上开始编写代码。界面示意图如下:
通过界面,我们可以清楚地看到需要获取该微信号本月还能群发几条信息。那么,如何计算这个数量呢?每当群发一条信息成功,我们会在本地数据库存储一条信息来累计条数。当数量超过4条时,就无法继续发送了。这是因为服务号每月只能发送4条信息,多发的部分用户是接收不到的。如果你使用的是预览功能,可以发送最多100次。而在开发者模式下,可能会有更多群发的机会。之前我尝试群发两次后,在微信公众平台官网后台居然还能继续群发,这让我感到有些困惑。你可以选择将群发信息发送给全部用户或特定的分组用户。由于篇幅有限,这里就不再详细测试群发文字信息了。
接下来,我们重点介绍一下如何绑定本月剩余的群发条数。
绑定本月剩余群发条数
在asp中,我们可以通过以下代码实现这一功能:
```csharp
///
/// 绑定本月剩余群发条数
///
private void BindMassCount()
{
WxMassService wms = new WxMassService(); // 创建微信服务号服务类实例
List
// 对于官方微信服务号,每月只能群发4条信息(订阅号每天可群发1条)。超过此数量的信息将无法成功推送。这里我们将已发送的数量设定为4。
this.lbMassCounts.Text = (4 - int.Parse(wxmaslist.Count.ToString())).ToString(); // 显示剩余可发送的条数
if (wxmaslist.Count >= 4) // 如果已发送的信息达到或超过本月上限
{
this.LinkBtnSubSend.Enabled = false; // 禁用发送按钮
this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm('群发信息已达上限!请下月初再试!')"); // 添加提示信息,当用户点击发送按钮时显示
}
else // 如果还有剩余的可发送次数
{
this.LinkBtnSubSend.Enabled = true; // 启用发送按钮
this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm('您确定要群发此条信息吗?');"); // 添加确认提示,让用户确认是否要发送信息
}
}
```
绑定分组列表
在数字化世界中,信息的流通离不开分组列表的支撑。为了实现这一功能,我们首先要绑定微信服务器上的分组列表。这一操作包括从服务器获取AES令牌和分组内容,然后将其缓存起来以便后续使用。接下来,我们将返回的JSON数据,从中提取分组名称和数量,并填充到下拉列表中。这一切都是为了确保用户在选择群发对象时,能够清晰地看到所有的分组选项。
群发信息
在群发信息的过程中,我们首先需要根据用户的选择判断是否需要显示隐藏的分组列表。如果用户选择了特定的群发类型,那么分组列表就会显示出来。接下来,当用户点击发送按钮时,我们会根据用户选择的消息类型进行发送。如果用户选择的是文本消息,我们还会检查用户是否已经输入了要群发的文本内容。如果未输入或输入内容为空,我们会弹出提示框提醒用户输入文本内容。
代码细节:
在绑定分组列表的过程中,我们首先创建了一个微信服务器实例,然后从缓存中获取AES令牌。如果令牌不存在,我们将从服务器重新获取并缓存起来。接着,我们构造了一个请求URL,通过HTTP GET方法获取分组内容。这些内容被成JSON格式,然后添加到下拉列表中。在这个过程中,我们使用了Newtonsoft.json.dll来JSON数据。
在群发类型选择为“全部用户”时,我们需要根据用户的openID列表进行群发。请注意,这一功能在订阅号中不可用,但在服务号完成认证后可以使用。
创建一个StringBuilder对象sbs,用于拼接所有用户的openID列表。通过调用GetAllUserOpenIDList()函数获取所有用户的openID,并追加到sbs中。接下来,实例化一个WeiXinServer对象wxs,用于与微信服务器进行交互。
然后,我们需要从缓存中获取或重新获取AES密钥的token值(Aess_token)。如果该值不存在或为空,我们通过wxs.GetAessToken()函数重新获取。获取到的token值需要设置缓存,以便后续使用。这里我们将缓存的过期时间设置为7000秒(约两分钟)。接着从Aess_token中截取得到实际的token值(Aess_tokento)。
然后构造群发的POST数据请求的URL(posturl),该URL通过拼接固定的API地址和之前获取的token值生成。POST数据示例如下:包含用户openID列表(touser字段)、消息类型(msgtype字段)以及具体的文本内容(text字段)。这里需要注意的是,文本内容需要符合微信的相关规定和格式要求。最后通过HTTP POST请求发送数据到微信服务器,即可完成群发消息的操作。在此过程中,我们使用了Cambrian框架的render方法渲染了页面主体部分的内容。整个流程简洁明了,用户体验友好。请注意在实际使用时遵循微信的相关规定和要求,确保信息的合法性和有效性。
编程语言
- asp.net微信开发(高级群发文本)
- 调试PHP程序的多种方法介绍
- php判断是否为json格式的方法
- KnockoutJS 3.X API 第四章之数据控制流with绑定
- JavaScript提高网站性能优化的建议(二)
- .NET Framework 4.5新特性介绍
- Bootstrap布局之栅格系统详解
- MVC分页之MvcPager使用详解
- .NET Framework SQL Server 数据提供程序连接池
- Angularjs 根据一个select的值去设置另一个select的值
- .NET基础之自定义泛型分析
- 给XML文档添加新 ”records”
- js实现带缓冲效果的仿QQ面板折叠菜单代码
- Win2008 R2 mysql 5.5 zip格式mysql 安装与配置
- jQuery动态增减行的实例代码解析(推荐)
- php json_encode与json_decode详解及实例