2023-11-23 12:06:14 +00:00
|
|
|
|
package logic
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"chain-dci/pkg/msg"
|
|
|
|
|
"crypto/sha256"
|
|
|
|
|
"encoding/hex"
|
|
|
|
|
"errors"
|
|
|
|
|
"fmt"
|
|
|
|
|
"go.uber.org/zap"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type IDci interface {
|
|
|
|
|
// DciAddUser 注册DCI账号 每位著作权人 都需要注册此账号
|
|
|
|
|
// DciUpdateUser 更新DCI用户信息 著作权人 证件信息更新
|
|
|
|
|
// DciQueryUser 查询DCI用户信息 著作权人 信息查询
|
|
|
|
|
|
|
|
|
|
// DciPreregistration DCI申领 申请版权的作品 需要 先进行 DCI申领 获取到 DCI作品ID
|
|
|
|
|
// DciQueryPreregistration 查询dci申领信息 通过 DCI作品ID 获取到 DCI申领的详细信息
|
|
|
|
|
// DciQueryPreregPublication 查询dci申领公示地址
|
|
|
|
|
|
|
|
|
|
// DciRegistration 发起数登申请 在发起数字版权登记(简称:数登)申请前,请先进行DCI申领,只有申领完成的DCI才能发起数登申请
|
|
|
|
|
// DciQueryRegistration 查询数登申请 用户可通过主动查询的方式获取数登结果,支持按数登id或发起数登的DCI申领id来查询
|
|
|
|
|
// DciGetPayUrl 获取数登支付链接 初审通过后,用户通过主动查询的方式获取数登支付链接,该接口在北京时间每日06:00-23:00可用,支付链接有效期15分钟,若支付链接过期可再次调用接口刷新支付链接
|
|
|
|
|
// DciQueryPay 数登支付查询 用户完成支付后,通过数登支付查询接口获取支付结果
|
|
|
|
|
// DciGetRegistrationCert 获取数登证书下载链接 对于申请成功的数登,可通过该接口获取数登证书下载链接,数登证书下载次数限制为10次/个/月,下载链接有效期为15天
|
|
|
|
|
// RetryDigitalRegister 补正申请 对于初审不通过、待补证和待补证审核不通过的数登,请按照反馈原因调整数登申请信息,完成调整后通过补正申请接口对数登进行修改
|
|
|
|
|
// CloseDigitalRegister 数登停止申请 对于待补证和待补证审核不通过的数登,如不想进行补正,请调用数登申请停止接口,告知系统申请停止
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Dci struct {
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-27 02:03:39 +00:00
|
|
|
|
func createToken(timestamp int64, keyword ...string) (token string, err error) {
|
2023-11-23 12:06:14 +00:00
|
|
|
|
var b bytes.Buffer
|
2023-11-27 02:03:39 +00:00
|
|
|
|
for i := 0; i < len(keyword); i++ {
|
|
|
|
|
b.WriteString(keyword[i])
|
|
|
|
|
}
|
2023-11-23 12:06:14 +00:00
|
|
|
|
b.WriteString(fmt.Sprint(timestamp))
|
|
|
|
|
h := sha256.New()
|
|
|
|
|
|
|
|
|
|
if _, err = h.Write([]byte(b.String())); err != nil {
|
|
|
|
|
zap.L().Error("createToken sha256 err", zap.Error(err))
|
|
|
|
|
err = errors.New(msg.ErrorSha256Write)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
s := h.Sum(nil)
|
|
|
|
|
token = hex.EncodeToString(s)
|
|
|
|
|
return
|
|
|
|
|
}
|