邦斧开放平台 · 端到端对接演练记录

本页性质:研发内部验证记录,用于展示接口的真实输入输出行为与账目闭合过程。数字取自验证环境(非生产数据),便于接入方理解接口语义。

生成时间:2026-10-12 18:07:32

环境:研发内部验证环境(对外接口 https://a.jetu.cc/open/v1)

说明:全部步骤都是真实调用真实接口,资产数字每次从库里读真值(不看接口自述),最后做会计恒等式核对。


第 0 步 · 环境准备

拿到凭证:appid=<演练用临时 appid,已失效> 、appsecret=******(仅创建时可见一次)

第 1 步 · 取访问令牌(POST /open/v1/auth/token)

接入方要做的:用 appsecret 换 access_token(有效期 2 小时),后续业务接口都带这个令牌。

POST /open/v1/auth/token?appid=<演练用临时 appid,已失效>&timestamp=1791799653&nonce=<随机串>
X-Open-Sign: <HMAC-SHA256 签名>

★ 令牌到点会失效,请提前刷新并复用,不要每个请求都重新签发(会浪费一次调用额度)。

第 2 步 · 连通性自检(GET /open/v1/ping)

接入方要做的:代码写完第一件事打这个接口,确认签名算法、网络、白名单都通。

第 3 步 · 绑定你方会员(POST /open/v1/member/bind)

接入方要做的:把你方会员体系的用户 ID(out_uid)与邦斧的会员 ID 建立一一映射。 为什么需要:积分和券记在邦斧侧的会员身上,out_uid 就是你方唯一的锚点。

POST /open/v1/member/bind   {"out_uid":"U-1001","phone":"138****4177"}

第 4 步 · 查会员资料与余额(member/profile、member/balance)

接入方要做的:在你方的会员中心展示这些数(积分、可用券)。

第 5 步 · ★ 上报一笔消费(POST /open/v1/order/consume)—— 核心机制的起点

接入方要做的:你方商城用户下单付款成功后,把订单让利额报给邦斧。

★★ 这是整套方案最关键的一个概念,请务必理解:

传的是「让利额」(profit),不是订单金额。让利额 = 你愿意拿出多少比例来换锁客。

例如订单 200 元、你让利 10% ⇒ profit=2000(单位分)。

邦斧拿这个让利额做两件事:①入池(等平台按周期释放成券)②发等额积分(1 元让利 = 1 积分)。

POST /open/v1/order/consume
{"out_uid":"U-1001","out_order_id":"SO-20261012-0001","seq":1,"profit":2000,"order_amount":20000}

此刻会员资产(库里真值):积分 20.0000 · 券 0.00 元 ⇒ 让利 20 元 ⇒ 积分 +20(1 元让利 = 1 积分,一一对应);券还是 0(券要等释放周期)

★ 这一步是同步返回的:返回成功就代表已经记账,不需要等回调(本平台不做回调)。

第 6 步 · 按业务单号查处理结果(GET /open/v1/order/query)

接入方要做的:上报超时/不确定结果时,用你方订单号主动查,只读、无副作用。

★ 查不到不等于失败(可能还在路上)。此时正确做法是用同一个单号重发(有幂等保护,不会重复记账),不要换新单号。

第 7 步 · ★★ 平台释放周期到了 —— 积分减少、券增加(核心机制的落地)

这一步不需要接入方做任何事,是邦斧的定时任务按商家配置的周期自动跑的。 下面把它真实跑一遍给你看。

★★ 为什么有这个环节:让利额先「入池」,平台按周期分批释放,释放时扣掉一部分积分、发对应金额的券。

换算关系:5 积分换 1 元券(所以 1 积分最多能释放出 5 元券)。

这就是为什么「积分本身不能抵扣消费,只有券能抵扣」—— 积分是待释放的额度,券才是能花掉的钱。

释放前后对比(库里真值)

积分可用券
释放前20.00000.00 元
释放后16.000020.00 元

⇒ 积分 −4.0000、券 +20.00 元 ⇒ 换算式:每消耗 1 积分释放出 5.00 元券(20.00 元 ÷ 4.0000 积分 = 5.00) ⇒ 反过来说:5 积分换 1 元券;所以一个会员持有多少积分,就决定了他最多还能拿到多少券(积分 × 5 = 券上限)

★★ 这就是核心机制的一句话:让利入池 → 释放时扣积分、发券 → 券才能抵扣。

第 8 步 · 查券与积分流水(coupon/logs、integral/logs)

接入方要做的:做对账、做你方的资产明细页。

第 9 步 · 用券抵扣(POST /open/v1/coupon/verify)

接入方要做的:你方商城用户结算时选了「用券抵扣」,你方在我们这边核销对应金额。

★ 余额不够会直接拒绝(40205),不会自动截断 —— 你方要先按余额判断能不能抵扣。

第 10 步 · 订单取消 ⇒ 券回退(POST /open/v1/coupon/unverify)

接入方要做的:你方订单取消/退款时,把刚核销的券退回去。

第 11 步 · 会员之间转赠券(POST /open/v1/coupon/transfer)

接入方要做的:给会员做一个「送给好友」入口。券不支持提现,但支持转赠; 是否开放转赠由商户后台自己配置(默认关闭)。

★ 守恒:转出方减少的 = 接收方增加的(后面账目核对会验这个)。

第 12 步 · 你方直接发券(POST /open/v1/coupon/grant)

接入方要做的:活动/补偿/客服场景,直接给会员发券(有单笔与单日上限风控)。

第 13 步 · 退款(POST /open/v1/order/refund)—— 扣回积分 + 入池作废

接入方要做的:你方订单退款时通知邦斧,邦斧会 ①扣回当时发的积分 ②把这笔从释放基数里剔除。

第 14 步 · 积分人工调整(POST /open/v1/integral/adjust,默认关闭)

接入方要做的:客服补分/扣分。默认关闭,需平台后台开启并设单笔上限。

第 15 步 · 奖励池概览(GET /open/v1/pool/summary)

接入方要做的:在你方后台显示「还有多少让利在池子里等着释放」。

第 16 步 · 会员列表(GET /open/v1/member/list)—— 批量对账

★ 只回本接入方名下的会员;不回姓名/手机号(个人信息最小化)。

第 17 步 · 本期用量与账单(GET /open/v1/billing/usage)

第 18 步 · 个人信息合规通道(POST /open/v1/member/data-request)

接入方要做的:会员要求「查我的数据/删我的数据」时调这个接口。删除 = 匿名化(不可逆,默认关闭)。

第 19 步 · 解绑(POST /open/v1/member/unbind)


★ 最后 · 账目核对(会计恒等式)

一份完整的对接必须能对得上账。下面每一条都是独立 SQL 复算,不采信接口自述:

#恒等式左右结果
E1券账:Σ券流水(增−减) == 券余额30.0030.00✅ 闭合
E2积分账:Σ积分(入−出) == 会员持有5.00005.0000✅ 闭合
E3入池 ↔ 发积分 1:1(元↔积分)20.00 元20 积分✅ 相等
E4转赠守恒:转出方减少 == 接收方增加-5.005.00✅ 守恒

核对结论:✅ 三条核心恒等式全部闭合 —— 账目对得上


接口覆盖清单(本演练实际调用)

合计 21 个接口(其中只读查询类 10 个)。


_本记录由验证环境真实执行生成;演练数据已清理,商家配置已还原。_