微信小程序发送订阅消息(subscribeMessage.send)47003的解决方案argument invalid! data.thingxxx.value is empty
实现方式:
SpringBoot + JAVA
核对以下项:
其他参数没有什么好说的,都是字面值,就说data属性吧。
因为发送订阅消息是有类型的,格外注意,出现47003的问题,一版是传给微信服务器的参数有问题,我这边的问题是 data在前端传的是string导致的。
js的Object也就是对象,传到后台需要使用 Map | Object 类型进行接收。
这是对应后台的接口的API签名,注意这个@RequestBody注解,将前端传的参数作为主体接收,并封装为对象,这个DTO是对请求参数的封装,不用在意。
swagger作为接口文档定义,所以,当定义了@RequestBody注解,swagger就会更改为这种请求参数的方式。
简单的说就是我们需要传递json数据,而不能传formData类型的数据,这样会导致data的数据为字符串信息。
归根结底,就是请求参数的 `data` 是一个Object类型,Java服务器端接收需要使用Map或Object类型进行填充其中的data属性。
就算接口使用Object类型在接收data属性时,也会封装为Map的值。
最终data的封装结构为:
结束。。。。。。
复制请注明出处,在世界中挣扎的灰太狼