Browse Source

fix

release_toaliyun_real
winter 1 year ago
parent
commit
b0df37f80c
6 changed files with 153 additions and 111 deletions
  1. +1
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java
  2. +83
    -83
      mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java
  3. +45
    -13
      mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java
  5. +14
    -3
      mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java
  6. +9
    -9
      mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java

+ 1
- 2
mallinkAdmin/src/main/java/com/iformall/controller/market/TtCouponGoodsController.java View File

@@ -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);


+ 83
- 83
mallinkBApi/src/main/java/com/iformall/controller/WxPayBillController.java View File

@@ -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<String, String> 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<String, String> 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")


+ 45
- 13
mallinkCallback/src/main/java/com/iformall/controller/callback/WxPayBillController.java View File

@@ -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<String, String> 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());
}
}


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/payBill/PayBillAdapterService.java View File

@@ -13,5 +13,5 @@ public interface PayBillAdapterService {
public Object createPay(WxPayAccountBill wxPayAccountBill,WxMerchantBUser buser,WxBillBaseEntity billdetail,Double money,Map<String,String> params);
//支付通知处理
public void paidCallBack(String tenantId,EnumBillPayWay payWay,Map<String, String> paramMap);
public void paidCallBack(String tenantId,EnumBillPayWay payWay,Map paramMap);
}

+ 14
- 3
mallinkService/src/main/java/com/iformall/service/payBill/impl/JianHangMaServiceImpl.java View File

@@ -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<String, String> 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);
}
}

}

+ 9
- 9
mallinkService/src/main/java/com/iformall/service/payBill/impl/WxMiniProgramServiceImpl.java View File

@@ -81,23 +81,23 @@ public class WxMiniProgramServiceImpl extends PayBillBaseService implements PayB
}

@Override
public void paidCallBack(String tenantId,EnumBillPayWay payWay, Map<String, String> 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);
}
}


Loading…
Cancel
Save