共通接口信息
接口响应通过 HTTP 状态码表达请求是否被成功处理:
API 消息结构
请求与响应消息均为 JSON、UTF-8 编码,由 header 与 body 两部分组成。 分销方(Waffo Point Topup)发给供应商的请求示例:X-SIGNATURE 是 Waffo Point Topup 用自己的私钥对整个 body 消息的签名。
供应商的响应示例:
X-SIGNATURE 是供应商用自己的私钥对整个 body 消息的签名。请求失败时 data 为空。
API 安全
Waffo Point Topup 与供应商之间通过交易签名与验签,保证消息的不可否认性。签名算法为 SHA256WithRSA。1
供应商入网阶段
Waffo 与供应商先交换 RSA 公钥。双方各自保管自己的 RSA 私钥,只把公钥给对方。
2
API 请求阶段
Waffo 用自己的 RSA 私钥对消息签名并发送给供应商。供应商用 Waffo 的公钥验签:验签通过则处理该请求;验签失败则向 Waffo 返回
Invalid Signature 错误。3
API 响应阶段
供应商用自己的 RSA 私钥对响应消息签名并返回给 Waffo。Waffo 用供应商的公钥验签:验签通过则处理该响应。验签失败时,Waffo 会排查并联系供应商,在问题解决前暂停向该供应商发送新交易。 因为供应商可能已经处理了这笔请求,只是 Waffo 因验签失败没能处理响应。

错误码
错误码前缀分类:生成 RSA 密钥
供应商可以用 openssl 生成一对 RSA 密钥。1
安装 openssl
从 openssl.org/source 下载并安装 openssl。
2
生成密钥对
3
交换公钥
把
supplier_public_key.pem 交给 Waffo,并从 Waffo 取得 Waffo 侧的公钥。下一步
Mode B:点卡获取 API
实时点卡获取接口的请求、响应与幂等要求。
Mode C:即时履行 API
URL 签名跳转、即时履行与履行结果查询。