7. getCredentialPojoHash

基本信息

  1. 接口名称:com.webank.weid.rpc.CredentialPojoService.getCredentialPojoHash
  2. 接口定义:ResponseData<String> getCredentialHash(CredentialPojo args)
  3. 接口描述: 传入CredentialPojo信息生成CredentialPojo整体的Hash值,一般在生成Evidence时调用。

接口入参: com.webank.weid.protocol.base.CredentialPojo

com.webank.weid.protocol.base.CredentialPojo

名称类型非空说明备注
contextStringY
typeList<String>Y
idStringY证书ID
cptIdIntegerYcptId
issuerStringYissuer 的 WeIdentity DID
issuanceDateLongY创建日期
expirationDateLongY到期日期
claimMap<String, Object>YClaim数据
proofMap<String, Object>Y签名数据结构体

接口返回: com.webank.weid.protocol.response.ResponseData<String>;

名称类型说明备注
errorCodeInteger返回结果码
errorMessageString返回结果描述
resultString返回结果值
transactionInfoTransactionInfo交易信息

com.webank.weid.protocol.response.TransactionInfo

名称类型说明备注
blockNumberBigInteger交易块高
transactionHashString交易hash
transactionIndexBigInteger交易索引

此方法返回code

enumcodedesc
SUCCESS0成功
CPT_ID_ILLEGAL100303cptId无效
CREDENTIAL_EXPIRED100402过期
CREDENTIAL_SIGNATURE_BROKEN100405签名破坏
CREDENTIAL_CREATE_DATE_ILLEGAL100408创建日期格式非法
CREDENTIAL_EXPIRE_DATE_ILLEGAL100409到期日期格式非法
CREDENTIAL_CLAIM_NOT_EXISTS100410Claim数据不能为空
CREDENTIAL_ID_NOT_EXISTS100412ID为空
CREDENTIAL_CONTEXT_NOT_EXISTS100413context为空
CREDENTIAL_ISSUER_INVALID100418WeIdentity DID无效
CREDENTIAL_SIGNATURE_TYPE_ILLEGAL100429验证签名类型异常
ILLEGAL_INPUT160004参数为空

调用示例

  1. CredentialPojoService credentialPojoService = new CredentialPojoServiceImpl();
  2. CreateCredentialPojoArgs<Map<String, Object>> createCredentialPojoArgs = new CreateCredentialPojoArgs<Map<String, Object>>();
  3. createCredentialPojoArgs.setCptId(1017);
  4. createCredentialPojoArgs.setIssuer("did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7");
  5. createCredentialPojoArgs.setExpirationDate(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 100);
  6.  
  7. WeIdAuthentication weIdAuthentication = new WeIdAuthentication();
  8. weIdAuthentication.setWeId("did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7");
  9.  
  10. WeIdPrivateKey weIdPrivateKey = new WeIdPrivateKey();
  11. weIdPrivateKey.setPrivateKey("60866441986950167911324536025850958917764441489874006048340539971987791929772");
  12. weIdAuthentication.setWeIdPrivateKey(weIdPrivateKey);
  13.  
  14. weIdAuthentication.setWeIdPublicKeyId("did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7#key0");
  15. createCredentialPojoArgs.setWeIdAuthentication(weIdAuthentication);
  16.  
  17. Map<String, Object> claim = new HashMap<String, Object>();
  18. claim.put("name", "zhang san");
  19. claim.put("gender", "F");
  20. claim.put("age", 22);
  21. createCredentialPojoArgs.setClaim(claim);
  22.  
  23. //创建CredentialPojo
  24. ResponseData<CredentialPojo> response = credentialPojoService.createCredential(createCredentialPojoArgs);
  25.  
  26. ResponseData<String> resp = credentialPojoService.getCredentialPojoHash(response.getResult());
  1. 返回结果如:
  2. result: 0x06173e4b714d57565ae5ddf23c4e84cb0a9824cb72eab476303d2dd1cc0a4728
  3. errorCode: 0
  4. errorMessage: success
  5. transactionInfo:null

时序图

sequenceDiagramparticipant 调用者participant CredentialPojoService调用者->>CredentialPojoService: 调用GetCredentialPojoHash()CredentialPojoService->>CredentialPojoService: 入参非空、格式及合法性检查opt 入参校验失败CredentialPojoService—>>调用者: 报错,提示参数不合法并退出endCredentialPojoService->>CredentialPojoService: 生成凭证HashCredentialPojoService—>>调用者: 返回凭证Hash