You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ QuickFix接入Coinbase FIX接口登录签名无效问题求助

签名错误排查及修复方案
  • 代码变量名错误:你当前代码存在明显的参数传递错误:拼接好的待签名原始数据存储在data_to_encrypt变量中,但调用hmac_sha256接口时传入的第一个参数是未说明来源的data变量,这是最直接的报错原因。请将hmac_sha256(data, b64_decode(secret))修改为hmac_sha256(data_to_encrypt, b64_decode(secret))即可修复该问题。
  • 字段值一致性问题:QuickFix引擎默认会在消息发送前自动更新SendingTime(52)字段的值,如果你是在引擎填充头部字段前计算的签名,会出现签名用的时间戳与实际报文中的时间戳不一致的情况,导致校验失败。建议你重写QuickFix的toAdmin回调方法,在引擎完成所有头部字段填充、消息正式发送前再执行签名计算,保证参与签名的字段值和报文中的实际字段值完全一致。
  • 手动校验参考:你可以用提供的测试参数手动计算签名,验证逻辑正确性:
    对应示例报文的待签名原始串为:
    20211112-16:45:45.856\x01A\x011\x01b0744eb59b6951d7955e5e5aaed3709f\x01Coinbase\x01uxu3qgheh0e
    用base64解码后的secret作为密钥计算HMAC-SHA256,再将计算结果做base64编码,得到的值应该和报文中96字段的值完全一致,如果不一致可反向排查字段拼接、编码逻辑的问题。

内容的提问来源于stack exchange,提问作者Konstantin Utkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:45:04