微信接收支付通知后,返回给微信的问题

银粟 发布于 2015/11/11 16:13
阅读 2K+
收藏 0

我使用微信支付成功后,接收到微信的通知,然后返回给微信,但是我返回success后微信还是不停的给我通知,这是为什么呀,下面是我的代码。

这是接收通知的方法,并返回消息给微信

@RequestMapping(value="/back_pay.do",method=RequestMethod.POST)
    public void payBack(HttpServletRequest request,HttpServletResponse response){
        log.info("支付回调");
        // xml请求解析
        Map<String, String> requestMap = null;
        try {
            requestMap = MessageUtil.parseXml(request);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        log.info("===========sign=====notify==========="+requestMap);
        if(requestMap==null){
            log.info("requestMap==null");
        }
        String stwxml = sendToWx();
        log.info("1c54u>>>xml_back>>"+stwxml);
        printHandle(response, new StringBuffer(stwxml));
        return;
    }

printHandle方法:

private void printHandle(HttpServletResponse response, StringBuffer sb) {
        PrintWriter out=null ;
        try {
            response.setContentType("text/xml");
            out= response.getWriter();
            out.println(sb.toString());
            out.flush();
            
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(out!=null){
                try{
                    out.close();    
                }catch (Exception e) {
                }
            }
        }
    }

sendToWx方法:

public String sendToWx(){
        String xml= "<xml>"
                + "<return_code><![CDATA[SUCCESS]]></return_code>"
                + "</xml>";
        return xml;
    }

我打印出来的返回值:

<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>

左看右看也没有找出错,请问这是怎么回事呀,谢谢!

加载中
0
BennyTian
BennyTian

我的是这个:

<xml><return_code>SUCCESS</return_code></xml>

没出现问题

你的方法有被回调么 ?

为毛要限制一个 post 呢?  我没加限制。当然,不一定是这个问题。


BTW: payBack 方法上面加一个这个注解试试:  @ResponseBody


银粟
银粟
我加上@ResponseBody后成功了,谢谢
0
hgnom
hgnom

少了return_msg? 另外要支持多次回调的

hgnom
hgnom
回复 @你好2015 : 多次重复调用,需要处理好业务逻辑,例如:买个物品,1次回调也是送一次,多次回调也是送一次不能送多次
银粟
银粟
文档中retrun_msg不是必需的呀,和这个没关系,另外您说的支持多次回调是什么意思呢
返回顶部
顶部