refactor(callback): 回调记录 channel 替换为 product 并翻译通道商户名

落库与查询改为支付产品;写入时按 channelMchNo 解析产品;列表侧可展示通道商户名称。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
DaxPay Dev
2026-07-22 14:27:29 +08:00
parent 3095c509c8
commit ed5d4e501b
31 changed files with 153 additions and 151 deletions

View File

@@ -259,7 +259,7 @@ CREATE TABLE "public"."pay_callback_record" (
"channel_mch_no" varchar(64),
"trade_no" varchar(100),
"out_trade_no" varchar(150),
"channel" varchar(32) NOT NULL,
"product" varchar(32),
"callback_type" varchar(20) NOT NULL,
"notify_info" text NOT NULL,
"status" varchar(20) NOT NULL,
@@ -278,7 +278,7 @@ COMMENT ON COLUMN "public"."pay_callback_record"."app_id" IS '应用号';
COMMENT ON COLUMN "public"."pay_callback_record"."channel_mch_no" IS '通道商户号';
COMMENT ON COLUMN "public"."pay_callback_record"."trade_no" IS '平台交易号(支付回调为 trade_no, 退款回调为 refund_no)';
COMMENT ON COLUMN "public"."pay_callback_record"."out_trade_no" IS '通道交易号';
COMMENT ON COLUMN "public"."pay_callback_record"."channel" IS '支付通道';
COMMENT ON COLUMN "public"."pay_callback_record"."product" IS '支付产品';
COMMENT ON COLUMN "public"."pay_callback_record"."callback_type" IS '回调类型: pay / refund';
COMMENT ON COLUMN "public"."pay_callback_record"."notify_info" IS '通知消息内容(JSON)';
COMMENT ON COLUMN "public"."pay_callback_record"."status" IS '回调处理状态';
@@ -288,7 +288,7 @@ COMMENT ON TABLE "public"."pay_callback_record" IS '通道入站回调记录';
ALTER TABLE "public"."pay_callback_record" ADD CONSTRAINT "pay_callback_record_pkey" PRIMARY KEY ("id");
CREATE INDEX "idx_pay_callback_record_trade_no" ON "public"."pay_callback_record" USING btree ("trade_no");
CREATE INDEX "idx_pay_callback_record_out_trade_no" ON "public"."pay_callback_record" USING btree ("out_trade_no");
CREATE INDEX "idx_pay_callback_record_channel" ON "public"."pay_callback_record" USING btree ("channel");
CREATE INDEX "idx_pay_callback_record_product" ON "public"."pay_callback_record" USING btree ("product");
CREATE INDEX "idx_pay_callback_record_mch_no" ON "public"."pay_callback_record" USING btree ("mch_no");
CREATE INDEX "idx_pay_callback_record_channel_mch_no" ON "public"."pay_callback_record" USING btree ("channel_mch_no");
CREATE INDEX "idx_pay_callback_record_create_time" ON "public"."pay_callback_record" USING btree ("create_time" DESC);
@@ -299,4 +299,17 @@ COMMENT ON COLUMN "public"."pay_callback_record"."channel_mch_no" IS '通道商
CREATE INDEX IF NOT EXISTS "idx_pay_callback_record_channel_mch_no" ON "public"."pay_callback_record" USING btree ("channel_mch_no");
-- 已建表环境增量: 去掉未使用的错误码列
ALTER TABLE "public"."pay_callback_record" DROP COLUMN IF EXISTS "error_code";
-- 已建表环境增量: channel → product(支付产品)
ALTER TABLE "public"."pay_callback_record" ADD COLUMN IF NOT EXISTS "product" varchar(32);
COMMENT ON COLUMN "public"."pay_callback_record"."product" IS '支付产品';
UPDATE "public"."pay_callback_record" r
SET "product" = m."product"
FROM "public"."mch_channel_merchant" m
WHERE r."product" IS NULL
AND r."channel_mch_no" IS NOT NULL
AND r."channel_mch_no" = m."channel_mch_no"
AND m."deleted" = false;
DROP INDEX IF EXISTS "idx_pay_callback_record_channel";
ALTER TABLE "public"."pay_callback_record" DROP COLUMN IF EXISTS "channel";
CREATE INDEX IF NOT EXISTS "idx_pay_callback_record_product" ON "public"."pay_callback_record" USING btree ("product");

View File

@@ -8,7 +8,6 @@ import cn.daxpay.open.channel.adapay.code.AdapayCode;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -49,7 +48,7 @@ public class AdapayPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("Adapay 支付回调: body 为空");
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return AdapayCode.NOTIFY_FAIL;
}
@@ -61,7 +60,7 @@ public class AdapayPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("Adapay 支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return AdapayCode.NOTIFY_FAIL;
}
@@ -86,10 +85,10 @@ public class AdapayPayCallbackService {
} catch (Exception e) {
log.error("Adapay 支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return AdapayCode.NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return AdapayCode.NOTIFY_SUCCESS;
}

View File

@@ -8,7 +8,6 @@ import cn.daxpay.open.channel.adapay.code.AdapayCode;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -47,7 +46,7 @@ public class AdapayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("Adapay 退款回调: body 为空");
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return AdapayCode.NOTIFY_FAIL;
}
@@ -63,7 +62,7 @@ public class AdapayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("Adapay 退款回调: 子应用解析失败");
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return AdapayCode.NOTIFY_FAIL;
}
AdapayCallbackParseResp resp = result.getData();
@@ -73,7 +72,7 @@ public class AdapayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("Adapay 退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return AdapayCode.NOTIFY_FAIL;
}
@@ -97,10 +96,10 @@ public class AdapayRefundCallbackService {
} catch (Exception e) {
log.error("Adapay 退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return AdapayCode.NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return AdapayCode.NOTIFY_SUCCESS;
}
}

View File

@@ -16,7 +16,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.runtime.service.PayTradeContainerFields;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -69,7 +68,7 @@ public class AlipayCallbackService {
failData.setCallbackData(params);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝回调: 表单参数为空");
payCallbackRecordService.savePay(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -88,14 +87,14 @@ public class AlipayCallbackService {
failData.setRefundNo(params.get("out_request_no"));
failData.setCallbackStatus(CallbackStatusEnum.EXCEPTION);
failData.setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
} else {
CallbackData failData = new CallbackData();
failData.setCallbackData(params);
failData.setTradeNo(params.get("out_trade_no"));
failData.setCallbackStatus(CallbackStatusEnum.EXCEPTION);
failData.setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
}
return NOTIFY_FAIL;
}
@@ -113,7 +112,7 @@ public class AlipayCallbackService {
failData.setTradeNo(tradeNo);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝支付回调: 无法解析通道凭证");
payCallbackRecordService.savePay(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
AlipayCallbackParseResp resp = parse(params, credential, false);
@@ -124,7 +123,7 @@ public class AlipayCallbackService {
failData.setTradeNo(tradeNo);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
CallbackData callbackData = new CallbackData();
@@ -138,7 +137,7 @@ public class AlipayCallbackService {
}
callbackData.setFinishTime(resp.getFinishTime());
payCallbackService.payCallback(callbackData);
payCallbackRecordService.savePay(ChannelEnum.ALIPAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}
@@ -154,7 +153,7 @@ public class AlipayCallbackService {
failData.setRefundNo(refundNo);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝退款回调: 退款单不存在");
payCallbackRecordService.saveRefund(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
AlipaySdkCredential credential = resolveCredentialByTradeNo(refundOrder.getTradeNo(), channelMchNo);
@@ -165,7 +164,7 @@ public class AlipayCallbackService {
failData.setRefundNo(refundNo);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝退款回调: 无法解析通道凭证");
payCallbackRecordService.saveRefund(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
AlipayCallbackParseResp resp = parse(params, credential, true);
@@ -176,7 +175,7 @@ public class AlipayCallbackService {
failData.setRefundNo(refundNo);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("支付宝退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.ALIPAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
RefundCallbackData callbackData = new RefundCallbackData();
@@ -190,7 +189,7 @@ public class AlipayCallbackService {
}
callbackData.setFinishTime(resp.getFinishTime());
refundCallbackService.refundCallback(callbackData);
payCallbackRecordService.saveRefund(ChannelEnum.ALIPAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -59,7 +58,7 @@ public class DougongPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("斗拱支付回调: 服务商公钥未配置");
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -78,7 +77,7 @@ public class DougongPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("斗拱支付回调验签/解析失败");
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
DougongCallbackParseResp resp = result.getData();
@@ -106,10 +105,10 @@ public class DougongPayCallbackService {
} catch (Exception e) {
log.error("斗拱支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
// 5. 汇付要求返回 RECV_ORD_ID_{hfSeqId} 表示接收成功
return "RECV_ORD_ID_" + resp.getTradeNo();
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -59,7 +58,7 @@ public class DougongRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("斗拱退款回调: 服务商公钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -78,7 +77,7 @@ public class DougongRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("斗拱退款回调验签/解析失败");
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
DougongCallbackParseResp resp = result.getData();
@@ -103,10 +102,10 @@ public class DougongRefundCallbackService {
} catch (Exception e) {
log.error("斗拱退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.HUIFU.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
// 汇付要求返回 RECV_ORD_ID_{hfSeqId} 表示接收成功
return "RECV_ORD_ID_" + resp.getTradeNo();
}

View File

@@ -13,7 +13,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
import jakarta.servlet.http.HttpServletRequest;
@@ -64,7 +63,7 @@ public class DouyinPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("抖音支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.DOUYIN.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return DouyinPayCode.NOTIFY_FAIL;
}
@@ -81,10 +80,10 @@ public class DouyinPayCallbackService {
} catch (Exception e) {
log.error("抖音支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.DOUYIN.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return DouyinPayCode.NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.DOUYIN.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return DouyinPayCode.NOTIFY_SUCCESS;
}

View File

@@ -13,7 +13,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
import jakarta.servlet.http.HttpServletRequest;
@@ -71,7 +70,7 @@ public class DouyinRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("抖音退款回调验签通道调用失败");
payCallbackRecordService.saveRefund(ChannelEnum.DOUYIN.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return DouyinPayCode.NOTIFY_FAIL;
}
@@ -82,7 +81,7 @@ public class DouyinRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("抖音退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.DOUYIN.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return DouyinPayCode.NOTIFY_FAIL;
}
@@ -104,10 +103,10 @@ public class DouyinRefundCallbackService {
} catch (Exception e) {
log.error("抖音退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.DOUYIN.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return DouyinPayCode.NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.DOUYIN.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return DouyinPayCode.NOTIFY_SUCCESS;
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.trade.order.dao.PayTradeManager;
import cn.daxpay.open.payment.trade.order.entity.PayTrade;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -57,7 +56,7 @@ public class FuyouPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友支付回调: req 参数为空");
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return RESP_FAIL;
}
@@ -70,7 +69,7 @@ public class FuyouPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友支付回调: 服务商密钥未配置");
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return RESP_FAIL;
}
@@ -82,7 +81,7 @@ public class FuyouPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return RESP_FAIL;
}
@@ -98,7 +97,7 @@ public class FuyouPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友支付回调: 未找到关联订单");
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return RESP_FAIL;
}
@@ -118,12 +117,12 @@ public class FuyouPayCallbackService {
callbackData.setCallbackData(notify);
try {
payCallbackService.payCallback(callbackData);
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return RESP_SUCCESS;
} catch (Exception e) {
log.error("富友支付回调业务处理失败: tradeNo={}", trade.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return RESP_FAIL;
}
}

View File

@@ -6,7 +6,6 @@ import cn.daxpay.open.channel.fuyou.entity.isv.FuyouIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -44,7 +43,7 @@ public class FuyouRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友退款回调: req 参数为空");
payCallbackRecordService.saveRefund(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return FuyouPayCallbackService.RESP_FAIL;
}
FuyouIsvKeyConfig keyConfig = fuyouIsvKeyConfigManager.findByProduct(ProductEnum.FUYOU_PAY.getCode())
@@ -55,7 +54,7 @@ public class FuyouRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友退款回调: 服务商密钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return FuyouPayCallbackService.RESP_FAIL;
}
@@ -66,7 +65,7 @@ public class FuyouRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("富友退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return FuyouPayCallbackService.RESP_FAIL;
}
@@ -89,10 +88,10 @@ public class FuyouRefundCallbackService {
} catch (Exception e) {
log.error("富友退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return FuyouPayCallbackService.RESP_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.FUYOU_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return FuyouPayCallbackService.RESP_SUCCESS;
}
}

View File

@@ -9,7 +9,6 @@ import cn.daxpay.open.channel.hkrt.entity.isv.HkrtIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -59,7 +58,7 @@ public class HkrtPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("海科融通支付回调: 服务商密钥未配置");
payCallbackRecordService.savePay(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -70,7 +69,7 @@ public class HkrtPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("海科融通支付回调验签/解析失败");
payCallbackRecordService.savePay(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
CallbackData callbackData = toCallbackData(resp);
@@ -84,10 +83,10 @@ public class HkrtPayCallbackService {
} catch (Exception e) {
log.error("海科融通支付回调业务处理失败: tradeNo={}", resp.getOutTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}

View File

@@ -9,7 +9,6 @@ import cn.daxpay.open.channel.hkrt.entity.isv.HkrtIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -63,7 +62,7 @@ public class HkrtRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("海科融通退款回调: 服务商密钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -74,7 +73,7 @@ public class HkrtRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("海科融通退款回调验签/解析失败");
payCallbackRecordService.saveRefund(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -98,10 +97,10 @@ public class HkrtRefundCallbackService {
} catch (Exception e) {
log.error("海科融通退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.HKRT_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -60,7 +59,7 @@ public class HmpayPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("河马付支付回调: 服务商公钥未配置");
payCallbackRecordService.savePay(ChannelEnum.SAND_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -79,7 +78,7 @@ public class HmpayPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("河马付支付回调验签/解析失败");
payCallbackRecordService.savePay(ChannelEnum.SAND_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
HmpayCallbackParseResp resp = result.getData();
@@ -102,10 +101,10 @@ public class HmpayPayCallbackService {
} catch (Exception e) {
log.error("河马付支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.SAND_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.SAND_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
// 5. 杉德要求返回 success 表示接收成功
return NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.hutool.core.util.StrUtil;
@@ -60,7 +59,7 @@ public class HmpayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("河马付退款回调: 服务商公钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.SAND_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -79,7 +78,7 @@ public class HmpayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("河马付退款回调验签/解析失败");
payCallbackRecordService.saveRefund(ChannelEnum.SAND_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
HmpayCallbackParseResp resp = result.getData();
@@ -103,10 +102,10 @@ public class HmpayRefundCallbackService {
} catch (Exception e) {
log.error("河马付退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.SAND_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.SAND_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
// 杉德要求返回 success 表示接收成功
return NOTIFY_SUCCESS;
}

View File

@@ -9,7 +9,6 @@ import cn.daxpay.open.channel.lakala.entity.isv.LakalaIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -62,7 +61,7 @@ public class LakalaPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("拉卡拉支付回调: 服务商密钥未配置");
payCallbackRecordService.savePay(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -74,7 +73,7 @@ public class LakalaPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("拉卡拉支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -97,10 +96,10 @@ public class LakalaPayCallbackService {
} catch (Exception e) {
log.error("拉卡拉支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}

View File

@@ -6,7 +6,6 @@ import cn.daxpay.open.channel.lakala.entity.isv.LakalaIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -52,7 +51,7 @@ public class LakalaRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("拉卡拉退款回调: 服务商密钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -63,7 +62,7 @@ public class LakalaRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("拉卡拉退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -86,10 +85,10 @@ public class LakalaRefundCallbackService {
} catch (Exception e) {
log.error("拉卡拉退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.LAKALA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -62,7 +61,7 @@ public class LeshuaPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("乐刷支付回调: 服务商密钥未配置");
payCallbackRecordService.savePay(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -83,7 +82,7 @@ public class LeshuaPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("乐刷支付回调验签/解析失败");
payCallbackRecordService.savePay(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return NOTIFY_FAIL;
}
LeshuaCallbackParseResp resp = result.getData();
@@ -111,10 +110,10 @@ public class LeshuaPayCallbackService {
} catch (Exception e) {
log.error("乐刷支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
// 5. 返回乐刷约定的成功回执
return NOTIFY_SUCCESS;
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.hutool.core.util.StrUtil;
@@ -60,7 +59,7 @@ public class LeshuaRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("乐刷退款回调: 服务商密钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
@@ -81,7 +80,7 @@ public class LeshuaRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("乐刷退款回调验签/解析失败");
payCallbackRecordService.saveRefund(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return NOTIFY_FAIL;
}
LeshuaCallbackParseResp resp = result.getData();
@@ -105,10 +104,10 @@ public class LeshuaRefundCallbackService {
} catch (Exception e) {
log.error("乐刷退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.LESHUA_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return NOTIFY_SUCCESS;
}
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -62,7 +61,7 @@ public class UmsPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("银联商务支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.UMS_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return UmsCode.NOTIFY_FAIL;
}
@@ -78,10 +77,10 @@ public class UmsPayCallbackService {
} catch (Exception e) {
log.error("银联商务支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.UMS_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return UmsCode.NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.UMS_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return UmsCode.NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -61,7 +60,7 @@ public class UmsRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("银联商务退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.UMS_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return UmsCode.NOTIFY_FAIL;
}
@@ -82,10 +81,10 @@ public class UmsRefundCallbackService {
} catch (Exception e) {
log.error("银联商务退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.UMS_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return UmsCode.NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.UMS_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return UmsCode.NOTIFY_SUCCESS;
}

View File

@@ -9,7 +9,6 @@ import cn.daxpay.open.channel.vbill.entity.isv.VbillIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -58,7 +57,7 @@ public class VbillPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付支付回调: body 为空");
payCallbackRecordService.savePay(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
resp.put("code", RESP_CODE_FAIL);
resp.put("msg", "body 为空");
return resp;
@@ -73,7 +72,7 @@ public class VbillPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付支付回调: 服务商密钥未配置");
payCallbackRecordService.savePay(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
resp.put("code", RESP_CODE_FAIL);
resp.put("msg", "密钥未配置");
return resp;
@@ -87,7 +86,7 @@ public class VbillPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
resp.put("code", RESP_CODE_FAIL);
resp.put("msg", "验签失败");
return resp;
@@ -110,13 +109,13 @@ public class VbillPayCallbackService {
callbackData.setCallbackData(notify);
try {
payCallbackService.payCallback(callbackData);
payCallbackRecordService.savePay(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
resp.put("code", RESP_CODE_SUCCESS);
resp.put("msg", "成功");
} catch (Exception e) {
log.error("随行付支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
resp.put("code", RESP_CODE_FAIL);
resp.put("msg", "业务处理失败");
}

View File

@@ -6,7 +6,6 @@ import cn.daxpay.open.channel.vbill.entity.isv.VbillIsvKeyConfig;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
@@ -45,7 +44,7 @@ public class VbillRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付退款回调: body 为空");
payCallbackRecordService.saveRefund(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
resp.put("code", VbillPayCallbackService.RESP_CODE_FAIL);
resp.put("msg", "body 为空");
return resp;
@@ -58,7 +57,7 @@ public class VbillRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付退款回调: 服务商密钥未配置");
payCallbackRecordService.saveRefund(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
resp.put("code", VbillPayCallbackService.RESP_CODE_FAIL);
resp.put("msg", "密钥未配置");
return resp;
@@ -71,7 +70,7 @@ public class VbillRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("随行付退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
resp.put("code", VbillPayCallbackService.RESP_CODE_FAIL);
resp.put("msg", "验签失败");
return resp;
@@ -93,13 +92,13 @@ public class VbillRefundCallbackService {
callbackData.setCallbackData(notify);
try {
refundCallbackService.refundCallback(callbackData);
payCallbackRecordService.saveRefund(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
resp.put("code", VbillPayCallbackService.RESP_CODE_SUCCESS);
resp.put("msg", "成功");
} catch (Exception e) {
log.error("随行付退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.VBILL_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
resp.put("code", VbillPayCallbackService.RESP_CODE_FAIL);
resp.put("msg", "业务处理失败");
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
@@ -80,7 +79,7 @@ public class WechatPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("微信支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.WECHAT.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return WechatCode.NOTIFY_FAIL;
}
@@ -99,10 +98,10 @@ public class WechatPayCallbackService {
} catch (Exception e) {
log.error("微信支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.WECHAT.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return WechatCode.NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.WECHAT.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return WechatCode.NOTIFY_SUCCESS;
}

View File

@@ -11,7 +11,6 @@ import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.hutool.extra.servlet.JakartaServletUtil;
import jakarta.servlet.http.HttpServletRequest;
@@ -76,7 +75,7 @@ public class WechatRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("微信退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.WECHAT.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return WechatCode.NOTIFY_FAIL;
}
@@ -101,10 +100,10 @@ public class WechatRefundCallbackService {
} catch (Exception e) {
log.error("微信退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.WECHAT.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return WechatCode.NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.WECHAT.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return WechatCode.NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.PayCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
@@ -61,7 +60,7 @@ public class YeepayPayCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("易宝支付回调验签失败");
payCallbackRecordService.savePay(ChannelEnum.YEE_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.savePay(channelMchNo, failData);
return YeepayCode.NOTIFY_FAIL;
}
@@ -77,10 +76,10 @@ public class YeepayPayCallbackService {
} catch (Exception e) {
log.error("易宝支付回调业务处理失败: tradeNo={}", callbackData.getTradeNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.savePay(ChannelEnum.YEE_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return YeepayCode.NOTIFY_FAIL;
}
payCallbackRecordService.savePay(ChannelEnum.YEE_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.savePay(channelMchNo, callbackData);
return YeepayCode.NOTIFY_SUCCESS;
}

View File

@@ -10,7 +10,6 @@ import cn.daxpay.open.payment.trade.runtime.bo.RefundCallbackData;
import cn.daxpay.open.payment.common.result.DaxResult;
import cn.daxpay.open.payment.trade.record.service.PayCallbackRecordService;
import cn.daxpay.open.payment.trade.runtime.service.callback.RefundCallbackService;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
@@ -61,7 +60,7 @@ public class YeepayRefundCallbackService {
failData.setCallbackData(notify);
failData.setCallbackStatus(CallbackStatusEnum.FAIL);
failData.setCallbackErrorMsg("易宝退款回调验签失败");
payCallbackRecordService.saveRefund(ChannelEnum.YEE_PAY.getCode(), channelMchNo, failData);
payCallbackRecordService.saveRefund(channelMchNo, failData);
return YeepayCode.NOTIFY_FAIL;
}
@@ -82,10 +81,10 @@ public class YeepayRefundCallbackService {
} catch (Exception e) {
log.error("易宝退款回调业务处理失败: refundNo={}", callbackData.getRefundNo(), e);
callbackData.setCallbackStatus(CallbackStatusEnum.EXCEPTION).setCallbackErrorMsg(e.getMessage());
payCallbackRecordService.saveRefund(ChannelEnum.YEE_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return YeepayCode.NOTIFY_FAIL;
}
payCallbackRecordService.saveRefund(ChannelEnum.YEE_PAY.getCode(), channelMchNo, callbackData);
payCallbackRecordService.saveRefund(channelMchNo, callbackData);
return YeepayCode.NOTIFY_SUCCESS;
}
}

View File

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.experimental.FieldNameConstants;
import java.util.Objects;
@@ -19,6 +20,7 @@ import java.util.Objects;
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@FieldNameConstants
@TableName("mch_channel_merchant")
public class ChannelMerchant extends MchBaseEntity implements ToResult<ChannelMerchantResult> {

View File

@@ -4,7 +4,7 @@ import cn.daxpay.open.payment.common.entity.MchBaseEntity;
import cn.daxpay.open.payment.trade.record.convert.PayCallbackRecordConvert;
import cn.daxpay.open.payment.trade.record.result.PayCallbackRecordResult;
import cn.daxpay.open.platform.common.mybatisplus.function.ToResult;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.daxpay.open.platform.core.enums.pay.trade.TradeFlowTypeEnum;
import cn.hutool.core.util.StrUtil;
@@ -38,9 +38,9 @@ public class PayCallbackRecord extends MchBaseEntity implements ToResult<PayCall
/// 通道交易号
private String outTradeNo;
/// 支付通道
/// @see ChannelEnum
private String channel;
/// 支付产品
/// @see ProductEnum
private String product;
/// 回调类型: pay / refund
/// @see TradeFlowTypeEnum

View File

@@ -1,7 +1,7 @@
package cn.daxpay.open.payment.trade.record.param;
import cn.daxpay.open.platform.core.annotation.QueryParam;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.daxpay.open.platform.core.enums.pay.trade.TradeFlowTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -35,10 +35,10 @@ public class PayCallbackRecordQuery {
@Schema(description = "通道交易号")
private String outTradeNo;
/// @see ChannelEnum
/// @see ProductEnum
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)
@Schema(description = "支付通道")
private String channel;
@Schema(description = "支付产品")
private String product;
/// @see TradeFlowTypeEnum
@QueryParam(type = QueryParam.CompareTypeEnum.EQ)

View File

@@ -1,21 +1,24 @@
package cn.daxpay.open.payment.trade.record.result;
import cn.daxpay.open.payment.common.result.MchBaseResult;
import cn.daxpay.open.payment.merchant.entity.channel.ChannelMerchant;
import cn.daxpay.open.payment.merchant.entity.info.MerchantInfo;
import cn.daxpay.open.platform.core.annotation.Trans;
import cn.daxpay.open.platform.core.enums.pay.channel.ChannelEnum;
import cn.daxpay.open.platform.core.enums.pay.channel.ProductEnum;
import cn.daxpay.open.platform.core.enums.pay.notice.CallbackStatusEnum;
import cn.daxpay.open.platform.core.enums.pay.trade.TradeFlowTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.experimental.FieldNameConstants;
/// # 通道入站回调记录结果
///
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@FieldNameConstants
@Schema(title = "通道入站回调记录")
public class PayCallbackRecordResult extends MchBaseResult {
@@ -33,15 +36,24 @@ public class PayCallbackRecordResult extends MchBaseResult {
@Schema(description = "通道商户号")
private String channelMchNo;
/// 通道商户名称(由 channelMchNo 翻译)
@Trans(
entity = ChannelMerchant.class,
source = Fields.channelMchNo,
on = ChannelMerchant.Fields.channelMchNo,
result = ChannelMerchant.Fields.channelMerchantName)
@Schema(description = "通道商户名称")
private String channelMerchantName;
@Schema(description = "平台交易号")
private String tradeNo;
@Schema(description = "通道交易号")
private String outTradeNo;
/// @see ChannelEnum
@Schema(description = "支付通道")
private String channel;
/// @see ProductEnum
@Schema(description = "支付产品")
private String product;
/// @see TradeFlowTypeEnum
@Schema(description = "回调类型")

View File

@@ -1,6 +1,7 @@
package cn.daxpay.open.payment.trade.record.service;
import cn.daxpay.open.payment.common.context.PaymentContext;
import cn.daxpay.open.payment.merchant.dao.channel.ChannelMerchantManager;
import cn.daxpay.open.payment.trade.record.dao.PayCallbackRecordManager;
import cn.daxpay.open.payment.trade.record.entity.PayCallbackRecord;
import cn.daxpay.open.payment.trade.runtime.bo.CallbackData;
@@ -28,21 +29,21 @@ import java.util.Optional;
public class PayCallbackRecordService {
private final PayCallbackRecordManager callbackRecordManager;
private final ChannelMerchantManager channelMerchantManager;
private final PaymentContext paymentContext;
/// 保存支付回调记录
/// @param channel 支付通道
/// @param channelMchNo 通道商户号(回调 path 入站身份)
/// @param data 回调解析数据
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void savePay(String channel, String channelMchNo, CallbackData data) {
public void savePay(String channelMchNo, CallbackData data) {
if (data == null) {
return;
}
PayCallbackRecord record = new PayCallbackRecord()
.setTradeNo(data.getTradeNo())
.setOutTradeNo(data.getOutTradeNo())
.setChannel(channel)
.setProduct(channelMerchantManager.findProductByChannelMchNo(channelMchNo))
.setChannelMchNo(channelMchNo)
.setCallbackType(TradeFlowTypeEnum.PAY.getCode())
.setNotifyInfo(toNotifyInfo(data.getCallbackData()))
@@ -54,18 +55,17 @@ public class PayCallbackRecordService {
}
/// 保存退款回调记录(trade_no 存 refundNo, out_trade_no 存 outRefundNo)
/// @param channel 支付通道
/// @param channelMchNo 通道商户号(回调 path 入站身份)
/// @param data 退款回调解析数据
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void saveRefund(String channel, String channelMchNo, RefundCallbackData data) {
public void saveRefund(String channelMchNo, RefundCallbackData data) {
if (data == null) {
return;
}
PayCallbackRecord record = new PayCallbackRecord()
.setTradeNo(data.getRefundNo())
.setOutTradeNo(data.getOutRefundNo())
.setChannel(channel)
.setProduct(channelMerchantManager.findProductByChannelMchNo(channelMchNo))
.setChannelMchNo(channelMchNo)
.setCallbackType(TradeFlowTypeEnum.REFUND.getCode())
.setNotifyInfo(toNotifyInfo(data.getCallbackData()))