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);

        }

  • 相关阅读:
    每日一题_190921
    每日一题_190920
    每日一题_190919
    2017年江苏高考数学14题
    2017年全国高中数学联赛及2017年贵州省预赛试题
    高中数学与初中数学的接轨点
    从此错位(相减)无计算
    在 LaTeX 中同步缩放 TikZ 与其中的 node
    析构函数 一定是虚函数
    Java对多线程的支持
  • 原文地址:https://www.cnblogs.com/chinaDream2014/p/5916063.html
Copyright © 2011-2022 走看看