Commit 07a50221162e6382fc25157c778e850405054c85
Merge remote-tracking branch 'origin/master'
Showing
7 changed files
with
70 additions
and
132 deletions
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&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> | ... | ... |