1. createCredential
基本信息
- 接口名称:com.webank.weid.rpc.CredentialService.createCredential
- 接口定义:ResponseData<CredentialWrapper> createCredential(CreateCredentialArgs args)
- 接口描述: 创建电子凭证。
接口入参: com.webank.weid.protocol.request.CreateCredentialArgs
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
cptId | Integer | Y | CPT编号 | |
issuer | String | Y | 发行方WeIdentity DID | WeIdentity DID格式数据 |
expirationDate | Long | Y | 到期日 | |
claim | Map<String, Object> | Y | Map类型的claim数据 | 凭证所需数据 |
weIdPrivateKey | WeIdPrivateKey | Y | 签名所用Issuer WeIdentity DID私钥,见下 |
com.webank.weid.protocol.base.WeIdPrivateKey
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
privateKey | String | Y | 私钥值 | 使用十进制数字表示 |
接口返回: com.webank.weid.protocol.response.ResponseData<CredentialWrapper>;
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
errorCode | Integer | 返回结果码 | |
errorMessage | String | 返回结果描述 | |
result | CredentialWrapper | 见下 | |
transactionInfo | TransactionInfo | 交易信息 |
com.webank.weid.protocol.response.TransactionInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
blockNumber | BigInteger | 交易块高 | |
transactionHash | String | 交易hash | |
transactionIndex | BigInteger | 交易索引 |
com.webank.weid.protocol.base.CredentialWrapper
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
credential | Credential | Y | 凭证信息 | 具体见下 |
disclosure | Map<String, Object> | Y | 披露属性 | 默认为全披露 |
com.webank.weid.protocol.base.Credential
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
context | String | Y | 版本 | 默认为v1 |
id | String | Y | 证书ID | |
cptId | Integer | Y | cptId | |
issuer | String | Y | WeIdentity DID | |
issuanceDate | Long | Y | 创建日期 | |
expirationDate | Long | Y | 到期日期 | |
claim | Map<String, Object> | Y | Claim数据 | |
proof | Map<String, Object> | Y | 签名数据结构体 |
此方法返回code
enum | code | desc |
---|---|---|
SUCCESS | 0 | 成功 |
CPT_JSON_SCHEMA_INVALID | 100301 | JsonSchema无效 |
CPT_ID_ILLEGAL | 100303 | cptId无效 |
CREDENTIAL_ERROR | 100400 | Credential标准错误 |
CREDENTIAL_CREATE_DATE_ILLEGAL | 100408 | 创建日期格式非法 |
CREDENTIAL_EXPIRE_DATE_ILLEGAL | 100409 | 到期日期无效 |
CREDENTIAL_CLAIM_NOT_EXISTS | 100410 | Claim数据不能为空 |
CREDENTIAL_CLAIM_DATA_ILLEGAL | 100411 | Claim数据无效 |
CREDENTIAL_PRIVATE_KEY_NOT_EXISTS | 100415 | 私钥为空 |
CREDENTIAL_ISSUER_INVALID | 100418 | WeIdentity DID无效 |
ILLEGAL_INPUT | 160004 | 参数为空 |
调用示例
- CredentialService credentialService = new CredentialServiceImpl();
- HashMap<String, Object> claim = new HashMap<String, Object>(3);
- claim.put("name", "zhang san");
- claim.put("gender", "F");
- claim.put("age", 18);
- CreateCredentialArgs createCredentialArgs = new CreateCredentialArgs();
- createCredentialArgs.setClaim(claim);
- createCredentialArgs.setCptId(1017);
- createCredentialArgs.setExpirationDate(1551448312461L);
- createCredentialArgs.setIssuer("did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7");
- WeIdPrivateKey weIdPrivateKey = new WeIdPrivateKey();
- weIdPrivateKey.setPrivateKey("60866441986950167911324536025850958917764441489874006048340539971987791929772");
- createCredentialArgs.setWeIdPrivateKey(weIdPrivateKey);
- ResponseData<CredentialWrapper> response = credentialService.createCredential(createCredentialArgs);
- 返回结果如:
- result:(com.webank.weid.protocol.base.CredentialWrapper)
- credential:(com.webank.weid.protocol.base.Credential)
- context: https://github.com/WeBankFinTech/WeIdentity/blob/master/context/v1
- id: f931b882-00ab-4cb0-9e83-d9bb57212e81
- cptId: 1017
- issuer: did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7
- issuanceDate: 1560416978296
- expirationDate: 1551448312461
- claim:(java.util.HashMap)
- name: zhang san
- gender: F
- age: 18
- proof:(java.util.HashMap)
- creator: did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7
- signature: HHQwJ9eEpyv/BgwtWDveFYAPsKOPtEEWt6ieb28PS76pDwlpFKtbh9Ygog8SUPIXUaWNYS2pLkk4E91hpP8IdbU=
- created: 1560416978296
- type: Secp256k1
- disclosure:(java.util.HashMap)
- name: 1
- gender: 1
- age: 1
- errorCode: 0
- errorMessage: success
- transactionInfo:null
时序图
sequenceDiagramparticipant 调用者participant CredentialService调用者->>CredentialService: 调用CreateCredential()CredentialService->>CredentialService: 入参非空、格式及合法性检查opt 入参校验失败CredentialService—>>调用者: 报错,提示参数不合法并退出endCredentialService->>CredentialService: 生成签发日期、生成数字签名CredentialService—>>调用者: 返回凭证