记接第三方支付平台踩坑实录
(1)自己做服务方,三方平台回调的时候需要返回一个无引号的字符串。
解决方案:
需要在项目中加入String类型的解析器
@EnableWebMvc @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Bean public StringHttpMessageConverter stringHttpMessageConverter(){ StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8")); return converter; } @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(stringHttpMessageConverter()); } }
注:当前代码仅为部分代码,可在当前代码基础上添加更多类型的解析器
(2)maven基础工具包修改过之后,执行maven:package命令,打包后,其他模块调用不到修改过的内容。
解决方案:
使用maven:install命令,而不是使用maven:package命令。
(3)接收 application/x-www-form-urlencoded类的form请求,但拿不到form请求的参数。
解决方案:
看当前框架是否存在拦截器,看拦截器中实现了什么。
我遇到的问题是,框架实现了一个wrapper包装类将ServletRequest包装了一次,将请求中的数据流提前读取了一次,然后转成字符串塞进包装类中新设置了一个属性bodyStr中。
结果就是因为流已经提前被读取了。值无法获取到。