|
|
@@ -41,9 +41,13 @@ import com.fs.course.domain.FsCourseRedPacketLog;
|
|
|
import com.fs.course.mapper.FsCoursePlaySourceConfigMapper;
|
|
|
import com.fs.course.mapper.FsCourseRedPacketLogMapper;
|
|
|
import com.fs.course.service.IFsCourseRedPacketLogService;
|
|
|
+import com.fs.his.config.AppConfig;
|
|
|
import com.fs.his.domain.*;
|
|
|
+import com.fs.his.dto.PayConfigDTO;
|
|
|
+import com.fs.his.enums.PaymentMethodEnum;
|
|
|
import com.fs.his.mapper.FsUserWxMapper;
|
|
|
import com.fs.his.mapper.MerchantAppConfigMapper;
|
|
|
+import com.fs.his.param.PayOrderParam;
|
|
|
import com.fs.his.service.IFsUserService;
|
|
|
import com.fs.his.service.IFsUserWxService;
|
|
|
import com.fs.his.utils.ConfigUtil;
|
|
|
@@ -55,6 +59,8 @@ import com.fs.huifuPay.domain.HuiFuCreateOrder;
|
|
|
import com.fs.huifuPay.domain.HuifuCreateOrderResult;
|
|
|
import com.fs.huifuPay.sdk.opps.core.utils.HuiFuUtils;
|
|
|
import com.fs.huifuPay.service.HuiFuService;
|
|
|
+import com.fs.live.domain.LiveOrderPayment;
|
|
|
+import com.fs.live.mapper.LiveOrderPaymentMapper;
|
|
|
import com.fs.pay.pay.dto.WxJspayDTO;
|
|
|
import com.fs.hisStore.vo.FsStorePaymentStatisticsVO;
|
|
|
import com.fs.system.oss.CloudStorageService;
|
|
|
@@ -77,6 +83,7 @@ import com.github.binarywang.wxpay.exception.WxPayException;
|
|
|
import com.github.binarywang.wxpay.service.TransferService;
|
|
|
import com.github.binarywang.wxpay.service.WxPayService;
|
|
|
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
|
|
+import com.hc.openapi.tool.fastjson.JSON;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
import org.slf4j.Logger;
|
|
|
@@ -114,6 +121,9 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
|
|
|
@Autowired
|
|
|
private IFsUserScrmService userService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private FsUserWxMapper userWxMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ICompanyUserService companyUserService;
|
|
|
@Autowired
|
|
|
@@ -131,6 +141,9 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
|
|
|
@Autowired
|
|
|
private CompanyConfigMapper companyConfigMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private LiveOrderPaymentMapper liveOrderPaymentMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
private HuiFuService huiFuService;
|
|
|
|
|
|
@@ -1067,6 +1080,8 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
private boolean uploadShippingInfoToWechat(WxMaService wxService,
|
|
|
FsStorePaymentUsetVo dto,
|
|
|
String uploadTime) {
|
|
|
@@ -1102,4 +1117,352 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发起支付
|
|
|
+ * @param payOrderParam 入参
|
|
|
+ * @return R
|
|
|
+ */
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @Override
|
|
|
+ public R processPaymentScrm( PayOrderParam payOrderParam) {
|
|
|
+ logger.info("发起支付 payOrderParam: {}", JSON.toJSONString(payOrderParam));
|
|
|
+
|
|
|
+ if (payOrderParam.getAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ throw new CustomException("支付金额不正确");
|
|
|
+ }
|
|
|
+
|
|
|
+ FsUserScrm user = userService.selectFsUserById(payOrderParam.getUserId());
|
|
|
+ if (Objects.isNull(user)) {
|
|
|
+ throw new CustomException("用户不存在");
|
|
|
+ }
|
|
|
+ String type = null;
|
|
|
+ FsPayConfig payConfig = new FsPayConfig();
|
|
|
+ if (PaymentMethodEnum.WX_APP == payOrderParam.getPaymentMethod()) {
|
|
|
+ String json = configService.selectConfigByKey("app.config");
|
|
|
+ AppConfig config = JSONUtil.toBean(json, AppConfig.class);
|
|
|
+ payOrderParam.setAppId(config.getAppId());
|
|
|
+ type = "wxApp";
|
|
|
+ }
|
|
|
+ //支付宝可以不需要appid(在没有appid的情况下)【ps:小程序的支付宝没传appid 就G】
|
|
|
+ if ((PaymentMethodEnum.ALIPAY == payOrderParam.getPaymentMethod())
|
|
|
+ && StringUtils.isBlank(payOrderParam.getAppId())) {
|
|
|
+ String json = configService.selectConfigByKey("his.pay");
|
|
|
+ PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
|
|
|
+ payConfig.setType(payConfigDTO.getType());
|
|
|
+ } else {
|
|
|
+ if (StringUtils.isBlank(payOrderParam.getAppId())) {
|
|
|
+ throw new IllegalArgumentException("appId不能为空");
|
|
|
+ }
|
|
|
+ FsCoursePlaySourceConfig fsCoursePlaySourceConfig = fsCoursePlaySourceConfigMapper.selectCoursePlaySourceConfigByAppId(payOrderParam.getAppId());
|
|
|
+ if (fsCoursePlaySourceConfig == null) {
|
|
|
+ throw new CustomException("未找到appId对应的小程序配置: " + payOrderParam.getAppId());
|
|
|
+ }
|
|
|
+ Long merchantConfigId = fsCoursePlaySourceConfig.getMerchantConfigId();
|
|
|
+ if (merchantConfigId == null || merchantConfigId <= 0) {
|
|
|
+ throw new CustomException("小程序没有配置商户信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ MerchantAppConfig merchantAppConfig = merchantAppConfigMapper.selectMerchantAppConfigById(fsCoursePlaySourceConfig.getMerchantConfigId());
|
|
|
+ payConfig = JSON.parseObject(merchantAppConfig.getDataJson(), FsPayConfig.class);
|
|
|
+ if (StringUtils.isNotEmpty(type)) {
|
|
|
+ payConfig.setType(type);
|
|
|
+ } else {
|
|
|
+ payConfig.setType(merchantAppConfig.getMerchantType());
|
|
|
+ }
|
|
|
+ payConfig.setAppId(fsCoursePlaySourceConfig.getAppid());
|
|
|
+
|
|
|
+ logger.debug("支付配置 his.pay: {}", payConfig);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// FsPayConfig payConfig = JSONUtil.toBean(json, FsPayConfig.class);
|
|
|
+
|
|
|
+ if (isWechatPayment(payOrderParam.getPaymentMethod())) {
|
|
|
+ String openId = getOpenIdForPaymentMethod(user, payOrderParam.getPaymentMethod(), payConfig);
|
|
|
+ if (StringUtils.isBlank(openId)) {
|
|
|
+ throw new CustomException("用户OPENID不存在");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建记录 TODO 根据type创建支付
|
|
|
+ FsStorePaymentScrm storePayment = new FsStorePaymentScrm();
|
|
|
+ if (payOrderParam.getBusinessType().getPrefix().equals("live")) {
|
|
|
+ LiveOrderPayment liveOrderPayment = createLiveStorePayment(payConfig, user, payOrderParam);
|
|
|
+ BeanUtils.copyProperties(liveOrderPayment, storePayment);
|
|
|
+ } else {
|
|
|
+ storePayment = createStorePaymentScrm(payConfig, user, payOrderParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据配置类型创建第三方支付订单
|
|
|
+ return createThirdPartyPaymentScrm(payConfig, storePayment, user, payOrderParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 直播订单支付信息
|
|
|
+ *
|
|
|
+ * @param payConfig
|
|
|
+ * @param user
|
|
|
+ * @param payOrderParam
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private LiveOrderPayment createLiveStorePayment(FsPayConfig payConfig, FsUserScrm user, PayOrderParam payOrderParam) {
|
|
|
+ String payCode = OrderCodeUtils.getOrderSn();
|
|
|
+ if (StringUtils.isEmpty(payCode)) {
|
|
|
+ throw new CustomException("订单生成失败,请重试");
|
|
|
+ }
|
|
|
+
|
|
|
+ LiveOrderPayment storePayment = new LiveOrderPayment();
|
|
|
+ storePayment.setStatus(0);
|
|
|
+ storePayment.setAppId(payConfig.getAppId());
|
|
|
+ storePayment.setPayMode(payConfig.getType());
|
|
|
+ storePayment.setBusinessCode(payOrderParam.getOrderCode());
|
|
|
+ storePayment.setPayCode(payCode);
|
|
|
+ storePayment.setPayMoney(payOrderParam.getAmount());
|
|
|
+ storePayment.setCreateTime(new Date());
|
|
|
+ storePayment.setPayTypeCode(payOrderParam.getPaymentMethod().getDesc());
|
|
|
+ storePayment.setBusinessType(payOrderParam.getBusinessType().getCode());
|
|
|
+ storePayment.setCompanyId(payOrderParam.getCompanyId());
|
|
|
+ storePayment.setCompanyUserId(payOrderParam.getCompanyUserId());
|
|
|
+ storePayment.setRemark(payOrderParam.getBusinessType().getDesc());
|
|
|
+ storePayment.setStoreId(payOrderParam.getStoreId());
|
|
|
+ storePayment.setUserId(user.getUserId());
|
|
|
+ storePayment.setBusinessId(payOrderParam.getOrderId().toString());
|
|
|
+
|
|
|
+ // 设置openId(如果是微信支付)
|
|
|
+ if (isWechatPayment(payOrderParam.getPaymentMethod())) {
|
|
|
+ storePayment.setOpenId(getOpenIdForPaymentMethod(user, payOrderParam.getPaymentMethod(), payConfig));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (liveOrderPaymentMapper.insertLiveOrderPayment(storePayment) <= 0) {
|
|
|
+ throw new CustomException("支付订单创建失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return storePayment;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断是否微信支付
|
|
|
+ * @param method 支付类型
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ private boolean isWechatPayment(PaymentMethodEnum method) {
|
|
|
+ return method == PaymentMethodEnum.MINIAPP_WECHAT || method == PaymentMethodEnum.H5_WECHAT;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据支付方式获取对应的openId
|
|
|
+ */
|
|
|
+ private String getOpenIdForPaymentMethod(FsUserScrm user, PaymentMethodEnum method, FsPayConfig payConfig) {
|
|
|
+ String openId;
|
|
|
+ switch (method) {
|
|
|
+ case MINIAPP_WECHAT:
|
|
|
+ openId = user.getMaOpenId();
|
|
|
+ break;
|
|
|
+ case H5_WECHAT:
|
|
|
+ openId = user.getMpOpenId();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ openId = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(openId)) {
|
|
|
+ Wrapper<FsUserWx> queryWrapper = Wrappers.<FsUserWx>lambdaQuery()
|
|
|
+ .eq(FsUserWx::getFsUserId, user.getUserId())
|
|
|
+ .eq(FsUserWx::getAppId, payConfig.getAppId());
|
|
|
+ FsUserWx fsUserWx = userWxMapper.selectOne(queryWrapper);
|
|
|
+ if (Objects.nonNull(fsUserWx)) {
|
|
|
+ openId = fsUserWx.getOpenId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return openId;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发起预支付
|
|
|
+ */
|
|
|
+ private R createThirdPartyPaymentScrm(FsPayConfig payConfig, FsStorePaymentScrm storePayment, FsUserScrm user, PayOrderParam payOrderParam) {
|
|
|
+ switch (payConfig.getType()) {
|
|
|
+ case "wx":
|
|
|
+ return createWxPayment(storePayment, user, payOrderParam, payConfig);
|
|
|
+ case "wxApp":
|
|
|
+ return createWxAppPayment(storePayment, user, payOrderParam, payConfig);
|
|
|
+ case "hf":
|
|
|
+ return createHfPayment(storePayment, user, payOrderParam, payConfig);
|
|
|
+ default:
|
|
|
+ throw new CustomException("不支持的支付方式");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 汇付
|
|
|
+ */
|
|
|
+ private R createHfPayment(FsStorePaymentScrm storePayment, FsUserScrm user, PayOrderParam payOrderParam, FsPayConfig payConfig) {
|
|
|
+ logger.debug("创建汇付订单");
|
|
|
+
|
|
|
+ HuiFuCreateOrder order = new HuiFuCreateOrder();
|
|
|
+ order.setTradeType(getHfTradeType(payOrderParam.getPaymentMethod()));
|
|
|
+ order.setReqSeqId(payOrderParam.getBusinessType().getPrefix() + "-" + storePayment.getPayCode());
|
|
|
+ order.setTransAmt(storePayment.getPayMoney().toString());
|
|
|
+ order.setGoodsDesc(payOrderParam.getBusinessType().getDesc());
|
|
|
+
|
|
|
+ // 微信支付需要设置openid
|
|
|
+ if (isWechatPayment(payOrderParam.getPaymentMethod())) {
|
|
|
+ order.setOpenid(getOpenIdForPaymentMethod(user, payOrderParam.getPaymentMethod(), payConfig));
|
|
|
+ }
|
|
|
+
|
|
|
+ HuifuCreateOrderResult result = huiFuService.createOrder(order);
|
|
|
+ logger.debug("汇付支付创建结果: {}", result);
|
|
|
+
|
|
|
+ updateStorePaymentTradeNo(storePayment.getPaymentId(), result.getHf_seq_id());
|
|
|
+ return R.ok().put("isPay", 0).put("data", result).put("type", "hf");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取汇付交易类型
|
|
|
+ */
|
|
|
+ private String getHfTradeType(PaymentMethodEnum paymentMethod) {
|
|
|
+ switch (paymentMethod) {
|
|
|
+ case MINIAPP_WECHAT:
|
|
|
+ return "T_MINIAPP";
|
|
|
+ case H5_WECHAT:
|
|
|
+ return "T_JSAPI";
|
|
|
+ case ALIPAY:
|
|
|
+ case H5_ALIPAY:
|
|
|
+ return "A_NATIVE";
|
|
|
+ case T_NATIVE:
|
|
|
+ return "T_NATIVE";
|
|
|
+ default:
|
|
|
+ throw new CustomException("不支持的支付方式");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新支付订单交易号
|
|
|
+ */
|
|
|
+ private void updateStorePaymentTradeNo(Long paymentId, String tradeNo) {
|
|
|
+ FsStorePaymentScrm updatePayment = new FsStorePaymentScrm();
|
|
|
+ updatePayment.setPaymentId(paymentId);
|
|
|
+ updatePayment.setTradeNo(tradeNo);
|
|
|
+ fsStorePaymentMapper.updateFsStorePayment(updatePayment);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 微信支付
|
|
|
+ */
|
|
|
+ private R createWxPayment(FsStorePaymentScrm storePayment, FsUserScrm user, PayOrderParam payOrderParam, FsPayConfig payConfig) {
|
|
|
+ PaymentMethodEnum paymentMethod = payOrderParam.getPaymentMethod();
|
|
|
+ if (paymentMethod != PaymentMethodEnum.MINIAPP_WECHAT) {
|
|
|
+ logger.debug("微信支付 PaymentMethod: {}", paymentMethod.name());
|
|
|
+ throw new CustomException("不支持的支付方式");
|
|
|
+ }
|
|
|
+
|
|
|
+ WxPayConfig wxPayConfig = buildWxPayConfig(payConfig);
|
|
|
+ wxPayService.setConfig(wxPayConfig);
|
|
|
+
|
|
|
+ WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
|
|
+ orderRequest.setOpenid(getOpenIdForPaymentMethod(user, paymentMethod, payConfig));
|
|
|
+ orderRequest.setBody(payOrderParam.getBusinessType().getDesc());
|
|
|
+ orderRequest.setOutTradeNo(payOrderParam.getBusinessType().getPrefix() + "-" + storePayment.getPayCode());
|
|
|
+ orderRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(storePayment.getPayMoney().toString()));
|
|
|
+ orderRequest.setTradeType("JSAPI");
|
|
|
+ orderRequest.setSpbillCreateIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
|
|
+
|
|
|
+ try {
|
|
|
+ WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
|
|
|
+ return R.ok().put("data", orderResult).put("type", "wx").put("isPay", 0);
|
|
|
+ } catch (WxPayException e) {
|
|
|
+ logger.error("微信支付发起失败: {}", e.getMessage(), e);
|
|
|
+ throw new CustomException("支付失败: " + e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 微信App支付
|
|
|
+ */
|
|
|
+ private R createWxAppPayment(FsStorePaymentScrm storePayment, FsUserScrm user, PayOrderParam payOrderParam, FsPayConfig payConfig) {
|
|
|
+ //创建微信订单
|
|
|
+ WxPayConfig wxPayConfig = buildWxPayConfig(payConfig);
|
|
|
+
|
|
|
+ wxPayConfig.setAppId(wxPayConfig.getAppId());
|
|
|
+ wxPayConfig.setMchId(wxPayConfig.getMchId());
|
|
|
+ wxPayConfig.setMchKey(wxPayConfig.getMchKey());
|
|
|
+ wxPayConfig.setSubAppId(StringUtils.trimToNull(null));
|
|
|
+ wxPayConfig.setSubMchId(StringUtils.trimToNull(null));
|
|
|
+ wxPayConfig.setKeyPath(null);
|
|
|
+ wxPayConfig.setNotifyUrl(wxPayConfig.getNotifyUrl());
|
|
|
+ wxPayService.setConfig(wxPayConfig);
|
|
|
+ WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
|
|
+ orderRequest.setBody(payOrderParam.getBusinessType().getDesc());
|
|
|
+ orderRequest.setOutTradeNo(payOrderParam.getBusinessType().getPrefix() + "-" + storePayment.getPayCode());
|
|
|
+ orderRequest.setTotalFee(WxPayUnifiedOrderRequest.yuanToFen(storePayment.getPayMoney().toString()));
|
|
|
+ orderRequest.setTradeType("APP");
|
|
|
+ orderRequest.setSpbillCreateIp(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
|
|
+ orderRequest.setNotifyUrl(wxPayConfig.getNotifyUrl());
|
|
|
+ //调用统一下单接口,获取"预支付交易会话标识"
|
|
|
+ try {
|
|
|
+ Object result = wxPayService.createOrder(orderRequest);
|
|
|
+ return R.ok().put("data",result).put("type","wxApp").put("isPay",0);
|
|
|
+ } catch (WxPayException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new CustomException("支付失败"+e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构建微信支付配置
|
|
|
+ */
|
|
|
+ private WxPayConfig buildWxPayConfig(FsPayConfig fsPayConfig) {
|
|
|
+ WxPayConfig payConfig = new WxPayConfig();
|
|
|
+ payConfig.setAppId(fsPayConfig.getAppId());
|
|
|
+ payConfig.setMchId(fsPayConfig.getWxMchId());
|
|
|
+ payConfig.setMchKey(fsPayConfig.getWxMchKey());
|
|
|
+ payConfig.setSubAppId(StringUtils.trimToNull(null));
|
|
|
+ payConfig.setSubMchId(StringUtils.trimToNull(null));
|
|
|
+ payConfig.setKeyPath(null);
|
|
|
+ payConfig.setNotifyUrl(fsPayConfig.getNotifyUrlScrm());
|
|
|
+ return payConfig;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建支付订单
|
|
|
+ */
|
|
|
+ private FsStorePaymentScrm createStorePaymentScrm(FsPayConfig payConfig, FsUserScrm user, PayOrderParam payOrderParam) {
|
|
|
+ String payCode = OrderCodeUtils.getOrderSn();
|
|
|
+ if (StringUtils.isEmpty(payCode)) {
|
|
|
+ throw new CustomException("订单生成失败,请重试");
|
|
|
+ }
|
|
|
+
|
|
|
+ FsStorePaymentScrm storePayment = new FsStorePaymentScrm();
|
|
|
+ storePayment.setStatus(0);
|
|
|
+ storePayment.setAppId(payConfig.getAppId());
|
|
|
+ storePayment.setOrderId(payOrderParam.getOrderId());
|
|
|
+ storePayment.setPayMode(payConfig.getType());
|
|
|
+ storePayment.setBusinessCode(payOrderParam.getOrderCode());
|
|
|
+ storePayment.setPayCode(payCode);
|
|
|
+ storePayment.setPayMoney(payOrderParam.getAmount());
|
|
|
+ storePayment.setCreateTime(new Date());
|
|
|
+ storePayment.setPayTypeCode(payOrderParam.getPaymentMethod().getDesc());
|
|
|
+ storePayment.setBusinessType(payOrderParam.getBusinessType().getCode());
|
|
|
+ storePayment.setCompanyId(payOrderParam.getCompanyId());
|
|
|
+ storePayment.setCompanyUserId(payOrderParam.getCompanyUserId());
|
|
|
+ storePayment.setRemark(payOrderParam.getBusinessType().getDesc());
|
|
|
+ storePayment.setStoreId(payOrderParam.getStoreId());
|
|
|
+ storePayment.setUserId(user.getUserId());
|
|
|
+ storePayment.setBusinessId(payOrderParam.getOrderId().toString());
|
|
|
+
|
|
|
+ // 设置openId(如果是微信支付)
|
|
|
+ if (isWechatPayment(payOrderParam.getPaymentMethod())) {
|
|
|
+ storePayment.setOpenId(getOpenIdForPaymentMethod(user, payOrderParam.getPaymentMethod(), payConfig));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (fsStorePaymentMapper.insertFsStorePayment(storePayment) <= 0) {
|
|
|
+ throw new CustomException("支付订单创建失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ return storePayment;
|
|
|
+ }
|
|
|
}
|