/** * 微信支付 回調函數 */ 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