微信回調函數notify_url


    /**
     * 微信支付 回調函數
     */
    public void notifyUrl( ) throws Exception {
        HttpServletRequest request = getRequest( );
        //讀取參數
        BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream( )));
        String line;
        StringBuilder sb = new StringBuilder( );
        while ((line = br.readLine( )) != null) {
            sb.append(line);
        }
        if (StringUtils.isBlank(sb)) {
            return;
        }
        //支付結果通知的xml格式數據
        String notifyData = sb.toString( );
        MyWxPayConfig myWxPayConfig = new MyWxPayConfig( );
        WXPay wxpay = new WXPay(myWxPayConfig);

        Map< String, String > notifyMap = WXPayUtil.xmlToMap(notifyData);
        System.out.println(notifyMap);

        //驗證簽名是否正確
        if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
            //支付成功
            if ("SUCCESS".equals(notifyMap.get("result_code"))) {
                //商戶訂單號
                String out_trade_no = notifyMap.get("out_trade_no");
                //.... = notifyMap.get("out_trade_no");
                //你個人需要寫的業務
            } else {
                //log.info("微信支付回調函數:支付失敗");
            }
        } else {
            //log.info("微信支付回調函數:微信簽名錯誤");
        }
    }

    回調信息如下
transaction_id=42000005632020040754578182**, 
nonce_str=7MEeQWdrpnx7Hdy83mmPRLzJiECkWzGa, 
bank_type=OTHERS, 
openid=oarS8wMCd9Fmg0rpLj-nbaD0KM**, 
sign=29E5972C0AA6122D0FF04C528376D5**, 
fee_type=CNY, 
mch_id=15633498**, 
cash_fee=1, 
out_trade_no=12473630949624913**, 
appid=wx40775a9fd17bfb**, 
total_fee=1, 
trade_type=NATIVE, 
result_code=SUCCESS, 
time_end=20200407111844, 
is_subscribe=Y, 
return_code=SUCCESS
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM