Skip to content

微信风控接口返回的unoinId字段用int接收,数据过大导致解析失败 #2788

@imyzt

Description

@imyzt

简要描述

微信风控接口返回的unoinId字段用int接收,数据过大导致解析失败

模块版本情况

  • WxJava 模块名: weixin-java-miniapp
  • WxJava 版本号: 4.4.0

详细描述

微信返回的unoinId超过int的最大值,对象采用int接收导致报错。

日志

2022-08-23 14:12:14 1104053 [XNIO-1 task-163] ERROR c.i.c.e.a.GlobalExceptionHandler - java.lang.NumberFormatException: Expected an int but was 106148449575 at line 1 column 83 path $.unoin_id 
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 106148449575 at line 1 column 83 path $.unoin_id
        at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:228)
        at com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:218)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        at com.google.gson.Gson.fromJson(Gson.java:932)
        at com.google.gson.Gson.fromJson(Gson.java:897)
        at com.google.gson.Gson.fromJson(Gson.java:846)
        at com.google.gson.Gson.fromJson(Gson.java:817)
        at cn.binarywang.wx.miniapp.bean.safety.response.WxMaUserSafetyRiskRankResponse.fromJson(WxMaUserSafetyRiskRankResponse.java:39)
        at cn.binarywang.wx.miniapp.api.impl.WxMaSafetyRiskControlServiceImpl.getUserRiskRank(WxMaSafetyRiskControlServiceImpl.java:33)

cn.binarywang.wx.miniapp.bean.safety.response.WxMaUserSafetyRiskRankResponse对象

public class WxMaUserSafetyRiskRankResponse implements Serializable {

  private static final long serialVersionUID = -2434941857751339150L;

  /**
   * 唯一请求标识,标记单次请求
   */
  @SerializedName("unoin_id")
  private Integer unoinId;

  /**
   * 用户风险等级
   * 合法值 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/safety-control-capability/riskControl.getUserRiskRank.html
   */
  @SerializedName("risk_rank")
  private Integer riskRank;

  public static WxMaUserSafetyRiskRankResponse fromJson(String json) {
    return WxGsonBuilder.create().fromJson(json, WxMaUserSafetyRiskRankResponse.class);
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions