欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringMvc微信支付回调示例代码

程序员文章站 2024-03-13 11:39:51
介绍 大家都知道微信支付的回调链接要求不能跟参数,但又要接收返回的xml数据。我开始使用@requestbody注解在参数上,希望能获取xml数据,测试失败。最后使用ht...

介绍

大家都知道微信支付的回调链接要求不能跟参数,但又要接收返回的xml数据。我开始使用@requestbody注解在参数上,希望能获取xml数据,测试失败。最后使用httpservletrequest去获取数据成功了。

示例代码

@requestmapping("/weixinpay/callback")
public string callback(httpservletrequest request){
 inputstream is = request.getinputstream();
 string xml = streamutil.inputstream2string(is, "utf-8")
 /**
 * 后面把xml转成map根据数据作逻辑处理
 */
}
/**
 * inputstream流转换成string字符串
 * @param instream inputstream流
 * @param encoding 编码格式
 * @return string字符串
 */
public static string inputstream2string(inputstream instream, string encoding){
 string result = null;
 try {
 if(instream != null){
  bytearrayoutputstream outstream = new bytearrayoutputstream();
  byte[] tempbytes = new byte[_buffer_size];
  int count = -1;
  while((count = instream.read(tempbytes, 0, _buffer_size)) != -1){
    outstream.write(tempbytes, 0, count);
  }
  tempbytes = null;
  outstream.flush();
  result = new string(outstream.tobytearray(), encoding);
 }
 } catch (exception e) {
 result = null;
 }
 return result;
}

总结

以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。