diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkCallbackService.java b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkCallbackService.java index f7e9e9844..fa393b643 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkCallbackService.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkCallbackService.java @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; @@ -55,7 +56,8 @@ public class JieShunParkCallbackService extends BaseParkService implements ParkB @Override public List parseInNoticyParam(Object param) { Map paramm = (Map) param; - List list = (List) paramm.get("dataItems"); + String liststr = (String) paramm.get("dataItems"); + JSONArray list = JSONArray.parseArray(liststr); if (null != list && list.size() > 0 ) { List retList = new ArrayList(); for (int i = 0 ; i < list.size() ; i ++) { @@ -96,7 +98,8 @@ public class JieShunParkCallbackService extends BaseParkService implements ParkB @Override public List parseOutNoticyParam(Object param) { Map paramm = (Map) param; - List list = (List) paramm.get("dataItems"); + String liststr = (String) paramm.get("dataItems"); + JSONArray list = JSONArray.parseArray(liststr); if (null != list && list.size() > 0 ) { List retList = new ArrayList(); for (int i = 0 ; i < list.size() ; i ++) { @@ -153,7 +156,8 @@ public class JieShunParkCallbackService extends BaseParkService implements ParkB @Override public List parsePaidNoticyParam(Object param) { Map paramm = (Map) param; - List list = (List) paramm.get("dataItems"); + String liststr = (String) paramm.get("dataItems"); + JSONArray list = JSONArray.parseArray(liststr); if (null != list && list.size() > 0 ) { List retList = new ArrayList(); for (int i = 0 ; i < list.size() ; i ++) { @@ -178,7 +182,4 @@ public class JieShunParkCallbackService extends BaseParkService implements ParkB p.setPayTime((Date) vo.get("tradeTime")); return p; } - - - } diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java index 98845ca79..6600b8f92 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java @@ -151,14 +151,20 @@ public class JieShunParkService extends BaseParkService implements ParkAdapterSe String message = result.getString("message"); throw new MallinkException(result.getInteger("resultCode"), "jieshun createOrder error."+message); } - String parkOrderId = result.getString("orderNo"); + JSONArray arrays = result.getJSONArray("dataItems"); + if (null == arrays || arrays.size() == 0) { + throw new MallinkException(result.getInteger("resultCode"), "jieshun createOrder error. no order result"+carNumber); + } + + String parkOrderId = arrays.getJSONObject(0).getJSONObject("attributes").getString("orderNo"); + String ret = jieshun.getCarStopFee(park, parkOrderId, getCacheToken(park)); JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("resultCode") == 0){ String createTime = retObj.getString("createTime");//计费时间,格式为“yyyy-MM-dd HH:mi:ss” String endTime = retObj.getString("endTime");//离场时间,格式为“yyyy-MM-dd HH:mi:ss” String appId = "wx24b70f0ad2a9a89a"; - String payPath = "pages/thirdPayOrder/payOrder?carNo="+jieshun.handleCarNumber(carNumber)+"&parkCode="+park.getParkId(); + String payPath = "pages/thirdPayOrder/payOrder?carNo="+jieshun.handleCarNumber(carNumber)+"&parkCode="+park.getParkingId(); return new ResultData(new ParkStopFee(parkOrderId,jieshun.utcToLocal(createTime),jieshun.utcToLocal(endTime), String.valueOf(retObj.getDouble("totalFee")),appId,payPath,null)); }else { diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunUtil.java b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunUtil.java index 56ac8ade2..a1369af59 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunUtil.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunUtil.java @@ -93,7 +93,7 @@ public class JieShunUtil { public String getToken(WxPark wxPark) { String vendroParams = wxPark.getVendorParams(); JSONObject vp = JSON.parseObject(vendroParams); - String cid = wxPark.getParkingId(); + String cid = wxPark.getParkId(); String userName = vp.getString("usr"); String password = vp.getString("psw"); return getToken(cid,userName,password); @@ -126,11 +126,10 @@ public class JieShunUtil { if (carNumber.contains("-")) { return carNumber; }else { - carNumber = carNumber.substring(0,1)+carNumber.substring(1, carNumber.length()-1); + carNumber = carNumber.substring(0,1)+"-"+carNumber.substring(1, carNumber.length()); return carNumber; } } - /** * 创建订单 * @return @@ -140,12 +139,12 @@ public class JieShunUtil { JSONObject vp = JSON.parseObject(vendroParams); Map param = new HashMap(); param.put("businesserCode", vp.get("businesserCode"));//商户编号 - param.put("parkCode", wxPark.getParkId()); + param.put("parkCode", wxPark.getParkingId()); param.put("orderType", "VNP"); param.put("carNo", handleCarNumber(cardNumber)); Map map = generateMap("3c.pay.createorderbycarno",param); log.info("jieshun create order :" + JSON.toJSONString(map)); - return ProcBussiness(CREATE_ORDER, wxPark.getParkingId(), map, token,vp.getString("version"),vp.getString("signkey")); + return ProcBussiness(CREATE_ORDER, wxPark.getParkId(), map, token,vp.getString("version"),vp.getString("signkey")); } /** @@ -158,7 +157,7 @@ public class JieShunUtil { param.put("orderNo", orderNo);//商户编号 Map map = generateMap("3c.pay.queryorder",param); log.info("jieshun getCarStopFee :" + JSON.toJSONString(map)); - return ProcBussiness(QUERY_ORDER, wxPark.getParkingId(), map, token,vp.getString("version"),vp.getString("signkey")); + return ProcBussiness(QUERY_ORDER, wxPark.getParkId(), map, token,vp.getString("version"),vp.getString("signkey")); } @@ -176,7 +175,7 @@ public class JieShunUtil { param.put("tel", phone);//商户编号 Map map = generateMap("3c.coupons.receive.coupons",param); log.info("jieshun getCoupon :" + JSON.toJSONString(map)); - return ProcBussiness(GET_COUPON, wxPark.getParkingId(), map, token,vp.getString("version"),vp.getString("signkey")); + return ProcBussiness(GET_COUPON, wxPark.getParkId(), map, token,vp.getString("version"),vp.getString("signkey")); } @@ -191,10 +190,10 @@ public class JieShunUtil { param.put("businesserCode", vp.get("businesserCode"));//商户编号 param.put("couponsNo", couponNo);//优惠券编号 param.put("orderNo", orderNo);//商户编号 - param.put("parkCode", wxPark.getParkId()); + param.put("parkCode", wxPark.getParkingId()); Map map = generateMap("3c.coupons.use.coupons",param); log.info("jieshun useCoupon :" + JSON.toJSONString(map)); - return ProcBussiness(COUPON_USE, wxPark.getParkingId(), map, token,vp.getString("version"),vp.getString("signkey")); + return ProcBussiness(COUPON_USE, wxPark.getParkId(), map, token,vp.getString("version"),vp.getString("signkey")); }