• 微信小程序发送订阅消息(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的封装结构为:

    结束。。。。。。

    文档:subscribeMessage.send.html

  • 相关阅读:
    PHP实现微信退款的分析与源码实现
    thinkphp对180万数据批量更新支持事务回滚
    在线工具
    php连接redis
    Redis PHP连接操作
    阿里大于短信接口整合TP5
    Unity3d中如何查找一个脚本被挂在那些预设上面?
    泰课在线夜猫的贪食蛇
    EasyTouch5ForSiki学院
    unity游戏热更新
  • 原文地址:https://www.cnblogs.com/XingXiaoMeng/p/16525756.html
Copyright © 2020-2023  润新知