微信APP支付服務端開發Java版(一)


一、准備工作

去微信開發者中心下載(掃碼支付,里面的大部分代碼是可以用的)

https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=11_1

選擇UTF-8的版本copy到你的項目里面

找到Configure.java的類修改成public static String PAY_API = "https://api.mch.weixin.qq.com/pay/unifiedorder";

下面正式進入代碼部分

 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                             }

如有不明白的地方請留言。一些請求參數和返回的參數,參考官網文檔

 

 


免責聲明!

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



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