1、準備工做php
去微信開發者中心下載(掃碼支付,裏面的大部分代碼是能夠用的)java
https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1json
選擇UTF-8的版本copy到你的項目裏面windows
找到Configure.java的類修改爲public static String PAY_API = "https://api.mch.weixin.qq.com/pay/unifiedorder";api
下面正式進入代碼部分微信
1 //初始化配置信息 2 WXPay.initSDKConfiguration( 3 "MsfsfsafsfsfdsafsfC",//商品平臺上的密碼 4 "wxb21618828c323242",//appid 5 "1234235",//商戶ID 6 "", 7 "d:/apiclient_cert.p12",//證書,在商戶平臺上下載 8 //"/Users/Desktop/windowsserver/apiclient_cert.p12", 9 "3122421501"); 10 11 12 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); 13 Date date1 = new Date(); 14 long datetime = date1.getTime()+3600*1000; 15 String generateTime = dateFormat.format(date1);//yyyyMMddHHmmss 訂單生成時間 16 String failureTime = dateFormat.format(new Date(datetime));//yyyyMMddHHmmss 失效時間 17 ScanPayReqData reqData = new ScanPayReqData(shopOrder.getHdbt(), "旅遊商品", 18 shopOrder.getOrdercode(), priec, 19 "", "192.168.0.1", 20 generateTime, 21 failureTime, 22 "", 23 "http://dsds/notify/WxPayNotify.action",//收到通知地址 24 "APP"); 25 String resdata= WXPay.requestScanPayService(reqData); 26 //簽名驗證 27 Map<String,Object> map = XMLParser.getMapFromXML(resdata); 28 if(Signature.checkIsSignValidFromResponseString(resdata)){ 29 30 if("SUCCESS".equals(map.get("return_code"))&&"SUCCESS".equals(map.get("result_code"))){ 31 jsonmap.put("appid", Configure.getAppid()); 32 jsonmap.put("prepayid", map.get("prepay_id").toString()); 33 jsonmap.put("package", "Sign=WXPay"); 34 jsonmap.put("partnerid", Configure.getMchid()); 35 jsonmap.put("noncestr", RandomStringGenerator.getRandomStringByLength(32)); 36 jsonmap.put("timestamp", new Date().getTime()/1000+""); 37 jsonmap.put("sign", Signature.getSign(jsonmap)); 38 //將jsonmap返回給APP他們用這些參數就能夠完成調起微信支付進行支付了 39 40 } 41 42 }else{ 43 System.out.println("簽名驗證失敗"); 44 jsonmapT.put("result", "-1"); 45 jsonmapT.put("message", "簽名驗證失敗"); 46 }
若有不明白的地方請留言。一些請求參數和返回的參數,參考官網文檔微信開發