生活随笔
收集整理的這篇文章主要介紹了
java做微信支付notify_url异步通知服务端的写法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近團隊在接入微信支付,APP和JSAPI的接口都需要填寫一個notify_url回調地址,但是坑爹的官方文檔并沒有找到JSAPI模式的java版的demo,所以不得不自己看文檔寫了一個接受微信異步通知的頁面,并做相應的業務處理。直接上代碼:
<%@page import="com.shop.thread.WXPayFinishThread"%><%@page import="com.shop.util.XmlUtil"%><%@page import="net.sf.json.JSONObject"%><%@page import="java.io.*"%><%/* * 功能:微信支付服務器異步通知頁面 作者:李小拐 日期:2016年6月22日20:20:44 說明: 以下代碼只是自己的樣例代碼,非官方,你可以根據自己網站的需要,按照技術文檔編寫,并非一定要使用該代碼。 該代碼僅供學習和研究微信接口使用,只是提供一個參考。 * */%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.*"%><% //http://101.201.38.47/egx/wxpay_notify_url.jsp System.out.println("----進入到了該頁面---"); BufferedReader reader = request.getReader(); String line = ""; StringBuffer inputString = new StringBuffer(); try{ while ((line = reader.readLine()) != null) { inputString.append(line); } request.getReader().close(); System.out.println("----接收到的報文---"+inputString.toString()); JSONObject json=XmlUtil.XmlToJson(inputString.toString()); //String appid=json.get("appid")+""; //String mch_id=json.get("mch_id")+""; if(json.getString("return_code").equals("SUCCESS")){ if(json.getString("result_code").equals("SUCCESS")){ String transaction_id=json.get("transaction_id")+"";//微信支付訂單號 String out_trade_no=json.get("out_trade_no")+"";//商戶訂單號 String openid=json.get("openid")+""; String trade_type=json.get("trade_type")+""; //接下來是做自己的業務處理 //開一個線程,更新訂單狀態 WXPayFinishThread wxp=new WXPayFinishThread(openid,transaction_id,out_trade_no,trade_type); wxp.start(); } } //告訴微信服務器,我收到信息了,不要在調用回調action了 response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]>
</return_code></xml>"); System.out.println("----結束---"+inputString.toString()); }catch(Exception e){ e.printStackTrace(); } %>
以上代碼只處理了SUCCESS的情況,FAIL的情況請自行處理。。。
轉載于:https://www.cnblogs.com/jpfss/p/9844321.html
總結
以上是生活随笔為你收集整理的java做微信支付notify_url异步通知服务端的写法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。