|
|
|
@@ -36,6 +36,7 @@ import com.iformall.service.park.entity.ParkNotifyPaid; |
|
|
|
import com.iformall.service.pay.PayServiceFactory; |
|
|
|
import com.iformall.service.pay.service.pay.entity.PayAdapterResult; |
|
|
|
import com.iformall.service.pay.service.pay.wx.v2.miniApp.appPay.WxMiniAppPayAdapterService; |
|
|
|
import com.iformall.utils.Base64Util; |
|
|
|
import com.iformall.utils.CipherUtil; |
|
|
|
import com.iformall.utils.DateUtils; |
|
|
|
import com.iformall.utils.RedisLock; |
|
|
|
@@ -147,7 +148,7 @@ public class WxParkPayServiceImpl implements WxParkPayService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String handlePaidCallBack(Map<String, String> paramMap) { |
|
|
|
public String handlePaidCallBack(String tenantId,Map<String, String> paramMap) { |
|
|
|
//支付返回消息 |
|
|
|
String returnCode = paramMap.get("return_code"); |
|
|
|
if ("SUCCESS".equals(returnCode)) { |
|
|
|
@@ -161,28 +162,20 @@ public class WxParkPayServiceImpl implements WxParkPayService { |
|
|
|
String payOrderNo = paramMap.get("out_trade_no"); |
|
|
|
String time_end = paramMap.get("time_end"); |
|
|
|
String transcationId = paramMap.get("transaction_id"); |
|
|
|
|
|
|
|
String attach = paramMap.get("attach"); |
|
|
|
JSONObject attachObj = JSON.parseObject(attach); |
|
|
|
String tenantId = attachObj.getString("t"); |
|
|
|
String parentTenantId = attachObj.getString("pt"); |
|
|
|
TenantEntity te = new TenantEntity(); |
|
|
|
te.setTenantId(tenantId); |
|
|
|
te.setParentTenantId(parentTenantId); |
|
|
|
|
|
|
|
WxPark park = getCurrentPark(te); |
|
|
|
|
|
|
|
Integer carVendor = attachObj.getInteger("v"); |
|
|
|
TenantEntity teq = new TenantEntity(); |
|
|
|
teq.setTenantId(tenantId); |
|
|
|
WxPark wxPark = getCurrentPark(teq); |
|
|
|
Integer carVendor = wxPark.getVendorType(); |
|
|
|
Long cUserId = attachObj.getLong("u"); |
|
|
|
String carNumber = attachObj.getString("car"); |
|
|
|
String merchantAccount = attachObj.getString("ma"); |
|
|
|
Long merchantId = attachObj.getLong("mid"); |
|
|
|
String merchantName = attachObj.getString("mn"); |
|
|
|
String userPhone = attachObj.getString("uh"); |
|
|
|
|
|
|
|
handlePaidSuccess(te,park,cUserId,carVendor,carNumber,payOrderNo,Integer.parseInt(cashFeeStr), |
|
|
|
handlePaidSuccess(wxPark,cUserId,carVendor,carNumber,payOrderNo,Integer.parseInt(cashFeeStr), |
|
|
|
DateUtils.string2Date(time_end, DateUtils.DATE_PATTERN_ALL_NOSPACE).getTime(),transcationId, |
|
|
|
merchantAccount,merchantId,merchantName,userPhone); |
|
|
|
merchantAccount,merchantId,"停车商户",userPhone); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("handlePaidCallBackError.",e); |
|
|
|
return notifyErrorResult(e.getMessage()); |
|
|
|
@@ -200,11 +193,11 @@ public class WxParkPayServiceImpl implements WxParkPayService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void handlePaidSuccess(TenantEntity tenantEntity,WxPark wxPark,Long cUserId,Integer carVendor,String carNumber, |
|
|
|
public void handlePaidSuccess(WxPark wxPark,Long cUserId,Integer carVendor,String carNumber, |
|
|
|
String payOrderNo,Integer fee,Date paidTime,String transcationId,String merchantAccount, |
|
|
|
Long merchantId,String merchantName,String userPhone) throws Exception{ |
|
|
|
//查询该笔订单是否已经存在 |
|
|
|
WxCarPayOrder payOrder = wxCarPayOrderMapper.findOneByParkOderNo(payOrderNo, tenantEntity.getTenantId()); |
|
|
|
WxCarPayOrder payOrder = wxCarPayOrderMapper.findOneByParkOderNo(payOrderNo, wxPark.getTenantId()); |
|
|
|
String parkOrderNo = ParkCreatePayOrder.getRealParkOrderNumber(payOrderNo,EnumCarVendor.getEnum(carVendor)); |
|
|
|
if (null == payOrder) { |
|
|
|
//此处需要加锁,防止并发设置 |
|
|
|
@@ -218,7 +211,7 @@ public class WxParkPayServiceImpl implements WxParkPayService { |
|
|
|
payOrder = new WxCarPayOrder(); |
|
|
|
Long id = idworker.nextId(); |
|
|
|
payOrder.setId(id); |
|
|
|
payOrder.updateTenantInfo(tenantEntity); |
|
|
|
payOrder.updateTenantInfo(wxPark); |
|
|
|
payOrder.setCreateTime(new Date()); |
|
|
|
payOrder.setUpdateTime(new Date()); |
|
|
|
payOrder.setcUserId(cUserId); |
|
|
|
@@ -235,7 +228,7 @@ public class WxParkPayServiceImpl implements WxParkPayService { |
|
|
|
wxCarPayOrderMapper.insert(payOrder); |
|
|
|
//通知车场支付成功 |
|
|
|
try { |
|
|
|
parkFactory.getParkService(carVendor).notifyPaid(wxPark,new ParkNotifyPaid(tenantEntity.getTenantId(),payOrderNo,parkOrderNo,fee,paidTime)); |
|
|
|
parkFactory.getParkService(carVendor).notifyPaid(wxPark,new ParkNotifyPaid(wxPark.getTenantId(),payOrderNo,parkOrderNo,fee,paidTime)); |
|
|
|
payOrder.setParkNotify(EnumYesOrNo.YES.getCode()); |
|
|
|
payOrder.setUpdateTime(new Date()); |
|
|
|
wxCarPayOrderMapper.updateById(payOrder); |
|
|
|
|