微信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         }

如有不明白的地方请留言。一些请求参数和返回的参数,参考官网文档

 

 

微信APP支付服务端开发Java版(一)

原文:http://www.cnblogs.com/di8hao/p/5336604.html

以上是微信APP支付服务端开发Java版(一)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>