53 lines
2.5 KiB
Go
53 lines
2.5 KiB
Go
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 {
|
||
}
|
||
|
||
func createToken(appID, appKey, channelId, userID, nonce string, timestamp int64) (token string, err error) {
|
||
var b bytes.Buffer
|
||
b.WriteString(appID)
|
||
b.WriteString(appKey)
|
||
b.WriteString(channelId)
|
||
b.WriteString(userID)
|
||
b.WriteString(nonce)
|
||
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
|
||
}
|