联合营销平台三方营销管理-云数汇接入需求文档

版本:v2.0 | 创建日期:2025年7月 | 最后更新:2025年8月

1. 项目概述

1.1 项目背景

本项目旨在构建一个完整的微信优惠券营销管理平台,通过接入云数汇第三方微信优惠券服务商,为合作银行提供统一的优惠券发放服务。项目包含三个核心组成部分:云数汇API接入层、主题活动管理系统和活动优惠券管理系统,形成完整的营销活动管理闭环。

1.2 项目目标

1.3 系统架构概览

系统整体架构:

1.4 业务价值

核心价值:

2. 业务逻辑与流程

2.1 整体业务逻辑

业务逻辑核心:

整个系统围绕"主题活动"和"微信活动"两个核心概念构建。主题活动作为营销活动的顶层设计,定义活动的基本信息、参与规则和奖品配置;微信活动作为主题活动的具体实施载体,负责优惠券的发放和管理。两者通过活动关联形成完整的营销闭环。

系统协作关系:

  1. 活动策划阶段:运营人员在主题活动管理系统中创建营销活动,配置活动规则、奖品和转盘等互动元素
  2. 优惠券配置:在活动优惠券管理系统中创建优惠券活动,关联到对应的主题活动
  3. 用户参与:用户通过H5页面参与主题活动,获取微信OpenID,触发优惠券发放流程
  4. 发券执行:系统调用云数汇API发放优惠券,记录发放结果
  5. 核销管理:用户使用优惠券时,通过回调机制更新核销状态
  6. 数据分析:在联合营销平台查看活动效果和数据统计

2.1 业务流程

业务流程时序图:

云数汇微信优惠券业务流程时序图 领券页面 行方系统 我方系统 (联合营销平台) 云数汇系统 微信平台 第一阶段:获取用户OpenID 1. H5页面获取OpenID 2. 微信授权 3. 返回OpenID 4. 回调返回OpenID 第二阶段:优惠券发放 5. 发券请求 6. 调用发券接口 7. 云数汇发券API 8. 微信发券 9. 发放结果 10. 返回结果 11. 保存记录 12. 返回结果 13. 返回状态 第三阶段:核销回调 用户使用优惠券 14. 核销通知 15. 回调通知 16. 更新记录 17. 确认回调 第四阶段:数据查询与展示 18. 查询请求 19. 查询接口 20. 返回数据 21. 展示结果

图2.1 云数汇微信优惠券业务流程时序图(详细版)

流程说明:

该时序图展示了行方系统、微信平台等系统间的完整交互流程:

  1. H5获取OpenID:跳转到拉卡拉提供的中转地址,最终跳转到云数汇H5页面获取用户微信OpenID
  2. 发券API调用:行方系统调用云数汇发放接口,参数包含openid和活动信息
  3. 核销回调通知:用户使用优惠券时,通过回调机制通知相关系统
  4. 数据查询:支持实时查询发放结果和核销状态

简化流程概述:

用户 → 接入方系统 → 我方系统 → 云数汇 → 微信

2.2 接入节点:

1. 银行嵌入云数汇h5地址获取用户openid,地址示例

https://bmk-market.dshytest.com/deliverWM/1017578611540230144?wmcb=xxx

wmcb参数为接收openid数据的回调页面地址。

回调参数拼接:${redirect_url}&openid=${response.data.openId}&from=dshy

银行需记录openid,用于后续发券使用

2. 接入云数汇发券接口:

https://doc.huiyundata.com/docs/bmk_api/bmk_api-1g239aa7hmfvn

3. 后台管理系统

本项目包含两个核心的后台管理系统,分别负责不同层面的营销活动管理。两个系统既相互独立又紧密协作,共同构成完整的营销活动管理平台。

3.1 主题活动管理系统

系统定位:营销活动的顶层设计和管理平台

核心功能:

📋 详细需求文档:

主题活动管理系统的完整功能规格、界面设计、技术规范等详细内容,请参考:

📖 主题活动管理系统需求文档

3.2 活动优惠券管理系统

系统定位:多渠道优惠券活动的专业管理平台

核心功能:

📋 详细需求文档:

活动优惠券管理系统的完整功能规格、界面设计、技术规范等详细内容,请参考:

📖 活动优惠券管理系统需求文档

3.3 系统协作关系

协作模式:

4. 系统架构与技术设计

4.1 云数汇API接口技术规范

本节详细描述云数汇API接口的技术实现规范,包括四个核心接口的详细说明。

4.1.1 获取OpenID接口

接口说明:在券列表或详情页嵌入H5链接,用于获取用户的openid,以便进行后续的业务操作。

接入方式:嵌入H5

测试环境地址:

https://bmk-market.dshytest.com/deliverWM/1017578611540230144?wmcb=xxx

生产环境地址:

https://market.dsaika.com/deliverWM/1019393703635943424?wmcb=xxx

回调请求方式:GET

回调参数:${redirect_url}&openid=${response.data.openId}&from=dshy

请求示例:

GET /callback?redirect_url=https:\\example.com&openid=oRvltwHjF4p7g5j3h2k1j0i9h8g7&from=dshy HTTP/1.1
Host: your-domain.com

返回示例:

{ "status": "success", "msg": "OpenID retrieved successfully", "data": { "openid": "oRvltwHjF4p7g5j3h2k1j0i9h8g7", "from": "dshy" } }

4.1.2 发放优惠券接口

请求URL:

请求参数说明:

字段名称 内容 是否必输 最大长度 示例值
member_id 会员号 M String(10-20) AAA200154561278
activity_id 活动号 M String(10) 1100000086
owner_id 业主Id M String(8) 80000007
promotion_id 优惠Id M String(32) WX1623452352312523523
channel_openid 接口1中获取到的openid M String(128) oKL-mwRzR-SBfI4QDAI1QXOpkyc8
mer_order_id 商户订单号 M String(64) 20211203092301
writeOffNotify 核销事件通知地址 M String(256) https://test.bank.com/notif

请求示例:

{ "member_id": "AAA200154561278", "activity_id": "1100000086", "owner_id": "80000007", "promotion_id": "WX1623452352312523523", "channel_openid": "oKL-mwRzR-SBfI4QDAI1QXOpkyc8", "mer_order_id": "20211203092301", "writeOffNotify": "https://test.bank.com/notif" }

返回示例:

{ "msg": "处理成功", "code": "000000", "data": { "resCode": "000000", "failMsg": "", "activity_id": "1100000086", "owner_id": "80000007", "promotion_id": "WX1623452352312523523", "third_coupon_id": "wxd596543989121024", "mer_order_id": "20211203092301", "trade_no": "202112030923010001", "batch_code": "1254325364564365", "channel_openid": "oKL-mwRzR-SBfI4QDAI1QXOpkyc8", "trade_status": "SUCCESS" } }

4.1.3 核销回调接口

接口说明:通知接入方系统,通过延时队列进行散列通知,通知频率:间隔:1s/5s/5s/10s/3m/10m/20m/30m/1h/2h - 总计 4h3m21s。商户返回应答SUCCESS,将终止通知。

Header认证:

Authorization: "LKLAPI-SHA256withRSA timestamp="${timeStamp}",nonce_str="${nonceStr}",signature="${signature}""

通知报文参数:

字段名称 约束 字段类型 字段描述 取值说明
member_id M String 会员ID AAA200154561278
tradeStatus M String 核销状态 USED:已实扣
EXPIRED:已过期

请求示例:

{ "member_id": "AAA200154561278", "owner_id": "80000007", "channel_openid": "oKL-mwRzR-SBfI4QDAI1QXOpkyc8", "promotion_id": "WX1623452352312523523", "third_coupon_id": "wxd596543989121024", "activity_id": "1100000086", "promo_amount": "1000", "total_amount": "9000", "org_amount": "10000", "trade_no": "202112030923010001", "mer_order_id": "20211203092301", "gmt_used": "2021-12-03 10:30:00", "tradeStatus": "USED" }

响应示例:

{ "code": "SUCCESS", "msg": "处理成功" }

4.1.4 数据查询接口

接口说明:用于查询发券结果和核销结果。

请求参数:

字段名称 内容 是否必输 最大长度 示例值
owner_id 业主Id M String(8) 80000007
mer_order_id 商户订单号 M String(64) 20211203092301
activity_id 活动号 M String(32) 1100000086
trade_no 平台订单号 M String(64) 202112030923010001

请求示例:

{ "owner_id": "80000007", "mer_order_id": "20211203092301", "activity_id": "1100000086", "trade_no": "202112030923010001" }

返回示例:

{ "msg": "处理成功", "code": "000000", "data": { "resCode": "000000", "failMsg": "", "trade_status": "SUCCESS", "promo_amount": "1000", "total_amount": "9000", "org_amount": "10000", "gmt_used": "2021-12-03 10:30:00", "tradeStatus": "USED" } }

4.2 系统组成

4.3 业务流程

4.3.1 发券流程

线下创建优惠券,优惠券信息填入联合营销平台——活动编码(营销平台提供即微信活动批次号):batchCode;活动编码关联主题活动ID。

用户 → 接入方系统 → 我方系统 → 云数汇 → 微信

——使用活动编码+用户访问h5时获取的openid发放优惠券,并实时记录发放结果。

4.3.2 详细流程步骤

第一阶段:获取用户OpenID
  1. H5页面跳转:跳转到拉卡拉提供的中转地址,最终跳转到云数汇H5页面
  2. 微信授权:H5页面获取用户微信OpenID
  3. 回调返回:携带OpenID回跳到行方系统
    格式:${redirect_url}&openid=${response.data.openId}&from=dshy
第二阶段:优惠券发放
  1. API调用准备:行方系统准备发券参数(详细参数说明见技术需求章节)
  2. 发券请求:调用云数汇发放接口
  3. 云数汇处理:云数汇向微信平台发起优惠券发放
  4. 结果返回:微信平台返回发放结果给云数汇
  5. 同步保存:同步保存发放记录
第三阶段:回调与查询
  1. 核销回调:用户使用优惠券时,云数汇通过回调通知系统
  2. 数据查询:查询发放结果
  3. 结果展示:行方系统返回查询结果

5. 云数汇接入技术需求

本章节详细描述云数汇API接入的技术实现方案,包括接口封装、数据处理、回调机制等核心技术需求。

4.4 接口封装架构

请求格式及加密方式说明文档:

https://doc.huiyundata.com/docs/bmk_api/bmk_api-1ffipkojor8up

公共参数说明:

https://doc.huiyundata.com/docs/bmk_api/bmk_api-1ffiqbedg1eea

4.5 数据存储要求

5. 联合营销平台集成需求

5.1 平台集成概述

集成目标:将主题活动管理、微信活动管理和云数汇接入服务整合到联合营销平台中,为运营人员和合作银行提供统一的管理和查询界面。

集成范围:

5.2 数据存储与同步

数据处理策略:

后台系统需对接云数汇回调接口,在联合营销平台创建优惠券活动绑定主题活动后,活动数据存储在本地。回调的优惠券数据除接口透传外,也需将数据进行保存,并用于后续的查询服务。

数据同步机制:

5.3 查询功能技术特性

用户体验设计:

查询性能优化:

数据安全控制: