记接第三方支付平台踩坑实录

(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中。

  结果就是因为流已经提前被读取了。值无法获取到。

  

 

posted @ 2021-11-19 14:59  白水0o  阅读(27)  评论(0编辑  收藏  举报