请问你这里的sn是 自定义的吗?m.put("sn", "HSN96-30"); 是否涉及 微信所说的 sn预注册?
发送设备消息报错?String url1="https://api.weixin.qq.com/cgi-bin/message/device/subscribe/send?access_token="+access_token; Map<String,Object> m =new LinkedHashMap<>(); //oWIHOJ1zMGQqOwIbiHpd97APq6XwYTQXjptjJk1PokU m.put("template_id","oWIHOJ1zMGQqOwIbiHpd97APq6XwYTQXjptjJk1PokU"); m.put("sn", "HSN96-30"); m.put("page", page+"?id="+messageId); ArrayList<String> openids = new ArrayList<>(); openids.add(openid); m.put("to_openid_list", openids); m.put("modelId", "5QZnhhm33NF-MIIjgr4oWg"); m.put("lang", "zh_CN"); Map<String,Object> data =new LinkedHashMap<>(); data.put("character_string2",new TemplateData("HSN96-30")); data.put("time1",new TemplateData(DateStatisticsUtil.addYearsToDate(cellStorage.getStorageTime(),cellStorage.getStorageYears().intValue()))); data.put("enum_string4",new TemplateData("测试")); m.put("data",data); String str= BackEndHttpRequest.sendPost(url1, JsonUtils.ObjectToString(m)); System.out.println("请求内容:"+JsonUtils.ObjectToString(m)); Map maps = (Map) JSONObject.parseObject(str); System.out.println(maps); {"errcode":47003,"errmsg":"argument invalid! data.enum_string4.value is emp rid: 680b29d0-5009615b-4d24f410"}提示enum_string4有问题, enum_string character_string有什么特殊要求吗,有具体的说明文档吗,character_string我也是才知道不能有中文汉字
07-22那么这个sn预注册是什么意思呢?我们系统中本身有所有设备的SN,是否是将这些SN导入到微信小程序这个平台系统即可?按照你们的说法,是通过调用 https://api.weixin.qq.com/ilink/api/ilink_api_register_device?access_token=xxx 来进行预注册?没有web后台操作界面吗?我们的硬件设备,是批次生产,批次生成SN的,那么我们是否每次都要调用该接口来批次 像微信小程序进行sn注册?
如何获取设备票据?传入sn是否可以是userId等其他唯一id?我们想使用微信小程序推送服务消息给用户,长期的非一次性的,那么按照官方说明,非政务生活类的小程序 我们需要接入硬件设备,并且选择一个设备类别,得到modelId。在小程序页面上通过调用下面的接口,传入sn(官方说明是设备唯一id)来授权订阅消息。那么这个逻辑就是 用户需要进到具体的设备才能得到设备sn,来进行授权。我想问的是 用户能否在小程序全局 来授权,sn传入用户在 三方系统的唯一userId? 另外:我们会有多个templateId,是否也适用?比如三个消息订阅按钮,用户逐个授权订阅的时候 都是传入sn(userId) + templateIdx 感谢 POST https://api.weixin.qq.com/wxa/getsnticket?access_token=ACCESS_TOKEN
07-22