From b7d1d907a29f2669ea5f87bf95182f3bf1633a96 Mon Sep 17 00:00:00 2001 From: fuzhongyun <1272174219@qq.com> Date: Wed, 16 Sep 2026 15:18:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 营销系统下线迁移方案-会议版.html | 598 +++++++++++++++++++++++++++++++ 1 file changed, 598 insertions(+) create mode 100644 营销系统下线迁移方案-会议版.html diff --git a/营销系统下线迁移方案-会议版.html b/营销系统下线迁移方案-会议版.html new file mode 100644 index 0000000..c4309a3 --- /dev/null +++ b/营销系统下线迁移方案-会议版.html @@ -0,0 +1,598 @@ + + +
+ + +| 能力域 | +结论 | +说明 | +
|---|---|---|
| 后台 · 创建分销商 / 客户 | +✅ 已覆盖 | +易码通 POST /admin/v1/merchant/create。注意:易码通 merchant = 营销系统的分销商(reseller),自带余额/授信/冻结账户,并保留 direct_reseller_id 老系统映射。 |
+
| 后台 · 创建应用(app_id) | +✅ 已覆盖 | +易码通 POST /admin/v1/merchant/app/create,含 app_id、商户RSA公钥、notify_url、sign_type,支持事件订阅与密钥重置。 |
+
| 后台 · 创建计划 | +✅ 已覆盖 | +易码通 POST /admin/v1/activity/create(计划≈活动 activity),含 key 总量、有效期、结算方式、绑定客户。⚠️ 需过钉钉审批才能生效、生效后才能建批次(见 6.2)。 |
+
| 后台 · 创建批次 / key 码 | +✅ 已覆盖 | +易码通 POST /admin/v1/key_batch/create(导码任务,单次 ≤10 万),生成 zip+密码,可下载/邮件。key 作废/延时/核销/统计均有接口。 |
+
| OpenAPI · A 类 券包下单 | +✅ 已覆盖 | +营销系统 /openapi/v1/market/AlipayCoupon/*(无验签)→ 易码通 key/order、key/query,协议需更换。 |
+
| OpenAPI · B 类 key 发码 | +✅ 已覆盖 | +营销系统 send/discard/query → 易码通 order/batch_order/discard/query/batch_query/renew/exchange,验签体系需转换。 |
+
| OpenAPI · B 类 批量生成+文件回传 | +🔧 需开发 | +营销系统 generate/postbank、lock/postbank、pushDataFile(邮储批量生成 key 文件回传)——易码通 openapi 无对应接口(内部有导码能力,缺开放通道),需开发或中转层补齐。 |
+
| 立减金(券)体系 主体/商品/批次/订单/核销 |
+ ✅ 已覆盖 | +易码通具备完整立减金能力:券主体(支付宝/微信/云闪付)、券商品与批次(activity/goods/voucher)、券订单(order/voucher),接口普遍标注 [迁移来源] 老系统 Order.OrderVoucher.*;后台管理 /admin/v1/coupon/*。详见 5.1。 |
+
| OpenAPI · C 类 立减金核销回调 | +✅ 存量留守 | +C 类 = 行方把支付宝立减金核销通知推给我们、更新券码状态。该链路只改存量券状态、不触发新创建 → 留守老系统,接口不动。易码通已具备同等能力(/v1/order/voucher/notify,含 NotifyVoucher/Used/Expired/Refunded),仅当新业务改在易码通发立减金券时才需迁移,届时把行方报文适配到该统一入口。 |
+
| OpenAPI · D 类 主动通知 | +🔄 需中转 | +易码通已具备事件订阅与通知重试能力(merchant_notify list/retry),但向行方推送的报文结构 / 签名(国密)/ 幂等语义与老系统差异大,且行方不改造接收端 → 由中转层把易码通事件翻译成行方既有格式再推送。 | +
| 验签体系 | +🔄 中转 + 需开发 | +易码通现有统一 RSA-SHA256 + AES-256-ECB-PKCS7(每商户一套密钥)。银行渠道(兴业/邮储国密)走中转层国密↔RSA 转换;分销商/普通客户因易码通客户来自 CRM、与营销系统分销商不对齐,考虑在易码通新增 basic_auth 验签类型统一承接新接入方(其 reseller_api_setting 表已预留 secret_key/sign/IP 白名单/接口授权等分销商级鉴权模型)。 | +
| 资金账户 / 结算 | +✅ 无需迁移余额 | +已查实(2026-09-16 连库核对):营销系统内没有分销商预充值余额池 —— 无余额表、无充值流水,发码表 merchant_key_send 无任何金额字段(发码不扣款)。结算链路大部分已废弃:结算导出 settlement_export_record 停更 2024-12、月度对账 summaryresellerorder 停更 2024-07、settlement_order 99.9%(272 万条)停在 2024-12-31,仅邮储一家(type=5,约 704 条/月)仍活跃。计价规则在 key_batch.key_cost_price/key_official_price;易码通已有更完整体系(成本价/合同价/官方价 + 4 种结算方式)。 |
+
[迁移来源] Order.OrderVoucher.* 等老系统方法名,老系统能力正按模块迁移到易码通。本次工作的实质是加速并收口这条既定迁移线。| 维度 | 数值 | 说明 |
|---|---|---|
| 表数量 / 磁盘占用 | 75 张 / ≈1.1TB | 主库 market(阿里云成都 RDS 只读副本,MySQL 5.7.28) |
| 计划总数 | 9130 | 未删除 8893,未结束 1394 |
| 未结束 key 批次 | 9008 | 近 180 天新建 4100+ |
| 待发 key 库存 | 2224 万 | 计划生成 key 总量 2230 万 |
| 活跃分销商(180 天) | 137 家 | 银行 30+ 家 / 商业地产约 40 家 / 普通企业若干 / 测试约 10 家 |
| 对接客户 merchant_id | 全库 12 个 / 活跃 6 家 | 4 家 key 类 + 2 家券包类(详见第 3 章) |
| 服务状态 | 仍在活跃运行 核心表分钟级写入:发码、事件通知、券批次、审批、结算 | |
| 超大表 Top5 | order_detail 468GB · order_voucher 255GB · event_notify 197GB · order 62GB · key_period_recharge 16GB | |
| 层级 | 定义 | 数量 | 与迁移的关系 |
|---|---|---|---|
| reseller(分销商) | +签合同/开账号的上游客户,用后台 + C 端建计划、批次、导 key | +137 家活跃 | +绝大多数不走开放 API。迁移动作 = 新分销商直接在易码通开通(basic_auth 接入);存量分销商因易码通客户来自 CRM、与营销系统不对齐,需先建 映射表(营销 reseller ↔ CRM/易码通客户) 或按 CRM 重新开通。 | +
| merchant(API 对接商户) | +通过开放 API 发码/作废/查询 + 收事件推送的系统级对接方 | +全库 12 / 活跃 6 | +迁移 / 中转的真实对象,即本文重点。 | +
| 客户 | merchant_id | 归属分销商 | 接口类型 | 发码量 / 事件量 | 活跃度 | 方案 | +
|---|---|---|---|---|---|---|
| 蓝星严选(连续包月) | — | — | A 券包下单 | 券包订单(同日见 openapi_order 与 order) | 🟢 | +存量中转 + 新业务直连 存量业务中转层代签兜底;新业务直接对接易码通(免中转) |
+
| 阅璟 | — | — | A 券包下单 | 券包订单 | 🟢 | +存量中转 + 新业务直连 同上 |
+
| 四川天府银行 | TFYH00001 | 924 四川天府 | B key 发码 | 8583 张 | 🟡 较活跃 (2026-07) |
+ 中转(首个试点) 量小、风险低,作为中转网关首批灰度对象 |
+
| 兴业银行 | LSXD001 | 500 兴业 | B key 发码 + 推送 | 发码 93 万 / 事件 8.6 万 | 🟢 | +中转 国密证书+独立加解密;老系统已有实现,可复用 |
+
| 邮储银行总行 | lansexiongdi666 | 606 邮储总行 | B key 发码 + 推送 + 批量生成 | 发码 700 万 / 事件 3556 万 | 🟢 | +中转 量大 + 父子券/白调逻辑易码通暂未实现 + 批量 key 文件回传 |
+
| 邮储茶饮 | YCCY001 | 714 邮储茶饮 | B key 发码 | 5102 张 | 🟢 (2026-09) | +中转 随邮储体系一并中转;不在事件推送表,但发码活跃 |
+
LSXD000001/2、jianxingjinke 等),无需处理,随老系统归档。| 分类 | 数量 | 处置方案 |
|---|---|---|
| 银行客户(兴业/邮储/浙商/新网/众邦等) | 30+ 家 | 发通知函 + 基于 CRM 映射开通易码通账户;对接型银行(兴业/邮储)走中转,其余按计划自然到期 |
| 商业地产(华润/万象系/亚奥等购物中心) | 约 40 家 | 通知函 + 开通引导(basic_auth),量级小、无 API 依赖 |
| 普通企业(申朴/迈戈/淘天/oppo 等) | 若干 | 同上,按活跃度分批触达 |
| 测试账号 | 约 10 家 | 直接停用/归档 |
老app_id → 易码通app_id 映射表,老客户 app_id 不变、客户端零改造(行方接收端因此完全不用动)。out_biz_no 原样透传给易码通(易码通有 Redis 幂等锁),保证中转重试不重复发码。RequestRedirect 中间件思路 —— 按计划编号分流:老计划 → 老系统 DB(只读查询),新计划 → 易码通。老存量不动、新业务全进易码通。| 接口类 | 营销系统路由 | 易码通对应 | 中转层动作 |
|---|---|---|---|
| A · 券包下单 | /openapi/v1/market/AlipayCoupon/order、query | key/order、key/query | 代签 + 字段翻译 + 幂等透传;老客户无感 |
| B · key 发码 | /openApi/v1/market/key/send、discard、query | order/batch_order、discard、query/batch_query、renew、exchange | 国密验签 → 易码通验签转换;字段映射;out_biz_no 透传 |
| B · 批量生成需开发 | generate/postbank、lock/postbank、pushDataFile | 无对应 | 易码通内部有导码能力(key_batch 出 zip),缺开放通道 —— 中转层实现"客户文件交互"并桥接到易码通内部接口,或易码通补开放接口 |
| C · 立减金回调存量留守 | /openApi/v1/callback/voucher/*(4 家) | 仅更新存量券状态,无新创建 (新业务可迁易码通 /v1/order/voucher/notify) | 存量留守老系统,不动;仅当新业务在易码通发立减金券时再做渠道适配 |
| D · 主动通知 | /notify/industrialBank | merchant_app 事件订阅 + merchant_notify 重试 | 易码通事件 → 行方既有报文格式/国密签名/幂等语义转换后推送,行方接收端不变 |
app_id/RSA/AES/notify_url,新商户接入成本低,中转层为每个老客户申请独立 app,密钥隔离。| 类型 | 方向 | 数量 | 处理方案 |
|---|---|---|---|
| C 类 · 立减金核销回调 | +银行/渠道 → 营销系统/openApi/v1/callback/voucher/* |
+ 4 家 | +性质 = 行方把支付宝立减金核销通知推给我们,用于更新券码状态。只改存量券状态、不触发新创建 → 留守老系统,接口不动。易码通虽具备同等能力(NotifyVoucher/Used/Expired/Refunded),但无需为此迁移;仅当新业务改在易码通发立减金券时才需把 4 家渠道适配过去。 |
+
| D 类 · 主动事件通知 | +营销系统 → 银行/notify/industrialBank |
+ 3 家 (邮储/兴业/天府) |
+ 易码通具备 merchant_app 事件订阅 + merchant_notify 通知重试(能力底子),但报文结构 / 国密签名 / 幂等语义与行方既有接收端不一致,行方不改 → 必须由中转层转换后推送,并复刻老系统补推工具(pushKeySupplement 类)。 |
+
| merchant | 180 天事件量 | 最近通知 | 含义 |
|---|---|---|---|
lansexiongdi666(邮储总行) | 3556 万条 | 2026-09-07 | 分钟级推送峰值,中转层需具备高吞吐 + 幂等 + 失败重试队列,且通知不能丢(涉及银行侧积分到账) |
LSXD001(兴业) | 8.6 万条 | 2026-09-07 | 国密加密报文,中转层解/加密 |
TFYH00001(天府) | 4043 条 | 2026-07-09 | 量小,作中转网关首个灰度对象;推送格式转换逻辑与兴业共用 |
| 营销系统(关闭的能力) | 易码通对应接口 | 要点 |
|---|---|---|
| 创建分销商 reseller | POST /admin/v1/merchant/create | 即易码通 merchant,带资金账户 + direct_reseller_id 老系统映射 |
| 创建应用(app_id/密钥) | POST /admin/v1/merchant/app/create | RSA 密钥、notify_url、事件订阅、密钥重置 |
| 创建计划 | POST /admin/v1/activity/create | key 总量/有效期/结算方式/绑定客户 |
| 创建批次 / 导 key | POST /admin/v1/key_batch/create | 单次 ≤10 万,zip+密码,可下载/邮件 |
| key 管理 | PUT /admin/v1/key/discard|delay|use | 作废 / 延时 / 标记已使用 / 统计 |
| 注意点 | 问题 | 建议 |
|---|---|---|
| ① 审批流 | 易码通活动创建后为"待审核",需钉钉审批,生效后才能建批次 | 存量计划批量导入时走免审/直连通道,或确认审批流程可配置 |
| ② 资金账户 | 易码通 merchant 有余额/授信/冻结,营销系统 137 家分销商余额是否迁移 | 先定"余额是否平移",否则下游发码结算会断;建议迁移后按易码通账户体系重新授信 |
| ③ 批次上限 | 易码通单批次 ≤10 万且不超活动 key_total_num;老系统尚有 2224 万待发 key | 新建活动时 key_total_num 按存量+新量规划,或按活动多次建批次 |
| ④ key 格式 | 易码通 key 有 key_style(1/2/3)、key_unit、区间导码参数 | 核对老系统 key 生成规则(前缀/长度/分段)能否用易码通参数配出,否则老客户依赖的 key 形态会变 |
| ⑤ 存量处置 | 1394 未结束计划、9008 未结束批次(2224 万 key) | 不动存量,按 end_time 自然到期;停入口后 C 端核销链路自闭环即可 |
| 阶段 | 动作 | 判定完成标准 |
|---|---|---|
| 阶段 1 停入口 |
+ 管理后台写接口(新建计划/批次)禁用 OpenAPI 写接口(send/discard/generate/lock/pushDataFile)停用 分销商后台登录入口关闭 保留:查询接口、核销、C 端、回调接收、财务导出 |
+ 每日新建 plan < 1 | +
| 阶段 2 存量消化 |
+ 1394 个未结束计划自然到期;9008 批次消耗 2224 万待发 key 关键任务:通知 137 家分销商 + 建立 CRM 映射,在易码通开通账户(basic_auth 接入) |
+ 存量计划全部过期 / 分销商完成引导 | +
| 阶段 3 银行对接处理 |
+ 统一由中转网关承接存量,行方零改造: ① 天府 → 首个灰度(量小);② 蓝星/阅璟 → 存量中转(代签),新业务直连易码通;③ 兴业 → 国密验签转换;④ 邮储总行/茶饮 → 大流量 + 父子券/白调 + 批量文件回传 + 结算登记(settlement_order type=5)承接;⑤ D 类推送格式转换 易码通侧并行:新增 basic_auth 验签类型、建立分销商 CRM 映射 |
+ 6 家对接客户全部切换完成,行方无改造 | +
| 阶段 4 下线归档 |
+ 老系统保留查询与 C 类核销回调接收(存量券生命周期走完);1.1TB 归档冷存储(OSS 冷归档) 保留财务对账所需表 |
+ 停服验收通过 | +
| 工作项 | 工作量 | 复杂度 |
|---|---|---|
| 停入口(前后端双禁用) | 小 | 低 |
| 分销商通知 + CRM 映射开通(137 家) | 中 | 中 |
| 中转网关(验签/协议转换 · app_id 映射 · 幂等 · D 类推送格式转换) | 大 | 高 |
| 易码通新增 basic_auth 验签类型(复用 reseller_api_setting 模型) | 小 | 低 |
| 邮储专项(父子券/白调/批量 key 文件回传/3556万事件/结算登记承接) | 大 | 高 |
| 老系统数据归档(1.1TB) | 中 | 中 |
停入口、留服务、存量自然消化;6 家已对接客户的存量业务一律由中转网关承接(行方零改造),新业务直连易码通(A 类券包客户可直接对接);137 家分销商经 CRM 映射迁入易码通(basic_auth 接入)。C 类核销回调留守老系统不动。
+ +settlement_order type=5,704 条/月)已确认纳入邮储中转范围,落地时若漏项将导致邮储结算断档settlement_order type=5,704 条/月)承接(已确认纳入中转范围);历史结算数据存档供财务对账