diff --git a/daxpay-demo/pom.xml b/daxpay-demo/pom.xml
index 6a7680c33..d54ca80c2 100644
--- a/daxpay-demo/pom.xml
+++ b/daxpay-demo/pom.xml
@@ -35,14 +35,6 @@
common-artemis
${project.version}
-
-
-
-
- cn.daxpay.open
- daxpay-channel-alipay
- ${project.version}
-
diff --git a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/controller/ChannelDemoController.java b/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/controller/ChannelDemoController.java
deleted file mode 100644
index eb000924d..000000000
--- a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/controller/ChannelDemoController.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package cn.daxpay.open.demo.channel.controller;
-
-import cn.daxpay.open.channel.alipay.client.AlipayChannelClient;
-import cn.daxpay.open.channel.alipay.dto.AlipayPayReq;
-import cn.daxpay.open.channel.alipay.dto.AlipayPayResp;
-import cn.daxpay.open.demo.channel.param.ChannelDemoPayParam;
-import cn.daxpay.open.demo.channel.result.ChannelDemoPayResult;
-import cn.daxpay.open.platform.core.annotation.IgnoreAuth;
-import cn.daxpay.open.platform.core.rest.Res;
-import cn.daxpay.open.platform.core.rest.result.Result;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.slf4j.MDC;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.math.BigDecimal;
-import java.util.Map;
-
-/// # 通道连通性 Demo 接口
-///
-/// 演示主应用通过 @HttpExchange 客户端调用子应用 dax-pay-channel-one 的完整链路。
-/// 前端发起请求 → 主应用构建 AlipayPayReq → AlipayChannelClient 发送 HTTP → 子应用接收并处理 → 响应返回。
-///
-/// 鉴权: URL 前缀 `/demo/**` 已在白名单, 类上叠加 `@IgnoreAuth` 双保险。
-@Slf4j
-@IgnoreAuth
-@Validated
-@Tag(name = "通道连通性演示")
-@RestController
-@RequestMapping("/demo/channel")
-@RequiredArgsConstructor
-public class ChannelDemoController {
-
- private static final BigDecimal HUNDRED = new BigDecimal("100");
-
- private final AlipayChannelClient alipayChannelClient;
-
- /// 发起 Demo 支付请求到子应用
- ///
- /// 通过 @HttpExchange 声明式客户端将请求转发到 dax-pay-channel-one 的 `/channel/pay` 端点。
- /// config 传空 Map, 子应用进入 Demo 模式返回模拟响应。
- @Operation(summary = "发起通道 Demo 支付")
- @PostMapping("/pay")
- public Result pay(@Validated @RequestBody ChannelDemoPayParam param) {
- log.info("🚀 Demo: 主应用发起通道支付请求, bizOrderNo={}", param.getBizOrderNo());
-
- // 构建通道请求
- AlipayPayReq req = new AlipayPayReq();
- req.setChannel("alipay");
- req.setBizOrderNo(param.getBizOrderNo());
- req.setAmount(param.getAmount().multiply(HUNDRED).longValue());
- req.setSubject(param.getSubject());
- req.setMethod(param.getMethod());
- // 空配置 → 子应用进入 Demo 模式
- req.setConfig(Map.of());
-
- // 调用子应用 (通过 @HttpExchange, OTel 自动透传 traceId)
- var channelResult = alipayChannelClient.pay(req);
- if (channelResult.getCode() != 0) {
- throw new RuntimeException("通道支付失败: " + channelResult.getMsg());
- }
-
- AlipayPayResp resp = channelResult.getData();
-
- // 构建返回结果 (包含双端 traceId 用于链路对照)
- ChannelDemoPayResult result = new ChannelDemoPayResult();
- result.setBizOrderNo(resp.getBizOrderNo());
- result.setOutOrderNo(resp.getOutOrderNo());
- result.setPayBody(resp.getPayBody());
- result.setPayBodyType(resp.getPayBodyType());
- result.setMainAppTraceId(MDC.get("traceId"));
- result.setSubAppTraceId(channelResult.getTraceId());
-
- log.info("✅ Demo: 收到子应用响应, outOrderNo={}, subAppTraceId={}",
- result.getOutOrderNo(), result.getSubAppTraceId());
-
- return Res.ok(result);
- }
-}
diff --git a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/param/ChannelDemoPayParam.java b/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/param/ChannelDemoPayParam.java
deleted file mode 100644
index a8d26a176..000000000
--- a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/param/ChannelDemoPayParam.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cn.daxpay.open.demo.channel.param;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.DecimalMin;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/// # 通道连通性 Demo 支付参数
-///
-/// 前端表单提交的简化参数, 不涉及真实支付订单实体。
-@Data
-@Schema(description = "通道 Demo 支付参数")
-public class ChannelDemoPayParam {
-
- /// 商户订单号
- @Schema(description = "商户订单号")
- @NotBlank(message = "{validation.field.bizOrderNo.notBlank}")
- private String bizOrderNo;
-
- /// 支付金额(元)
- @Schema(description = "支付金额(元)")
- @NotNull(message = "{validation.field.amount.notNull}")
- @DecimalMin(value = "0.01", message = "{validation.field.amount.min}")
- private BigDecimal amount;
-
- /// 支付标题
- @Schema(description = "支付标题")
- @NotBlank(message = "{validation.field.subject.notBlank}")
- private String subject;
-
- /// 支付方式(alipay_wap / alipay_app / alipay_page / alipay_qr)
- @Schema(description = "支付方式", example = "alipay_qr")
- @NotBlank(message = "{validation.field.method.notBlank}")
- private String method;
-}
diff --git a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/result/ChannelDemoPayResult.java b/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/result/ChannelDemoPayResult.java
deleted file mode 100644
index a3598cfe9..000000000
--- a/daxpay-demo/src/main/java/cn/daxpay/open/demo/channel/result/ChannelDemoPayResult.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package cn.daxpay.open.demo.channel.result;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-/// # 通道连通性 Demo 支付结果
-///
-/// 展示主应用 → 子应用往返的完整信息, 包含双端 traceId 用于链路对照。
-@Data
-@Schema(description = "通道 Demo 支付结果")
-public class ChannelDemoPayResult {
-
- /// 商户订单号
- @Schema(description = "商户订单号")
- private String bizOrderNo;
-
- /// 通道侧订单号
- @Schema(description = "通道侧订单号")
- private String outOrderNo;
-
- /// 支付内容(支付链接 / 二维码 / 表单等)
- @Schema(description = "支付内容")
- private String payBody;
-
- /// 支付内容类型(qr_code / form / order_id)
- @Schema(description = "支付内容类型")
- private String payBodyType;
-
- /// 主应用 traceId
- @Schema(description = "主应用 traceId")
- private String mainAppTraceId;
-
- /// 子应用 traceId
- @Schema(description = "子应用 traceId")
- private String subAppTraceId;
-}