开发者/上线
安全
你的 API Key 可以花钱包里的钱、读取卡密。请像对待银行账户和现金一样,保护好它和你收到的卡密。
相关文档:认证与签名 · Webhook 通知 · 沙盒环境
#你的密钥
| 密钥 | 为什么重要 | 应该放在哪里 |
|---|---|---|
API Key(cvb2b_...) | 拿到它的人就能下单、读取卡密。 | 密钥管理系统,只放在服务器上 |
Webhook 密钥(whsec_...) | 用来证明 Webhook 确实来自 CardV。 | 只放在接收 Webhook 的服务器上 |
| 商户后台密码 | Owner 可以创建和查看 API Key。 | 密码管理器,并开启两步验证 |
- API Key 只能放在你的服务器上。不要放进 App、浏览器、URL、代码仓库、工单、聊天记录或邮件里。
- 每个系统使用单独的 Key,这样停用其中一个不会影响其他系统。
- 控制能读取 Key 的人员范围,有人离职时及时更换。
- 怀疑 Key 泄露时,立即在商户后台停用它。 然后创建新 Key,并通知 CardV 支持。
- 所有商户后台 Owner 都要开启两步验证(2FA)。
#卡密与客户数据
用 API Key 调用 GET/orders/{order_id},返回的是完整可用的卡密,包括卡号、密码、安全码、二维码内容和兑换链接。订单里也会回传你客户的直充信息(inputs)。
- 不要在日志里记录订单响应、卡密、兑换链接或客户的
inputs。日志里只记编号:order_id、external_order_id、sku_id和 HTTP 状态码。 - 不要记录
X-Api-Key、X-Signature或X-CardV-Signature请求头。 - 卡密要加密存储,只允许负责给客户发货的程序读取,超过保存期限后删除。
- 不要把订单响应缓存到共享缓存、CDN 或监控工具里,并关闭 CardV 相关请求的请求体采集。
redeem_url本身就是卡密,请像保护密码一样保护它。
#网络
- 只通过 HTTPS 访问
b2b.cardv.net和sandbox.cardv.net,不要关闭证书校验。 - 生产环境请启用 IP 白名单。即使 Key 泄露,也能把损失限制在最小。服务器变更时记得同步更新。
- 每个 Webhook 都要验签,拒绝时间戳过旧的消息,并忽略重复消息。不要给 Webhook 地址加登录验证,签名本身就是凭证。
#人员与权限
- 给每个后台用户分配够用的最低权限:Viewer 只能查看,Manager 可以下单和加款,Owner 负责安全设置。
- 人员离职时,要在正式环境和沙盒中都移除他的后台账号。
#操作日志
商户后台的操作日志(Owner 可见)会记录安全相关操作,例如创建 Key、查看 Key、修改 IP 白名单、重置 Webhook 密钥。CardV 也会记录被拦截的 IP、签名失败和频率超限,出现异常时会通知我们的团队。
请定期查看操作日志。出现你不知情的"查看 Key"记录时,按可能泄露处理。
#报告问题
如果怀疑 Key 泄露、出现异常订单,或发现 CardV 的安全问题,请立即发邮件至 [email protected],写明商户号和相关订单号。
切勿在邮件里附上密钥本身。
接入遇到问题?请发送邮件至 [email protected],并附上 Merchant ID 与订单号或请求 ID。