Commit 07a50221162e6382fc25157c778e850405054c85

Authored by atao
2 parents 693a38d0 e5b4babd

Merge remote-tracking branch 'origin/master'

src/main/java/com/rnt/controller/WeixinPayController.java
@@ -267,24 +267,8 @@ public class WeixinPayController extends Controller { @@ -267,24 +267,8 @@ public class WeixinPayController extends Controller {
267 public void orderPayView() { 267 public void orderPayView() {
268 //订单id 268 //订单id
269 String parkOrderId = this.getPara("parkOrderId"); 269 String parkOrderId = this.getPara("parkOrderId");
270 - PayOrder payOrder = new PayOrder();  
271 - String payOrderId = SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PAY_WXGZH.value());  
272 - payOrder.setPayOrderId(payOrderId);  
273 - payOrder.setPaySrcType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_SERVICE.getValue()));  
274 - payOrder.setRltOrderId(parkOrderId);  
275 - payOrder.setPayOrderTitle(PayOrderEnum.PAY_ORDER_TYPE_PAY.getValue());  
276 - payOrder.setPayType(Integer.valueOf(PayOrderEnum.PAY_TYPE_WXGZH.getValue()));  
277 - payOrder.setPayOrderState(Integer.valueOf(PayOrderEnum.PAY_ORDER_STATE_WAIT_PAY.getValue()));  
278 - payOrder.setPayorderStateTime(new Date());  
279 - payOrder.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());  
280 - payOrder.setCreateDate(new Date());  
281 - payOrder.setModfiyDate(new Date());  
282 - logger.info("支付单save请求数据为: payOrder=" + JSONObject.toJSONString(payOrder));  
283 - Boolean flag = payOrder.save();  
284 - logger.info("支付单save 响应为: flag=" + flag);  
285 -  
286 - this.getRequest().setAttribute("parkOrderId", parkOrderId);  
287 - setAttr("payOrderId", payOrderId); 270 +
  271 + setAttr("parkOrderId", parkOrderId);
288 render("pay.html"); 272 render("pay.html");
289 } 273 }
290 274
@@ -469,8 +453,26 @@ public class WeixinPayController extends Controller { @@ -469,8 +453,26 @@ public class WeixinPayController extends Controller {
469 BizResult<String> bizResult = new BizResult<>(); 453 BizResult<String> bizResult = new BizResult<>();
470 String orderId = getPara("orderId"); 454 String orderId = getPara("orderId");
471 String openId = getPara("openId"); 455 String openId = getPara("openId");
472 - String payOrderId = getPara("payOrderId"); 456 + String payOrderId = SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PAY_WXGZH.value());
473 logger.info("开始获取公众号支付JS支付参数: orderId=" + orderId + "; openId=" + openId + "; payOrderId=" + payOrderId); 457 logger.info("开始获取公众号支付JS支付参数: orderId=" + orderId + "; openId=" + openId + "; payOrderId=" + payOrderId);
  458 +
  459 + PayOrder payOrder = new PayOrder();
  460 +
  461 + payOrder.setPayOrderId(payOrderId);
  462 + payOrder.setPaySrcType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_SERVICE.getValue()));
  463 + payOrder.setRltOrderId(orderId);
  464 + payOrder.setPayOrderTitle(PayOrderEnum.PAY_ORDER_TYPE_PAY.getValue());
  465 + payOrder.setPayType(Integer.valueOf(PayOrderEnum.PAY_TYPE_WXGZH.getValue()));
  466 + payOrder.setPayOrderState(Integer.valueOf(PayOrderEnum.PAY_ORDER_STATE_WAIT_PAY.getValue()));
  467 + payOrder.setPayorderStateTime(new Date());
  468 + payOrder.setDataState(DataStatusEnum.DATA_STATUS_VALID.value());
  469 + payOrder.setCreateDate(new Date());
  470 + payOrder.setModfiyDate(new Date());
  471 + logger.info("支付单save请求数据为: payOrder=" + JSONObject.toJSONString(payOrder));
  472 + Boolean flag = payOrder.save();
  473 + logger.info("支付单save 响应为: flag=" + flag);
  474 +
  475 +
474 //订单ID 476 //订单ID
475 if (StringKit.isEmpty(orderId)) { 477 if (StringKit.isEmpty(orderId)) {
476 bizResult.setCode(ErrorType.PARAMM_NULL.getCode()); 478 bizResult.setCode(ErrorType.PARAMM_NULL.getCode());
@@ -486,24 +488,7 @@ public class WeixinPayController extends Controller { @@ -486,24 +488,7 @@ public class WeixinPayController extends Controller {
486 return; 488 return;
487 } 489 }
488 490
489 - PayOrder payOrder = PayOrder.dao.findFirst("select * from td_b_pay_order t where t.pay_order_id = ?",  
490 - payOrderId);  
491 -  
492 - if (null == payOrder) {  
493 - bizResult.setCode(ErrorType.PARAMM_NULL.getCode());  
494 - bizResult.setMsg("支付单不存在");  
495 - renderJson(bizResult);  
496 - return;  
497 - }  
498 -  
499 - // 判断支付单状态 支付单状态:0-待支付 1-成功 2-失败(作废)  
500 - if (null == payOrder.getPayOrderState() || 0 != payOrder.getPayOrderState()) {  
501 - logger.info("支付单状态不正确,支付单状态为: orderState=" + payOrder.getPayOrderState());  
502 - bizResult.setCode(ErrorType.PARAMM_NULL.getCode());  
503 - bizResult.setMsg("支付单状态不正确");  
504 - renderJson(bizResult);  
505 - return;  
506 - } 491 +
507 492
508 Order order = Order.dao.findFirst("select * from td_b_order t where t.order_id = ?", orderId); 493 Order order = Order.dao.findFirst("select * from td_b_order t where t.order_id = ?", orderId);
509 if (null == order) { 494 if (null == order) {
@@ -680,7 +665,7 @@ public class WeixinPayController extends Controller { @@ -680,7 +665,7 @@ public class WeixinPayController extends Controller {
680 payOrderFlow.setPayOrderId(payOrderId); 665 payOrderFlow.setPayOrderId(payOrderId);
681 payOrderFlow.setTradeNo(transId); 666 payOrderFlow.setTradeNo(transId);
682 //传回的金额以 分 为单位,转换为double,然后转换为 BigDecimal类型 667 //传回的金额以 分 为单位,转换为double,然后转换为 BigDecimal类型
683 - payOrderFlow.setBuyerPayAmount(new BigDecimal(new Double(totalFee) / 100)); 668 + payOrderFlow.setBuyerPayAmount(new BigDecimal(new Double(totalFee)));
684 //付款时间 669 //付款时间
685 payOrderFlow.setGmtPayment(new Date()); 670 payOrderFlow.setGmtPayment(new Date());
686 //处理环节 671 //处理环节
src/main/java/com/rnt/service/IRainQueryService.java
@@ -73,4 +73,25 @@ public class IRainQueryService { @@ -73,4 +73,25 @@ public class IRainQueryService {
73 73
74 return JSONObject.toJSON(rs)+""; 74 return JSONObject.toJSON(rs)+"";
75 } 75 }
  76 +
  77 + public static void main(String[] args) {
  78 + Prop prop = PropKit.use("a_little_config.txt");
  79 + String rs = "";
  80 + Long time = System.currentTimeMillis();
  81 + String md5 = MD5Utils.enMD5(prop.get("irain.appid")+prop.get("irain.appsecret")+time);
  82 + Map<String, Object> params = new HashMap<>();
  83 + params.put("appid", prop.get("irain.appid"));
  84 + params.put("sign", md5);
  85 + params.put("timestamp", time);
  86 + params.put("vpl_number", "苏B1B566");
  87 + params.put("park_code", "734861a1e8656ffa51bdd90829941ca9");
  88 +
  89 + try {
  90 + logger.info("irain 查询停车费用入参:" + JSONObject.toJSONString(params));
  91 + rs = HttpClientTutorial.httpPostRequest(prop.get("irain.url")+"/bill/Query", params);
  92 + logger.info("irain 查询停车费用返回:" + JSONObject.toJSONString(rs));
  93 + } catch (Exception e) {
  94 + logger.info("irain 查询停车费用出错:" + e);
  95 + }
  96 + }
76 } 97 }
src/main/resources/a_little_config.txt
@@ -25,6 +25,8 @@ zf.druid.url=jdbc:mysql://10.117.185.28:3306/zt_order?useUnicode=true&amp;characterE @@ -25,6 +25,8 @@ zf.druid.url=jdbc:mysql://10.117.185.28:3306/zt_order?useUnicode=true&amp;characterE
25 zf.druid.username=order 25 zf.druid.username=order
26 zf.druid.password=MySQL5.7;123 26 zf.druid.password=MySQL5.7;123
27 27
  28 +
  29 +
28 zf.druid.initialSize=1 30 zf.druid.initialSize=1
29 zf.druid.minIdle=1 31 zf.druid.minIdle=1
30 zf.druid.maxActive=20 32 zf.druid.maxActive=20
@@ -40,7 +42,7 @@ zf.druid.testOnWhileIdle=true @@ -40,7 +42,7 @@ zf.druid.testOnWhileIdle=true
40 #Redis config 42 #Redis config
41 redis.host=127.0.0.1 43 redis.host=127.0.0.1
42 redis.port=6379 44 redis.port=6379
43 -#redis.password=redis_63790 45 +redis.password=myredis
44 46
45 47
46 # 微信服务器回调所用的 token 48 # 微信服务器回调所用的 token
src/main/resources/a_little_config_pro.txt deleted
1 -  
2 -devMode = true  
3 -  
4 -######## park库  
5 -park.druid.url=jdbc:mysql://61.177.139.228:13906/zteits-park?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true  
6 -park.druid.username=zteits  
7 -park.druid.password=Zteits;123456  
8 -park.druid.initialSize=1  
9 -park.druid.minIdle=1  
10 -park.druid.maxActive=20  
11 -park.druid.filters=stat,wall  
12 -park.druid.maxWait=60000  
13 -park.druid.timeBetweenEvictionRunsMillis=3000  
14 -park.druid.minEvictableIdleTimeMillis=300000  
15 -park.druid.validationQuery=SELECT 'x'  
16 -park.druid.testOnBorrow=true  
17 -park.druid.testOnReturn=false  
18 -park.druid.testOnWhileIdle=true  
19 -  
20 -####### zf库  
21 -zf.druid.url=jdbc:mysql://61.177.139.228:13906/zteits-zf?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true  
22 -zf.druid.username=zteits  
23 -zf.druid.password=Zteits;123456  
24 -zf.druid.initialSize=1  
25 -zf.druid.minIdle=1  
26 -zf.druid.maxActive=20  
27 -zf.druid.filters=stat,wall  
28 -zf.druid.maxWait=60000  
29 -zf.druid.timeBetweenEvictionRunsMillis=3000  
30 -zf.druid.minEvictableIdleTimeMillis=300000  
31 -zf.druid.validationQuery=SELECT 'x'  
32 -zf.druid.testOnBorrow=true  
33 -zf.druid.testOnReturn=false  
34 -zf.druid.testOnWhileIdle=true  
35 -  
36 -#Redis config  
37 -redis.host=192.168.129.137  
38 -redis.port=6379  
39 -#redis.password=redis_63790  
40 -  
41 -  
42 -# 微信服务器回调所用的 token  
43 -token=mytoken  
44 -  
45 -# 测试用的账号  
46 -appId=wx077cae81383034aa  
47 -appSecret=d4624c36b6795d1d99dcf0547af5443d  
48 -  
49 -#是否对消息进行加密,是否对消息进行加密,对应于微信平台的消息加解密方式,false支持明文模式及兼容模式,true支持安全模式及兼容模式  
50 -#encryptMessage=true  
51 -#encodingAesKey=yourEncodingAesKey  
52 -  
53 -#路径配置  
54 -#app.host=http://wxgzh.rnting.com  
55 -#app.staticHost=http://wxgzh.rnting.com/static  
56 -  
57 -app.host=http://120.26.116.79  
58 -app.staticHost=http://120.26.116.79/static  
59 -  
60 -#weixin pay  
61 -#是否支持信用卡支付  
62 -pay.noCredit=true  
63 -  
64 -  
65 -#雪花算法 工作id,数据中心id  
66 -datacenterId=01  
67 -workerId=01  
68 -  
69 -#irain  
70 -irain.url=http://api.parkingwang.com:8280  
71 -#irain艾润  
72 -irain.appid=avakrky0gk1m7n00  
73 -#irain  
74 -irain.appsecret=rrr6uz3aqvutpsq2lsna0k18cea4mabw  
75 -#irain aes  
76 -irain.aes=avakrky0gk1m7n00  
77 -irain.park_code=734861a1e8656ffa51bdd90829941ca9  
78 -  
src/main/webapp/WEB-INF/pages/check.html
@@ -70,7 +70,6 @@ @@ -70,7 +70,6 @@
70 <div class="weui-cells weui-cells_form"> 70 <div class="weui-cells weui-cells_form">
71 <input type="hidden" id="carNumPre" value="${carNum!''}"/> 71 <input type="hidden" id="carNumPre" value="${carNum!''}"/>
72 <input type="hidden" id="parkOrderId"/> 72 <input type="hidden" id="parkOrderId"/>
73 - <input type="hidden" id="payOrderId">  
74 <div class="weui-cell"> 73 <div class="weui-cell">
75 <div class="weui-cell__hd"><label for="" class="weui-label">当前车牌</label></div> 74 <div class="weui-cell__hd"><label for="" class="weui-label">当前车牌</label></div>
76 <div class="weui-cell__bd" id="carNumber"> 75 <div class="weui-cell__bd" id="carNumber">
@@ -177,7 +176,6 @@ @@ -177,7 +176,6 @@
177 flg = false; 176 flg = false;
178 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); 177 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled');
179 var parkOrderId = $('#parkOrderId').val(); 178 var parkOrderId = $('#parkOrderId').val();
180 - var payOrderId = $('#payOrderId').val();  
181 if (parkOrderId.length < 1) { 179 if (parkOrderId.length < 1) {
182 $.toptip("订单Id为空", 2000, "error"); 180 $.toptip("订单Id为空", 2000, "error");
183 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary'); 181 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
@@ -185,8 +183,7 @@ @@ -185,8 +183,7 @@
185 return false; 183 return false;
186 } 184 }
187 var req = { 185 var req = {
188 - orderId: parkOrderId,  
189 - payOrderId:payOrderId 186 + orderId: parkOrderId
190 } 187 }
191 188
192 $.ajax({ 189 $.ajax({
@@ -212,12 +209,12 @@ @@ -212,12 +209,12 @@
212 function jsApiCall(payParam) { 209 function jsApiCall(payParam) {
213 WeixinJSBridge.invoke( 210 WeixinJSBridge.invoke(
214 'getBrandWCPayRequest', 211 'getBrandWCPayRequest',
215 - payParam, 212 + JSON.parse(payParam),
216 function (res) { 213 function (res) {
217 if (res.err_msg == "get_brand_wcpay_request:ok") { 214 if (res.err_msg == "get_brand_wcpay_request:ok") {
218 - $.alert("亲!支付成功!"); 215 + //$.alert("亲!支付成功!");
219 //支付成功 216 //支付成功
220 - windows.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney; 217 + window.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney;
221 218
222 } else { 219 } else {
223 //支付失败 220 //支付失败
src/main/webapp/WEB-INF/pages/pay.html
@@ -51,7 +51,6 @@ @@ -51,7 +51,6 @@
51 51
52 <body ontouchstart> 52 <body ontouchstart>
53 <input type="hidden" id="parkOrderId" value="${parkOrderId!''}"/> 53 <input type="hidden" id="parkOrderId" value="${parkOrderId!''}"/>
54 -<input type="hidden" id="payOrderId" value="${payOrderId!''}"/>  
55 <div class="weui-panel__bd card-top"> 54 <div class="weui-panel__bd card-top">
56 <input type="hidden" id="orderId" value=""/> 55 <input type="hidden" id="orderId" value=""/>
57 <div class="weui-media-box weui-media-box_text weui-media-box-border card-park"> 56 <div class="weui-media-box weui-media-box_text weui-media-box-border card-park">
@@ -182,7 +181,6 @@ @@ -182,7 +181,6 @@
182 flg = false; 181 flg = false;
183 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); 182 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled');
184 var parkOrderId = $('#parkOrderId').val(); 183 var parkOrderId = $('#parkOrderId').val();
185 - var payOrderId = $('#payOrderId').val();  
186 if (parkOrderId.length < 1) { 184 if (parkOrderId.length < 1) {
187 $.toptip("亲!订单Id为空", 2000, "error"); 185 $.toptip("亲!订单Id为空", 2000, "error");
188 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary'); 186 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
@@ -190,8 +188,7 @@ @@ -190,8 +188,7 @@
190 return false; 188 return false;
191 } 189 }
192 var req = { 190 var req = {
193 - orderId: parkOrderId,  
194 - payOrderId:payOrderId 191 + orderId: parkOrderId
195 } 192 }
196 193
197 $.ajax({ 194 $.ajax({
@@ -226,13 +223,14 @@ @@ -226,13 +223,14 @@
226 if (res.err_msg == "get_brand_wcpay_request:ok") { 223 if (res.err_msg == "get_brand_wcpay_request:ok") {
227 //$.alert("亲!支付成功!"); 224 //$.alert("亲!支付成功!");
228 //支付成功 225 //支付成功
229 - windows.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney; 226 + window.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney;
230 227
231 } else { 228 } else {
232 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary'); 229 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
233 flg = true; 230 flg = true;
234 //支付失败 231 //支付失败
235 - $.alert('亲!支付失败了 '+JSON.stringify(res)); 232 + $.alert('亲!支付失败了!');
  233 + //$.alert('亲!支付失败了 '+JSON.stringify(res));
236 //windows.location.href='${host}/pay/payFail'; 234 //windows.location.href='${host}/pay/payFail';
237 235
238 } 236 }
src/main/webapp/WEB-INF/pages/paysuccess.html
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 </div> 28 </div>
29 <div class="weui-msg__opr-area"> 29 <div class="weui-msg__opr-area">
30 <p class="weui-btn-area"> 30 <p class="weui-btn-area">
31 - <a href="javascript:;" class="weui-btn weui-btn_primary">支付完成</a> 31 + <a href="javascript:;" class="weui-btn weui-btn_primary" id="payfinish">支付完成</a>
32 </p> 32 </p>
33 </div> 33 </div>
34 34
@@ -37,7 +37,20 @@ @@ -37,7 +37,20 @@
37 37
38 <script src="//cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script> 38 <script src="//cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
39 <script src="//cdn.bootcss.com/jquery-weui/1.0.1/js/jquery-weui.min.js"></script> 39 <script src="//cdn.bootcss.com/jquery-weui/1.0.1/js/jquery-weui.min.js"></script>
40 - 40 +<script src="${staticHost}/js/jsutil.js"></script>
  41 +<script src="${staticHost}/js/url.js"></script>
  42 +<script type="text/javascript">
  43 + var func ={
  44 + payfinish:function(){
  45 + $(document).on('click','#payfinish',function(){
  46 + window.location.href = mUrl.toParkInfoListView;
  47 + });
  48 + }
  49 + };
  50 + $(function(){
  51 + func.payfinish();
  52 + });
  53 +</script>
41 54
42 </body> 55 </body>
43 </html> 56 </html>