mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-08 14:15:34 +08:00
refactor(callback): 回调记录 channel 替换为 product 并翻译通道商户名
落库与查询改为支付产品;写入时按 channelMchNo 解析产品;列表侧可展示通道商户名称。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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");
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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", "业务处理失败");
|
||||
}
|
||||
|
||||
@@ -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", "业务处理失败");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = "回调类型")
|
||||
|
||||
@@ -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()))
|
||||
|
||||
Reference in New Issue
Block a user