|
@@ -9,9 +9,13 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
import com.szwl.constant.HuifuConstant;
|
|
import com.szwl.constant.HuifuConstant;
|
|
import com.szwl.constant.JoinpayConstant;
|
|
import com.szwl.constant.JoinpayConstant;
|
|
|
|
+import com.szwl.model.bo.R;
|
|
|
|
+import com.szwl.model.bo.ResponseModel;
|
|
|
|
+import com.szwl.model.entity.OpenPayOrder;
|
|
import com.szwl.model.entity.TJoinpayMch;
|
|
import com.szwl.model.entity.TJoinpayMch;
|
|
import com.szwl.model.entity.WithdrawalRecord;
|
|
import com.szwl.model.entity.WithdrawalRecord;
|
|
import com.szwl.model.utils.RSAUtil;
|
|
import com.szwl.model.utils.RSAUtil;
|
|
|
|
+import com.szwl.service.OpenPayOrderService;
|
|
import com.szwl.service.TJoinpayMchService;
|
|
import com.szwl.service.TJoinpayMchService;
|
|
import com.szwl.service.WithdrawalRecordService;
|
|
import com.szwl.service.WithdrawalRecordService;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -20,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -42,6 +48,9 @@ public class CallbackController {
|
|
@Autowired
|
|
@Autowired
|
|
private TJoinpayMchService joinpayMchService;
|
|
private TJoinpayMchService joinpayMchService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private OpenPayOrderService openPayOrderService;
|
|
|
|
+
|
|
@ApiOperation("汇聚提现回调")
|
|
@ApiOperation("汇聚提现回调")
|
|
@PostMapping("/withdrawJoinPay")
|
|
@PostMapping("/withdrawJoinPay")
|
|
public Object withdrawJoinPay(@RequestBody Map<String, Object> rawData) {
|
|
public Object withdrawJoinPay(@RequestBody Map<String, Object> rawData) {
|
|
@@ -154,4 +163,49 @@ public class CallbackController {
|
|
return jsonNodes;
|
|
return jsonNodes;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation("openPay支付回调")
|
|
|
|
+ @PostMapping("/openPay")
|
|
|
|
+ public ResponseModel<?> openPay(@RequestBody Map<String, Object> rawData) {
|
|
|
|
+ try {
|
|
|
|
+ log.info("openPay支付回调参数,rawData={}", rawData);
|
|
|
|
+ String businessNumber = (String) rawData.get("business_number");
|
|
|
|
+ String transactionNumber = (String) rawData.get("transaction_number");
|
|
|
|
+ String productNumber = (String) rawData.get("product_number");
|
|
|
|
+ String productAbilityCode = (String) rawData.get("product_ability_code");
|
|
|
|
+ String outTradeNumber = (String) rawData.get("out_trade_number");
|
|
|
|
+ Double paymentAmount = (Double) rawData.get("payment_amount");
|
|
|
|
+ String paymentState = (String) rawData.get("payment_state");
|
|
|
|
+ String transactionCompletedAt = (String) rawData.get("transaction_completed_at");
|
|
|
|
+ String clientId = (String) rawData.get("notification_callback");
|
|
|
|
+
|
|
|
|
+ LambdaQueryWrapper<OpenPayOrder> query = Wrappers.lambdaQuery();
|
|
|
|
+ query.eq(OpenPayOrder::getOutTradeNumber, outTradeNumber);
|
|
|
|
+ OpenPayOrder openPayOrder = openPayOrderService.getOne(query);
|
|
|
|
+ if (openPayOrder != null) {
|
|
|
|
+ openPayOrder.setModifyDate(new Date());
|
|
|
|
+ openPayOrder.setTransactionCompletedAt(transactionCompletedAt);
|
|
|
|
+ openPayOrder.setPaymentState(paymentState);
|
|
|
|
+ openPayOrderService.updateById(openPayOrder);
|
|
|
|
+ } else {
|
|
|
|
+ openPayOrder = new OpenPayOrder();
|
|
|
|
+ openPayOrder.setCreateDate(new Date());
|
|
|
|
+ openPayOrder.setModifyDate(new Date());
|
|
|
|
+ openPayOrder.setClientId(clientId);
|
|
|
|
+ openPayOrder.setBusinessNumber(businessNumber);
|
|
|
|
+ openPayOrder.setTransactionNumber(transactionNumber);
|
|
|
|
+ openPayOrder.setProductNumber(productNumber);
|
|
|
|
+ openPayOrder.setProductAbilityCode(productAbilityCode);
|
|
|
|
+ openPayOrder.setOutTradeNumber(outTradeNumber);
|
|
|
|
+ openPayOrder.setPaymentAmount(new BigDecimal(paymentAmount).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
+ openPayOrder.setPaymentState(paymentState);
|
|
|
|
+ openPayOrder.setTransactionCompletedAt(transactionCompletedAt);
|
|
|
|
+ openPayOrderService.save(openPayOrder);
|
|
|
|
+ }
|
|
|
|
+ return R.ok();
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("openPay支付回调异常,参数,rawData={}", rawData, e);
|
|
|
|
+ }
|
|
|
|
+ return R.fail("openPay支付回调异常");
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|