Waffo Point Topup 是什么?我作为供应商能得到什么?
Waffo Point Topup 是 Waffo 的点卡充值 API 与白标点卡充值方案。你把自己的点卡库存或充值能力接进来,面向终端用户的销售侧由 Waffo 代为运营:- 独立子域名上的多语言店面,地址形如
https://{supplier}.waffoplay.com/{site_code}/({supplier}是接入时 Waffo 分配给你的子域名) - 全球支付方式
- Waffo 作为这笔销售的 merchant-of-record
- 定期向你结算
产品层面的介绍见官网 点卡充值 (https://waffo.com/docs/zh/essentials/point-topup.md);技术接入规范见官网 点卡充值 API 集成总览 (https://waffo.com/docs/zh/developer-docs/point-topup/overview.md)。
三种接入模式有什么区别?
更细的对比:
我该选哪种模式?
按你的系统条件来选:- 没有 API 能力,想尽快上线:选 Mode A,只需按模板提供点卡文件。
- 已有点卡库存系统并带 API,希望点卡生成与有效期仍由你控制:选 Mode B,用户付款后 Waffo 实时向你的接口获取点卡。
- 能直接给用户账号充值:选 Mode C,用户付款后 Waffo 调用你的直充接口,用户不需要接触点卡。
Waffo 提供哪些接口,我要提供哪些?
Waffo 只提供两个接口和一个 Webhook(在官网 API Reference 的 Point Topup 分组中)。供应商一侧的接口都是可选集成:文档里的规范只是示例,如果你已有功能等价的接口,把你自己的接口文档交给 Waffo,Waffo 会适配你现有的接口,不需要按示例重做。
Mode C 的最小接入只需要
GET /redirect 签名跳转加上履约结果通知,不需要自己提供履约接口。这种情况下通知只会上报 PAY_SUCCESS 和 PAYMENT_FAILED,你在收到 PAY_SUCCESS 后走自己的发货流程。
每种模式接入前要准备哪些材料?
Mode A
Mode B
Mode C
接口的通用格式是什么?
以下通用规范适用于 Mode B 和 Mode C;Mode A 没有 API,不涉及。
Waffo 发给你的请求,以及你返回的响应,都由 header 和 body 两部分组成,签名放在 header 的
X-SIGNATURE 中,是对整个 body 报文的签名。你的响应 body 形如:
data 为空。
HTTP 200 就代表业务成功吗?
不是。HTTP200 只说明传输成功:请求到了、被接收了、有响应返回。业务结果还要再看两处:
- 响应 body 里的
code:只有0表示请求被接受,其他值按下方错误码处理。 data里的业务状态字段,例如status或fulfillmentStatus。
200、code 为 0 返回,失败体现在 fulfillmentStatus 为 PAY_SUCCESS_SUPPLY_FAILED,并带有 failureCode 和 failureReason。只看 HTTP 状态码会把它误读成成功。
HTTP 状态码本身的分类:
接口怎么签名、验签?
Waffo 与供应商之间的接口使用 SHA256WithRSA 签名,保证报文不可抵赖:- 接入阶段:双方互换 RSA 公钥,各自保管自己的私钥,只共享公钥。
- 请求阶段:Waffo 用自己的私钥对报文签名后发给你;你用 Waffo 的公钥验签,通过才处理请求,不通过就返回
Invalid Signature错误。 - 响应阶段:你用自己的私钥对响应签名后返回;Waffo 用你的公钥验签,通过才处理响应。
跳转链接的签名算法见 Mode C 一篇。
怎么生成 RSA 密钥?
用 openssl 生成一对 2048 位的密钥:supplier_public_key.pem 交给 Waffo,同时拿到 Waffo 的公钥。私钥必须妥善保管,不得泄露给任何第三方。
幂等有什么要求?
你侧的接口必须支持幂等:同一个请求重复到达时,返回相同的结果,不重复扣库存、不重复充值。接口返回了错误码,怎么处理?
错误码前缀表示类别:
收到
E0001(未知状态)时,不要把交易当作失败,要持续查询,直到拿到明确的成功或失败状态。
想看英文原文或完整字段?
细节以官网为准:- 点卡充值 API 集成总览 (https://waffo.com/docs/zh/developer-docs/point-topup/overview.md)
- 点卡充值 API 通用规范 (https://waffo.com/docs/en/developer-docs/point-topup/api-common.md)
- API Reference · Point Topup (https://waffo.com/docs/api-reference/introduction.md)