You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
ZXChain SDK 使用文档
初始化客户端
SDK 不主动读取 .env,需要自己管理配置,并把凭据传给 SDK。
client, err := zxchainsdk.NewSDKClient(
os.Getenv("ZXCHAIN_SECRET_ID"),
os.Getenv("ZXCHAIN_SECRET_KEY"),
os.Getenv("ZXCHAIN_PRIVATE_KEY"),
)
if err != nil {
log.Fatalf("初始化至信链客户端失败: %v", err)
}
需要的环境变量:
ZXCHAIN_SECRET_ID:至信链访问密钥 ID。ZXCHAIN_SECRET_KEY:至信链访问密钥。ZXCHAIN_PRIVATE_KEY:至信链私钥,用于签名存证请求。COS_BUCKET_URL:证书上传 COS 桶地址。COS_PUBLIC_BASE_URL:证书公开访问基础地址。COS_SECRET_ID:COS 访问密钥 ID。COS_SECRET_KEY:COS 访问密钥。
存证和生成证书并一起返回
h4 对应 SDK 方法:
CreateSimpleHashAttestationCertificate(ctx, request)
它会完成以下流程:
从 WorkPreviewURL 下载作品预览图
计算作品预览图 EvidenceHash
生成证据包并计算 SM3 Hash
调用至信链 Hash 存证
生成 Popi 证书图片
上传证书图片到 COS
返回 evId、txId、区块高度、证书地址等结果
示例:
result, err := client.CreateSimpleHashAttestationCertificate(context.Background(), zxchainsdk.SimpleHashAttestationCertificateRequest{
UserName: "zzzzzq",
UserID: "56142321",
WorkName: "测试作品",
TaskID: "9999999",
CompletedAt: "2026.5.11 15:20:01",
WorkPreviewURL: "https://your-cdn/path/work-preview.jpg",
EvidenceHash: "作品hash", //可选参数,可以不传
CertificateStorage: &zxchainsdk.COSCertificateStorage{ //可选参数,可以不传
BucketURL: os.Getenv("COS_BUCKET_URL"),
PublicBaseURL: os.Getenv("COS_PUBLIC_BASE_URL"),
SecretID: os.Getenv("COS_SECRET_ID"),
SecretKey: os.Getenv("COS_SECRET_KEY"),
},
})
if err != nil {
log.Fatalf("简化证书生成失败: %v", err)
}
fmt.Println("evId:", result.ReceiptID)
fmt.Println("txId:", result.RequestID)
fmt.Println("blockHeight:", result.BlockHeight)
fmt.Println("txTime:", result.TxTime)
fmt.Println("sm3Hash:", result.SM3Hash)
fmt.Println("certificateURL:", result.PopiCertificateCertificateImageURL)
fmt.Println("zxChainCertURL:", result.ZXChainCertURL)
请求参数:
UserName:申请用户名称。UserID:申请用户 ID。WorkName:作品名称。TaskID:生成任务 ID。CompletedAt:作品完成时间。WorkPreviewURL:作品图片 URL。EvidenceHash:可选。作品文件哈希;不传时 SDK 会从WorkPreviewURL下载内容并自行计算hash值。CertificateStorage:可选。COS 上传配置。
返回字段:
ReceiptID:至信链evId,后续给h3查询使用。RequestID:至信链txId。BlockHeight:上链区块高度。TxTime:上链时间。SM3Hash:本次上链证据包的 SM3 Hash。EvidenceHash:作品预览图或业务传入证据的哈希。PopiCertificateCertNo:Popi 证书编号。PopiCertificateVerifyURL:Popi 证书二维码核验地址。PopiCertificateCertificateImageURL:Popi 证书图片公开地址。ZXChainCertURL:至信链官方证书地址。
h3:查询 Hash 取证记录
h3 对应 SDK 方法:
QueryHashAttestation(ctx, request)
Hash 存证成功后,可以用 ReceiptID 查询链上记录。
result, err := client.QueryHashAttestation(context.Background(), zxchainsdk.HashAttestationQueryRequest{
EvID: receiptID,
})
if err != nil {
log.Fatalf("Hash 取证查询失败: %v", err)
}
fmt.Println("evId:", result.EvID)
fmt.Println("txId:", result.TxID)
fmt.Println("blockHeight:", result.BlockHeight)
fmt.Println("txTime:", result.TxTime)
fmt.Println("extendInfo:", result.ExtendInfo)
查询条件至少传一个:
EvID:h4返回的ReceiptID。Hash:存证内容的 SM3 Hash。TxID:h4返回的RequestID。
返回字段:
EvID:Hash 存证回执中的evId。TxID:Hash 存证回执中的txId。BlockHeight:上链区块高度。TxTime:官方返回的上链时间。ExtendInfo:存证时写入的业务场景信息。