加双引号这个事,严格讲,不算是问题,app等前端都会处理。但是做公众号开发时,如果返回的字符串加了双引号,微信服务器就检验不过。导致无法配置服务器(这一步的操作会不成功https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5)
现象描述:
锁定问题用的test api:
@RestController
public class CustomController {
@RequestMapping("/test")
public String init() {
return "11148622114871172443";
}
}
如果使用下面的配置,则测试api的返回值是 "11148622114871172443" 【微信服务器会校验不过】
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter httpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.QuoteFieldNames,
SerializerFeature.WriteEnumUsingToString,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.DisableCircularReferenceDetect);
fastJsonConfig.setSerializeFilters((ValueFilter) (o, s, source) -> {
if (source == null) {
return "";
}
if (source instanceof Date) {
return ((Date) source).getTime();
}
return source;
});
httpMessageConverter.setFastJsonConfig(fastJsonConfig);
converters.add(httpMessageConverter);
}
如果不使用上面的配置,测试api的返回值是11148622114871172443,微信服务器核验通过
锁定问题的测试的代码已上传:https://github.com/helloworldtang/mp-demo