【小程序】微信小程序开发,给用户发送一次性订阅消息,常见参数长度和数据类型说明,你值得收藏

发布于:2025-07-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

🌹欢迎来到《小5讲堂》🌹
🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹
🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹

在这里插入图片描述

前言

这次的发送小程序订阅消息的API接口,知道一些参数会有长度限制,但是具体是多长,有时候时间久了,容易忘记,或者平台可能已经修改了规则。
所以本次就简单记录下官方对于发送订阅消息的一些参数信息。

服务通知

发送一次性订阅服务,接收效果如下:
在这里插入图片描述

接口调用

API接口

在调用发送订阅消息接口前,需要调用接口获取AccessToken接口。

post请求
https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN

请求参数

关键是data参数

属性 类型 必填 说明
access_token string 接口调用凭证,该参数为 URL 参数,非 Body 参数。使用 getAccessTokenauthorizer_access_token
template_id string 所需下发的订阅模板 ID。
page string 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数(如 index?foo=bar)。无跳转时可不填。
touser string 接收者(用户)的 openid。
data object 模板内容,格式如:"phrase3": { "value": "审核通过" }"name1": { "value": "订阅" } 等。
miniprogram_state string 跳转小程序类型:developer(开发版)、trial(体验版)、formal(正式版)。默认为 formal
lang string 进入小程序查看的语言类型,支持 zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文)。默认为 zh_CN

Data参数说明

订阅消息参数值内容限制说明

参数类别 参数说明 参数值限制 说明
thing.DATA 事物 20个以内字符 可汉字、数字、字母或符号组合。
number.DATA 数字 32位以内数字 只能数字,可带小数。
letter.DATA 字母 32位以内字母 只能字母。
symbol.DATA 符号 5位以内符号 只能符号。
character_string.DATA 字符串 32位以内数字、字母或符号 可数字、字母或符号组合。
time.DATA 时间 24小时制格式(支持+年月日),支持短时间段 例如:15:01,或:2019年10月1日 15:01,用“-”连接两个时间点。
date.DATA 日期 年月日格式(支持+24小时时间),支持短时间段 例如:2019年10月1日,或:2019年10月1日 15:01,用“-”连接两个时间点。
amount.DATA 金额 1个币种符号+10位以内纯数字,可带小数 结尾可带“元”,例如:¥100.50元
phone_number.DATA 电话 17位以内,数字、符号 例如:+86-0766-66888866
car_number.DATA 车牌 8位以内,首位和末位可为汉字,其余为字母或数字 例如:粤A82888挂
name.DATA 姓名 10个以内纯汉字或20个以内纯字母或符号 中文名限10字内;英文名限20字母内;混合按中文名计算(10字内)。
phrase.DATA 汉字 5个以内汉字 例如:配送中
enum.DATA 枚举值 只能上传枚举值范围内的字段值 需调用接口获取具体枚举值参考。

C#调用例子

博主这里选择的是下面模板,两个参数都是属于thing,所以都只能输入20个以内字符,程序上需要做一个长度逻辑判断,否则提交超过20个字符会发送失败。
在这里插入图片描述

public static string message_subscribe_send = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={0}";      // 订阅信息发送

public static async Task<string> MsgSubSend(string access_token)
{
	 var requestBody= new
	 {
	     thing1 = new
	     {
	         value = $"xxx"
	     },
	     thing2 = new
	     {
	         value = $"xxx"
	     },
	 };
	 
    string url = string.Format(message_subscribe_send, access_token);

    var client = new RestClient(url);
    var request = new RestRequest();
    request.Method = Method.Post;
    request.AddHeader("Content-Type", "application/json");

    // 请求体内容 - 例如下面
    /*var requestBody = new
    {
        touser = 小程序用户openid,	// 接收消息的用户ID
        page = "pages/index/index",	// 点击查看详情时跳转到的小程序页
        template_id,				// 模板ID
        data						// 具体请求数据
    };*/

    // 将请求体序列化为JSON字符串
    string jsonRequestBody = System.Text.Json.JsonSerializer.Serialize(requestBody);

    request.AddParameter("application/json", jsonRequestBody, ParameterType.RequestBody);

    request.AddJsonBody(requestBody);
    var response = await client.ExecuteAsync(request);

    // {"errcode":43101,"errmsg":"user refuse to accept the msg rid: 687c5367-120bba99-2648e680"}
    // {"errcode":47003,"errmsg":"argument invalid! data.thing1.value invalid rid: 687c53ec-71c2491d-739b7172"}
    // {"errcode":0,"errmsg":"ok","msgid":4083364991775162371}

    return response?.Content ?? string.Empty;
}

微信认证

这里博主顺便给大家分享一个现在小程序认证的信息,可能会有一些小伙伴好久没有接触小程序了,希望能给大家一个参考。

对于个人和个体户都统一改为了30元每年的认证费用,注意不管是个人还是个体户,每年都需要认证,也就是年审。

那么小伙伴就会问了,个人的可以不认证吗?答案是可以的,不过会有一个前提条件,就是会被限制,比如不可以在微信里搜索到等。

如果是第二次认证,那么没有其他明细资料不对情况下,一般1个小时内就搞定。
博主是周日早上10点左右完成认证提交重新提交(主要还是主体人扫码就搞定),提交后,立马就会有人打电话过来核对,之前1小时左右就完成了认证。
在这里插入图片描述

推荐文章

【小程序】微信小程序开发,给用户发送一次性订阅消息,常见参数长度和数据类型说明,你值得收藏

【小程序】微信小程序开发,分享给朋友或者朋友圈的功能增加地址参数,以及如何进行带参数本地测试

【小程序】.net core2.1对接微信支付开发时自己挖的坑

【前端】微信小程序,同名图片缓存问题,增加图片后缀动态参数值解决

【小程序】常用方法、知识点汇总1

【腾讯云】AI驱动TDSQL-C Serveress 数据库技术实战营-如何是从0到1体验电商可视化分析小助手得统计功能,一句话就能输出目标统计图

【随笔】博客质量分计算,如何让自己的博客脱颖而出,也许文章能够给你答案

【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则

【千帆AppBuilder】零代码+组件+代码节点方式实现AI应用《法定退休年龄计算器》

【1024程序员节】分享下博主的AI应用之旅,有哪些好玩有趣的智能体呢,不妨一起探索下


网站公告

今日签到

点亮在社区的每一天
去签到