• 首頁 > 上網技巧 > 電腦小技巧 > 微信小程序支付回調

    微信小程序支付回調

    時間:2019-08-24 15:10 作者:QQ地帶 我要評論

    //異步請求回應微信支付是否成功
    @Transactional
    public String weixinNotify(String resultStr) {
        log.info("=========weixinPaynotify   start====");
        String resXml = "";
        String return_code=null;
        String result_code=null;
        try {
            //字節流
            Map<String, String> resultMap = XMLUtil.doXMLParse(resultStr);
            log.info("resultMap:" + JSON.toJSONString(resultMap));
            String transaction_id = resultMap.get("transaction_id"); //微信交易流水號
            result_code = resultMap.get("result_code");
            String out_trade_no = resultMap.get("out_trade_no");
            return_code = resultMap.get("return_code");
            log.info("===========================微信異步回調 來了========================"+out_trade_no);
            // 簽名驗證(在網上復制而來,不知其用處故先注釋)
            //GenericValue userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "admin"), false);
     
            //支付成功  修改訂單狀態和子訂單狀態  添加充電結束時間
            if ("SUCCESS".equals(return_code)&&"SUCCESS".equals(result_code)) {
     
                log.info("小程序訂單列表支付回調接收到了out_trade_no=========="+out_trade_no);
     
                //獲取主訂單
     
                WxRechargeOrderExample wxRechargeOrderExample = new WxRechargeOrderExample();
                wxRechargeOrderExample.createCriteria().andOrderNumberEqualTo(out_trade_no);
                WxRechargeOrder wxRechargeOrder = wxRechargeOrderMapper.selectByExample(wxRechargeOrderExample).get(0);
                wxRechargeOrder.setStatus(1);
                wxRechargeOrder.setUpdateDate(new Date());
                int i = wxRechargeOrderMapper.updateByPrimaryKey(wxRechargeOrder);
                if( 1 == i){
                    //修改用戶賬戶
                    WxMember wxMember = wxMemberMapper.selectByPrimaryKey(wxRechargeOrder.getMemberId());
     
                    BigDecimal addFudou = wxRechargeOrder.getFudou();
                    wxMember.setFudou(wxMember.getFudou().add(addFudou));
                    wxMember.setAmount(wxMember.getAmount().add(wxRechargeOrder.getAmount()));
                    wxMember.setUpdateDate(new Date());
                    wxMemberMapper.updateByPrimaryKey(wxMember);
                    resXml = "<xml>" + "<return_code><![CDATA[SUCCESS]]></return_code>"
                            + "<return_msg><![CDATA[OK]]></return_msg>" + "</xml> ";
                }
     
            }else{
                resXml = "<xml>" + "<return_code><![CDATA[FAIL]]></return_code>"
                        + "<return_msg><![CDATA[報文為空]]></return_msg>" + "</xml> ";
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JDOMException e) {
            e.printStackTrace();
        } catch (Exception e){
            e.printStackTrace();
            throw new RuntimeException("微信異步回調失敗!");
        }
        return resXml;
        //return return_code;
    }
     
     
    備注:有的直接返回SUCCESS就可以,有的要返回xml,具體按項目

    標簽: 微信小程序
    頂一下
    (0)
    0%
    踩一下
    (0)
    0%

    Google提供的廣告

    pk10最牛稳赚计划软件
  • 3d彩票平台出租 六商会四肖中特 河北11选5前三直技巧 3d怎么算中奖公式 棒球帽图片价格 22选5走势图超长版 青海快3012路走势图 北京快三输了很多怎么办 打鱼一夜输了5万 平博沙巴体育app 怎么找到网购彩票的庄家 重庆组六时时彩开奖 福建11选5遗漏排行 福建体育彩票走势图 4场进球技巧