payermax-兼容无targetOrg的情况

This commit is contained in:
khalil
2023-10-24 12:39:52 +08:00
committed by khalil
parent db1e52fb7d
commit 3e0749c393
2 changed files with 4 additions and 12 deletions

View File

@@ -34,7 +34,7 @@ public class PayermaxService {
String[] paymentMethodType = params.getPaymentMethodType().split(SPILT_PREFIX);
TradeOrderRequest.PaymentDetail paymentDetail = new TradeOrderRequest.PaymentDetail();
paymentDetail.setPaymentMethodType(paymentMethodType[0]);
paymentDetail.setTargetOrg(paymentMethodType[1]);
paymentDetail.setTargetOrg(paymentMethodType.length > 1 ? paymentMethodType[1]: null);
request.setPaymentDetail(paymentDetail);
request.setFrontCallbackUrl(params.getFrontCallBackUrl());

View File

@@ -5,14 +5,12 @@ import com.accompany.common.constant.Constant;
import com.accompany.common.redis.RedisKey;
import com.accompany.common.result.BusiResult;
import com.accompany.common.status.BusiStatus;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.exception.ServiceException;
import com.accompany.payment.constant.PayConstant;
import com.accompany.payment.model.ChargeRecord;
import com.accompany.payment.payermax.params.PayCallbackReqVo;
import com.accompany.payment.service.ChargeRecordService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.payermax.sdk.client.DefaultPayermaxClient;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -21,10 +19,7 @@ import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.concurrent.TimeUnit;
@@ -47,9 +42,7 @@ public class PayermaxPayController {
private RedissonClient redissonClient;
@PostMapping("/callback")
public BusiResult<Void> callback(HttpServletRequest request,
@RequestBody String paramsString) {
String sign = request.getHeader("sign");
public BusiResult<Void> callback(@RequestHeader("sign") String sign, @RequestBody String paramsString) {
log.info("[payermax] 接受回调参数为:{}",paramsString);
if (!DefaultPayermaxClient.getInstance().verifyNotification(paramsString, sign)) {
@@ -73,7 +66,7 @@ public class PayermaxPayController {
isLocked = lock.tryLock(5L, TimeUnit.SECONDS);
if (!isLocked){
log.error("[payermax] 支付回调 加锁失败 chargeRecordId: {}", chargeRecordId);
throw new ServiceException(BusiStatus.SERVER_BUSY);
throw new ServiceException(BusiStatus.SERVERBUSY);
}
ChargeRecord chargeRecord = chargeRecordService.getChargeRecordById(chargeRecordId);
@@ -104,8 +97,7 @@ public class PayermaxPayController {
return BusiResult.success();
} catch (Exception e) {
//todo log
log.error("{}", e);
log.error("[payermax] 回调异常", e);
return BusiResult.fail(BusiStatus.SERVERERROR);
} finally {
if (isLocked || lock.isLocked()){