From e7c2a0f92f14aea0aafa28da2cacb2ee006debfa Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Wed, 23 Aug 2023 08:47:53 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E5=88=86=E8=B4=A6?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/adapay/service/AdapayService.java | 4 +- .../impl/OrderBasicInfoServiceImpl.java | 43 ++++++------------- 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java index 6915186d5..08942150c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java @@ -816,7 +816,7 @@ public class AdapayService { * @param confirmAmt 确认的金额 * @param orderCode 订单编号 */ - public PaymentConfirmResponse createPaymentConfirmRequest(String paymentId, AdapayMemberAccount adapayMemberAccount, BigDecimal confirmAmt, String orderCode) { + public PaymentConfirmResponse createPaymentConfirmRequest(String paymentId, AdapayMemberAccount adapayMemberAccount, BigDecimal confirmAmt, String orderCode, String wechatAppId) { // 调汇付的分账接口 确认交易 Map confirmParams = Maps.newHashMap(); // Adapay生成的支付对象id @@ -838,7 +838,7 @@ public class AdapayService { confirmParams.put("div_members", Lists.newArrayList(divMember)); Map paymentConfirm = null; try { - paymentConfirm = PaymentConfirm.create(confirmParams); + paymentConfirm = PaymentConfirm.create(confirmParams, wechatAppId); } catch (BaseAdaPayException e) { log.error("创建交易确认请求error", e); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 059e5e568..f815da3a0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -8,8 +8,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.huifu.adapay.core.exception.BaseAdaPayException; -import com.huifu.adapay.model.PaymentConfirm; -import com.jsowell.adapay.common.DivMember; import com.jsowell.adapay.response.PaymentConfirmResponse; import com.jsowell.adapay.response.PaymentReverseResponse; import com.jsowell.adapay.service.AdapayService; @@ -26,7 +24,10 @@ import com.jsowell.common.enums.MemberWalletEnum; import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.enums.ykc.*; import com.jsowell.common.exception.BusinessException; -import com.jsowell.common.util.*; +import com.jsowell.common.util.DateUtils; +import com.jsowell.common.util.PageUtils; +import com.jsowell.common.util.SecurityUtils; +import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.bean.BeanUtils; import com.jsowell.common.util.id.IdUtils; import com.jsowell.common.util.id.SnowflakeIdWorker; @@ -1019,7 +1020,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { OrderSettleResult orderSettleResult; if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { // 余额支付的订单 - orderSettleResult = doBalancePayment(orderBasicInfo, adapayMemberAccount); + orderSettleResult = doBalancePayment(orderBasicInfo, adapayMemberAccount, appId); } else { // 在线支付,进行支付确认分账 orderSettleResult = doPaymentConfirm(orderBasicInfo, adapayMemberAccount, appId); @@ -1149,7 +1150,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @param adapayMemberAccount * @return */ - public OrderSettleResult doBalancePayment(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException { + public OrderSettleResult doBalancePayment(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) throws BaseAdaPayException { BigDecimal settleAmount = orderBasicInfo.getSettleAmount(); String orderCode = orderBasicInfo.getOrderCode(); @@ -1164,7 +1165,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { String paymentId = vo.getPaymentId(); BigDecimal deductionAmount = vo.getDeductionAmount(); // 调汇付的分账接口 确认交易 - PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, adapayMemberAccount, deductionAmount, orderCode); + PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, adapayMemberAccount, deductionAmount, orderCode, wechatAppId); if (paymentConfirmResponse != null) { confirmAmt = confirmAmt.add(new BigDecimal(paymentConfirmResponse.getConfirmed_amt())); feeAmt = feeAmt.add(new BigDecimal(paymentConfirmResponse.getFee_amt())); @@ -1245,39 +1246,21 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Override public OrderSettleResult doPaymentConfirm(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) throws BaseAdaPayException { // 查询订单的交易id - AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode()); + String orderCode = orderBasicInfo.getOrderCode(); + AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); if (adapayCallbackRecord == null) { - logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderBasicInfo.getOrderCode()); + logger.error("根据订单号:{}, 未查询到汇付支付回调信息", orderCode); throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR); } + String paymentId = adapayCallbackRecord.getPaymentId(); // 金额 - String settleAmount = AdapayUtil.formatAmount(orderBasicInfo.getSettleAmount()); + BigDecimal settleAmount = orderBasicInfo.getSettleAmount(); // 调汇付的分账接口 确认交易 - Map confirmParams = Maps.newHashMap(); - // Adapay生成的支付对象id - confirmParams.put("payment_id", adapayCallbackRecord.getPaymentId()); - // 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一 - confirmParams.put("order_no", "PC" + System.currentTimeMillis()); - // 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。 - confirmParams.put("confirm_amt", settleAmount); - // 附加说明 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("orderCode", orderBasicInfo.getOrderCode()); - jsonObject.put("adapayMemberId", adapayMemberAccount.getAdapayMemberId()); - confirmParams.put("description", jsonObject.toJSONString()); - // 分账对象信息 - DivMember divMember = new DivMember(); - divMember.setMember_id(adapayMemberAccount.getAdapayMemberId()); - divMember.setAmount(settleAmount); - divMember.setFee_flag(Constants.Y); - confirmParams.put("div_members", Lists.newArrayList(divMember)); - Map paymentConfirm = PaymentConfirm.create(confirmParams, wechatAppId); - logger.info("调分账接口param:{}, result:{}", JSON.toJSONString(confirmParams), JSON.toJSONString(paymentConfirm)); + PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId, adapayMemberAccount, settleAmount, orderCode, wechatAppId); // 分账接口返回的信息 - PaymentConfirmResponse paymentConfirmResponse = JSONObject.parseObject(JSON.toJSONString(paymentConfirm), PaymentConfirmResponse.class); OrderSettleResult result = new OrderSettleResult(); result.setConfirm_amt(paymentConfirmResponse.getConfirm_amt()); result.setStatus(paymentConfirmResponse.getStatus());