diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java index 9d1f17778..36c8a790a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java @@ -146,8 +146,7 @@ public class TtCouponGoodsController extends DouyinBaseController { } try { - //boolean isSaas = this.isGoodLifeSaas(); - boolean isSaas = true; + boolean isSaas = this.isGoodLifeSaas(); return ttCouponGoodsService.productSave(coupon,isSaas); } catch (Exception e) { logger.error("product save error.",e); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java index 70735cb63..d0d8061cb 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java @@ -38,89 +38,89 @@ public class WxPayBillController extends BaseController { @Autowired WxMerchantService wxMerchantService; - @ApiOperation(value = "发起微信小程序支付订单", notes = "{\"billTypeValue\":\"string\",\"billId\":\"string\",\"appId\":\"string\",\"openId\":\"string\",\"bUserId\":\"string\",\"merchantId\":\"string\"}") - @RequestMapping(value = "/create", method = RequestMethod.POST) - public ResultData _create(@RequestBody Map paramMap, HttpServletRequest request) throws Exception { - logger.info("/api/pay/create" + paramMap.toString()); - //bill参数不能为空 - String billIdStr = paramMap.get("billId"); - if (StringUtils.isEmpty(billIdStr)) { - logger.info("billId不能为空: " + paramMap.toString()); - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billId不能为空"); - } - //bill参数要为Long - Long billId; - try { - billId = Long.valueOf(billIdStr); - } catch (NumberFormatException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billId参数不正确"); - } - - String billTypeValueStr = paramMap.get("billTypeValue"); - if (StringUtils.isEmpty(billTypeValueStr)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billTypeValue不能为空"); - } - - Integer billTypeValue = null; - try { - billTypeValue = Integer.parseInt(billTypeValueStr); - } catch (NumberFormatException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billTypeValue参数不正确"); - } - - String merchantIdStr = paramMap.get("merchantId"); - if (StringUtils.isEmpty(merchantIdStr)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId不能为空"); - } - - Long merchantId = null; - try { - merchantId = Long.parseLong(merchantIdStr); - } catch (NumberFormatException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId参数不正确"); - } - - WxMerchant wxMerchant = wxMerchantService.getById(merchantId); - if(wxMerchant==null){ - return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); - } - - //b_user_id - String bUserIdStr = paramMap.get("bUserId"); - if (StringUtils.isEmpty(bUserIdStr)) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId不能为空"); - } - - //b_user_id参数要为Long - Long bUserId; - try { - bUserId = Long.valueOf(bUserIdStr); - } catch (NumberFormatException e) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId参数不正确"); - } - //appid - String appid = paramMap.get("appId"); - //openid - String openid = paramMap.get("openId"); - //获取小程序配置信息 - WxAppinfo appInfo = getAppInfo(appid,getTenantInfo().getTenantId()); - //支付账单参数 - WxPayBill record = new WxPayBill(); - record.setBillId(billId); - record.setOpenId(openid); - record.setbUserId(bUserId); - record.updateTenantInfo(getTenantInfo()); - try { - record.setIp(IPUtil.getIpAddr(request)); - return wxPayBillService.createPayBill(wxMerchant,billTypeValue,appInfo, record, EnumPayWay.PAY_WAY_WECHAT); - } catch (MallinkException e) { - logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); - return new ResultData(e.getErrorCode(), e.getMessage()); - } catch (Exception e) { - logger.error("payment wechat, order create error, req 3: " + record.toString() + ", e:" + e.getMessage()); - return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); - } - } +// @ApiOperation(value = "发起微信小程序支付订单", notes = "{\"billTypeValue\":\"string\",\"billId\":\"string\",\"appId\":\"string\",\"openId\":\"string\",\"bUserId\":\"string\",\"merchantId\":\"string\"}") +// @RequestMapping(value = "/create", method = RequestMethod.POST) +// public ResultData _create(@RequestBody Map paramMap, HttpServletRequest request) throws Exception { +// logger.info("/api/pay/create" + paramMap.toString()); +// //bill参数不能为空 +// String billIdStr = paramMap.get("billId"); +// if (StringUtils.isEmpty(billIdStr)) { +// logger.info("billId不能为空: " + paramMap.toString()); +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billId不能为空"); +// } +// //bill参数要为Long +// Long billId; +// try { +// billId = Long.valueOf(billIdStr); +// } catch (NumberFormatException e) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billId参数不正确"); +// } +// +// String billTypeValueStr = paramMap.get("billTypeValue"); +// if (StringUtils.isEmpty(billTypeValueStr)) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billTypeValue不能为空"); +// } +// +// Integer billTypeValue = null; +// try { +// billTypeValue = Integer.parseInt(billTypeValueStr); +// } catch (NumberFormatException e) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "billTypeValue参数不正确"); +// } +// +// String merchantIdStr = paramMap.get("merchantId"); +// if (StringUtils.isEmpty(merchantIdStr)) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId不能为空"); +// } +// +// Long merchantId = null; +// try { +// merchantId = Long.parseLong(merchantIdStr); +// } catch (NumberFormatException e) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "merchantId参数不正确"); +// } +// +// WxMerchant wxMerchant = wxMerchantService.getById(merchantId); +// if(wxMerchant==null){ +// return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); +// } +// +// //b_user_id +// String bUserIdStr = paramMap.get("bUserId"); +// if (StringUtils.isEmpty(bUserIdStr)) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId不能为空"); +// } +// +// //b_user_id参数要为Long +// Long bUserId; +// try { +// bUserId = Long.valueOf(bUserIdStr); +// } catch (NumberFormatException e) { +// return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "bUserId参数不正确"); +// } +// //appid +// String appid = paramMap.get("appId"); +// //openid +// String openid = paramMap.get("openId"); +// //获取小程序配置信息 +// WxAppinfo appInfo = getAppInfo(appid,getTenantInfo().getTenantId()); +// //支付账单参数 +// WxPayBill record = new WxPayBill(); +// record.setBillId(billId); +// record.setOpenId(openid); +// record.setbUserId(bUserId); +// record.updateTenantInfo(getTenantInfo()); +// try { +// record.setIp(IPUtil.getIpAddr(request)); +// return wxPayBillService.createPayBill(wxMerchant,billTypeValue,appInfo, record, EnumPayWay.PAY_WAY_WECHAT); +// } catch (MallinkException e) { +// logger.error("payment wechat, order create error, req 2: " + record.toString() + ", e:" + e.getMessage()); +// return new ResultData(e.getErrorCode(), e.getMessage()); +// } catch (Exception e) { +// logger.error("payment wechat, order create error, req 3: " + record.toString() + ", e:" + e.getMessage()); +// return new ResultData(ErrorCode.PAY_ORDER_ERROR, e.getMessage()); +// } +// } @ApiOperation(value = "更新支付订单状态", notes = "{\"payBillId\":\"string\",\"billId\":\"string\",\"status\":integer,\"reason\":\"string\"}") @PostMapping("/updatePayBill") diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java index e74cf02c0..09df70894 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java @@ -1,6 +1,7 @@ package com.iformall.controller.callback; import com.alibaba.fastjson.JSON; +import com.iformall.common.ErrorCode; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.msg.FmInsideNotifyBillPaidSuccessMsg; import com.iformall.domain.po.msg.FmInsideNotifyCarPaidSuccessMsg; @@ -29,6 +30,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @@ -39,6 +42,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import java.util.Date; +import java.util.HashMap; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; @@ -70,8 +74,20 @@ public class WxPayBillController extends BaseController { @Autowired private FmInsideNotifyBillPaidSuccessMsgServiceImpl fmInsideNotifyBillPaidSuccessMsgServiceImpl; + private void handleCallBack(String tenantId,EnumMsgRecordType msgType,EnumBillPayChannel payChannel,EnumBillPayWay payWay,Map params) throws Exception { + FmInsideNotifyBillPaidSuccessMsg refundSuccessMsg = new FmInsideNotifyBillPaidSuccessMsg(); + refundSuccessMsg.setTenantId(tenantId); + refundSuccessMsg.setMsgType(msgType.getCode()); + refundSuccessMsg.setDelayTimeLevel(3); + refundSuccessMsg.setPayChannel(payChannel.getCode()); + refundSuccessMsg.setPayWay(payWay.getCode()); + refundSuccessMsg.setJsonMsg(JSON.toJSONString(params)); + fmInsideNotifyBillPaidSuccessMsgServiceImpl.send(refundSuccessMsg); + //mqBaseProducer.sendMessage(refundSuccessMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + @RequestMapping(value = "/wx/paid/{tenantId}") - public String parkInCallback(@PathVariable String tenantId,HttpServletRequest request) { + public String wxPaidCallback(@PathVariable String tenantId,HttpServletRequest request) { Map paramMap = null; String response = ""; String xml = ""; @@ -79,18 +95,7 @@ public class WxPayBillController extends BaseController { xml = IOUtils.toString(request.getInputStream(), Charset.forName("UTF-8")); paramMap = WxPayment.xmlToMap(xml); paramMap.put("tenantId", tenantId); - String jsonMsg = JSON.toJSONString(paramMap); - - FmInsideNotifyBillPaidSuccessMsg refundSuccessMsg = new FmInsideNotifyBillPaidSuccessMsg(); - refundSuccessMsg.setTenantId(tenantId); - refundSuccessMsg.setMsgType(EnumMsgRecordType.BILL_PAID.getCode()); - refundSuccessMsg.setDelayTimeLevel(3); - refundSuccessMsg.setPayChannel(EnumBillPayChannel.WX_MINI_PROGRAM.getCode()); - refundSuccessMsg.setPayWay(EnumBillPayWay.WECHAT_PAY.getCode()); - refundSuccessMsg.setJsonMsg(jsonMsg); - //mqBaseProducer.sendMessage(refundSuccessMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - fmInsideNotifyBillPaidSuccessMsgServiceImpl.send(refundSuccessMsg); - + handleCallBack(tenantId, EnumMsgRecordType.BILL_PAID, EnumBillPayChannel.WX_MINI_PROGRAM, EnumBillPayWay.WECHAT_PAY, paramMap); logger.info("billPaid wxpay, notify success, req : " + xml + ", resp: " + response.toString()); SortedMap resultMap = new TreeMap(); resultMap.put("return_code", "SUCCESS"); @@ -117,6 +122,33 @@ public class WxPayBillController extends BaseController { return XmlUtil.getRequestXml(resultMap); } } + + @PostMapping(value = "/jianhang/paid/{tenantId}") + public String jianhangPaidCallback(@PathVariable String tenantId,HttpServletRequest request) { + try { + EnumBillPayWay payWay = null; + String payway_real = request.getParameter("ACC_TYPE"); + if ("AL".equals(payway_real.toUpperCase())) { + payWay = EnumBillPayWay.ALIPAY; + }else if ("WX".equals(payway_real.toUpperCase())) { + payWay = EnumBillPayWay.WECHAT_PAY; + }else { + payWay = EnumBillPayWay.BANK; + } + Map paramMap = new HashMap(); + paramMap.put("SUCCESS", request.getParameter("SUCCESS")); + paramMap.put("PAYMENT", request.getParameter("PAYMENT")); + paramMap.put("REMARK1", request.getParameter("REMARK1")); + paramMap.put("REMARK2", request.getParameter("REMARK2")); + paramMap.put("ORDERID", request.getParameter("ORDERID")); + handleCallBack(tenantId, EnumMsgRecordType.BILL_PAID, EnumBillPayChannel.BANK_JIANSHE_MA, payWay, paramMap); + return "success"; + } catch (Exception e) { + logger.error("jianhangPaidCallback error",e); + throw new MallinkException(ErrorCode.API_KEY_NOT_FOUND.getCode(),e.getMessage()); + } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java b/mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java index f9ad8f191..627f06a62 100644 --- a/mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java +++ b/mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java @@ -13,5 +13,5 @@ public interface PayBillAdapterService { public Object createPay(WxPayAccountBill wxPayAccountBill,WxMerchantBUser buser,WxBillBaseEntity billdetail,Double money,Map params); //支付通知处理 - public void paidCallBack(String tenantId,EnumBillPayWay payWay,Map paramMap); + public void paidCallBack(String tenantId,EnumBillPayWay payWay,Map paramMap); } diff --git a/mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java index 8cf2fcad5..a0930dc9f 100644 --- a/mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java @@ -15,6 +15,7 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxPayAccountBill; import com.iformall.domain.po.base.WxBillBaseEntity; +import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillPayWay; import com.iformall.service.payBill.PayBillAdapterService; import com.iformall.service.payBill.impl.entity.JianHangMaRequest; @@ -77,9 +78,19 @@ public class JianHangMaServiceImpl extends PayBillBaseService implements PayBill } @Override - public void paidCallBack(String tenantId,EnumBillPayWay payWay, Map paramMap) { + public void paidCallBack(String tenantId,EnumBillPayWay payWay, Map paramMap) { + String success = (String) paramMap.get("SUCCESS"); + if ("Y".equals(success.toUpperCase())) { + String money = (String) paramMap.get("PAYMENT"); + String remark1 = (String) paramMap.get("REMARK1"); + String[] remark1_args = remark1.split("_"); + Integer billType = Integer.parseInt(remark1_args[0]); + Long billId = Long.parseLong(remark1_args[1]); + Long merchantBUserId = Long.parseLong((String)paramMap.get("REMARK2")); + String orderId = (String) paramMap.get("ORDERID"); + this.updateBillPaid(tenantId, merchantBUserId, EnumBillAllType.getEnum(billType), billId, + money, payWay, "商户单号"+orderId); + } } - - } diff --git a/mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java index fee5d0f46..2f34deb11 100644 --- a/mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java @@ -81,23 +81,23 @@ public class WxMiniProgramServiceImpl extends PayBillBaseService implements PayB } @Override - public void paidCallBack(String tenantId,EnumBillPayWay payWay, Map paramMap) { + public void paidCallBack(String tenantId,EnumBillPayWay payWay, Map paramMap) { log.debug("handleWxBillPaidCallBack."+JSON.toJSONString(paramMap)); //支付返回消息 - String returnCode = paramMap.get("return_code"); + String returnCode = (String)paramMap.get("return_code"); if ("SUCCESS".equals(returnCode)) { - String resultCode = paramMap.get("result_code"); + String resultCode = (String)paramMap.get("result_code"); if ("SUCCESS".equals(resultCode)) { //判断支付金额是否大于0 - String cashFeeStr = paramMap.get("cash_fee"); + String cashFeeStr = (String)paramMap.get("cash_fee"); Integer cashFee = Integer.parseInt(cashFeeStr); if (cashFee > 0 ) { try { //String payOrderNo = paramMap.get("out_trade_no"); - String time_end = paramMap.get("time_end"); - String transcationId = paramMap.get("transaction_id"); + String time_end = (String)paramMap.get("time_end"); + String transcationId = (String)paramMap.get("transaction_id"); - String attach = paramMap.get("attach"); + String attach = (String)paramMap.get("attach"); if (!StringUtils.isBlank(attach)) { String[] attrs = attach.split(","); if (attrs.length == 3) { @@ -120,11 +120,11 @@ public class WxMiniProgramServiceImpl extends PayBillBaseService implements PayB } } }else { - String errorMsg = paramMap.get("err_code_des"); + String errorMsg = (String)paramMap.get("err_code_des"); throw new MallinkException(ErrorCode.API_KEY_NOT_FOUND.getCode(),errorMsg); } }else { - String errorMsg = paramMap.get("return_msg"); + String errorMsg = (String)paramMap.get("return_msg"); throw new MallinkException(ErrorCode.API_KEY_NOT_FOUND.getCode(),errorMsg); } }