微信支付之-掃碼支付-模式2(模式1)
阿新 • • 發佈:2019-01-03
微信商戶申請開通:https://pay.weixin.qq.com/service_provider/index.shtml 注意:開通公眾賬號之後,然後根據流程開通相對應的商戶平臺 開發文件之場景介紹文件:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1
開發文件之模式1的流程圖:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
開發文件之模式2的流程圖:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5 開發之前所需要的引數:
6、notify_url 交易成功回撥的介面的URL
開發模式1的配置:
結論:模式1與模式2相比,模式1更為繁瑣和複雜,市場上用的基本都是模式2 模式2的程式碼: 1、組成下單API的資料,傳送給微信,獲取返回值
//微信掃碼模式2
public void wxPayModel2() {
String body = "測試商戶的名稱";
int money = 100;//交易金額,以分為單位100=1元。
String productId= WeiXinUtil.getTimeStamp();//獲取商品訂單號
String outTradeNo=WeiXinUtil.getOrderNo();//獲取該筆交易的訂單號
String ip=WeiXinUtil.getIp();//獲取發起請求的IP,我這裡就直接獲取了本機的IP了,實際開發需要獲取實際的請求IP
ScanPayReqData data = new ScanPayReqData(body,money,productId,outTradeNo,ip);//組成要傳送給微信的資料為一個實體類
String reuslt= HttpUtil.sendPost(Configure.orderApi,data);//將組裝好的資料傳送到微信,並獲取微信的返回值
//接下來的操作就是解析result。 將xml格式的result解析成json或者實體類。然後將資料儲存到資料庫...一下步驟省略...在改xml中有一個引數code_url,這個就是二維碼的連結,
//將該二維碼的連結生成圖形二維碼,給使用者掃碼。會進入到Configure.notifyUrl的回撥介面當中。現在假設回撥的為下面的方法notifyUrl();
}
接下來的操作就是解析result。 將xml格式的result解析成json或者實體類。然後將資料儲存到資料庫...一下步驟省略...在改xml中有一個引數code_url,這個就是二維碼的連結,將該二維碼的連結生成圖形二維碼,給使用者掃碼。會進入到Configure.notifyUrl的回撥介面當中。現在假設回撥的為下面的方法notifyUrl(); 2、notifyUrl()方法中需要操作的動作----注意:只有在微信支付成功,微信才會回撥該方法 參考:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_2
//微信支付成功之後的回撥,注意,只有在成功支付,微信才會進入回撥,注意
public void notiyUrl(HttpServletRequest req,HttpServletResponse response){
ServletInputStream input = req.getInputStream();//這裡得到輸入流,這就是微信在回撥該介面的時候,會把引數傳到這裡,下一步就是將流解析成xml。然後再將xml解析成我們需要的格式
//得到資料之後,通過outTradeNo來修改wxPayModel2()中已經插入資料庫中的資料
//然後傳送推送給APP。說交易成功。
}
github下載地址:https://github.com/townkoim/WXPay 說明:改程式碼僅供參考,不能執行。程式碼在WXPay/app/src/main/java/com//lb//pay/wxpay/目錄下