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 267 public void orderPayView() {
268 268 //订单id
269 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 272 render("pay.html");
289 273 }
290 274  
... ... @@ -469,8 +453,26 @@ public class WeixinPayController extends Controller {
469 453 BizResult<String> bizResult = new BizResult<>();
470 454 String orderId = getPara("orderId");
471 455 String openId = getPara("openId");
472   - String payOrderId = getPara("payOrderId");
  456 + String payOrderId = SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PAY_WXGZH.value());
473 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 476 //订单ID
475 477 if (StringKit.isEmpty(orderId)) {
476 478 bizResult.setCode(ErrorType.PARAMM_NULL.getCode());
... ... @@ -486,24 +488,7 @@ public class WeixinPayController extends Controller {
486 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 493 Order order = Order.dao.findFirst("select * from td_b_order t where t.order_id = ?", orderId);
509 494 if (null == order) {
... ... @@ -680,7 +665,7 @@ public class WeixinPayController extends Controller {
680 665 payOrderFlow.setPayOrderId(payOrderId);
681 666 payOrderFlow.setTradeNo(transId);
682 667 //传回的金额以 分 为单位,转换为double,然后转换为 BigDecimal类型
683   - payOrderFlow.setBuyerPayAmount(new BigDecimal(new Double(totalFee) / 100));
  668 + payOrderFlow.setBuyerPayAmount(new BigDecimal(new Double(totalFee)));
684 669 //付款时间
685 670 payOrderFlow.setGmtPayment(new Date());
686 671 //处理环节
... ...
src/main/java/com/rnt/service/IRainQueryService.java
... ... @@ -73,4 +73,25 @@ public class IRainQueryService {
73 73  
74 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 25 zf.druid.username=order
26 26 zf.druid.password=MySQL5.7;123
27 27  
  28 +
  29 +
28 30 zf.druid.initialSize=1
29 31 zf.druid.minIdle=1
30 32 zf.druid.maxActive=20
... ... @@ -40,7 +42,7 @@ zf.druid.testOnWhileIdle=true
40 42 #Redis config
41 43 redis.host=127.0.0.1
42 44 redis.port=6379
43   -#redis.password=redis_63790
  45 +redis.password=myredis
44 46  
45 47  
46 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 70 <div class="weui-cells weui-cells_form">
71 71 <input type="hidden" id="carNumPre" value="${carNum!''}"/>
72 72 <input type="hidden" id="parkOrderId"/>
73   - <input type="hidden" id="payOrderId">
74 73 <div class="weui-cell">
75 74 <div class="weui-cell__hd"><label for="" class="weui-label">当前车牌</label></div>
76 75 <div class="weui-cell__bd" id="carNumber">
... ... @@ -177,7 +176,6 @@
177 176 flg = false;
178 177 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled');
179 178 var parkOrderId = $('#parkOrderId').val();
180   - var payOrderId = $('#payOrderId').val();
181 179 if (parkOrderId.length < 1) {
182 180 $.toptip("订单Id为空", 2000, "error");
183 181 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
... ... @@ -185,8 +183,7 @@
185 183 return false;
186 184 }
187 185 var req = {
188   - orderId: parkOrderId,
189   - payOrderId:payOrderId
  186 + orderId: parkOrderId
190 187 }
191 188  
192 189 $.ajax({
... ... @@ -212,12 +209,12 @@
212 209 function jsApiCall(payParam) {
213 210 WeixinJSBridge.invoke(
214 211 'getBrandWCPayRequest',
215   - payParam,
  212 + JSON.parse(payParam),
216 213 function (res) {
217 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 219 } else {
223 220 //支付失败
... ...
src/main/webapp/WEB-INF/pages/pay.html
... ... @@ -51,7 +51,6 @@
51 51  
52 52 <body ontouchstart>
53 53 <input type="hidden" id="parkOrderId" value="${parkOrderId!''}"/>
54   -<input type="hidden" id="payOrderId" value="${payOrderId!''}"/>
55 54 <div class="weui-panel__bd card-top">
56 55 <input type="hidden" id="orderId" value=""/>
57 56 <div class="weui-media-box weui-media-box_text weui-media-box-border card-park">
... ... @@ -182,7 +181,6 @@
182 181 flg = false;
183 182 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled');
184 183 var parkOrderId = $('#parkOrderId').val();
185   - var payOrderId = $('#payOrderId').val();
186 184 if (parkOrderId.length < 1) {
187 185 $.toptip("亲!订单Id为空", 2000, "error");
188 186 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
... ... @@ -190,8 +188,7 @@
190 188 return false;
191 189 }
192 190 var req = {
193   - orderId: parkOrderId,
194   - payOrderId:payOrderId
  191 + orderId: parkOrderId
195 192 }
196 193  
197 194 $.ajax({
... ... @@ -226,13 +223,14 @@
226 223 if (res.err_msg == "get_brand_wcpay_request:ok") {
227 224 //$.alert("亲!支付成功!");
228 225 //支付成功
229   - windows.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney;
  226 + window.location.href = mUrl.paySuccessView + '&payMoney=' + totleMoney;
230 227  
231 228 } else {
232 229 $('#showTooltips').attr('class', 'weui-btn weui-btn_primary');
233 230 flg = true;
234 231 //支付失败
235   - $.alert('亲!支付失败了 '+JSON.stringify(res));
  232 + $.alert('亲!支付失败了!');
  233 + //$.alert('亲!支付失败了 '+JSON.stringify(res));
236 234 //windows.location.href='${host}/pay/payFail';
237 235  
238 236 }
... ...
src/main/webapp/WEB-INF/pages/paysuccess.html
... ... @@ -28,7 +28,7 @@
28 28 </div>
29 29 <div class="weui-msg__opr-area">
30 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 32 </p>
33 33 </div>
34 34  
... ... @@ -37,7 +37,20 @@
37 37  
38 38 <script src="//cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
39 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 55 </body>
43 56 </html>
... ...