zoukankan      html  css  js  c++  java
  • JAVA微信支付多次回调方法解决方案

    @WebServlet("/ActionServlet")
    public class PayWxOrderingReqCBS extends HttpServlet {

        public PayWxOrderingReqCBS() {
            super();
        }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
             doPost(request, response);
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {
         
            String msg = "success";
            response.setContentType("text/xml");    
            System.out.print("微信支付回调数据开始");        
            String inputLine;
            String notityXml = "";
            String resXml = "";

            try {
                while ((inputLine = request.getReader().readLine()) != null) {
                    notityXml += inputLine;
                }
                request.getReader().close();
            } catch (Exception e) {
                e.printStackTrace();
            }

            System.out.println("接收到的报文:" + notityXml);     
            System.out.println("微信支付回调数据结束");
            System.out.println("告知服务端订单情况");
            String b = Xml2JsonUtil.xml2JSON(notityXml);
            System.out.println("=======================>"+b);
            try {
                JSONObject c = new JSONObject(b);
                String d = c.get("xml").toString();
                JSONObject e = new JSONObject(d);
                String f = e.get("return_code").toString();
                if (f.contains("SUCCESS")) {
                    /** 告知订单状态,修改订单状态 */
                   具体业务               
                    
                }
            } catch (JSONException e) {          
                e.printStackTrace();
            } catch (SwordBaseCheckedException e) {         
                e.printStackTrace();
            }
            resXml = "<xml>" + "<return_code><![CDATA[SUCCESS]]></return_code>"
                    + "<return_msg><![CDATA[OK]]></return_msg>" + "</xml> ";
            BufferedOutputStream out = new BufferedOutputStream(
                    response.getOutputStream());
            out.write(resXml.getBytes());
            out.flush();
            out.close();

            response.getWriter().println(msg);

        }

  • 相关阅读:
    网站SEO关键词优化技巧
    SEO操作流程及网站优化技巧
    Linux服务器工作常用命令总结
    【转载】Linux常用命令大全(非常全!!!)
    myBatis出现Mapped Statements collection already contains value for
    maven打成war包之后没有class文件
    查询每个类型最新的一条记录
    关于 MySQL 的 boolean 和 tinyint(1) (转)
    Mac下的eclipse按住ctrl点击无法查看类文件
    Mac 10.10下安装MySQL5.6.21提示安装失败
  • 原文地址:https://www.cnblogs.com/chinaDream2014/p/5916063.html
Copyright © 2011-2022 走看看