2. createWeId
基本信息
- 接口名称:com.webank.weid.rpc.WeIdService.createWeId
- 接口定义:ResponseData<String> createWeId(CreateWeIdArgs createWeIdArgs)
- 接口描述: 根据传入的公私钥,链上注册WeIdentity DID,并返回WeIdentity DID。
接口入参: com.webank.weid.protocol.request.CreateWeIdArgs
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
publicKey | String | Y | 数字公钥 | |
weIdPrivateKey | WeIdPrivateKey | Y | 后期鉴权使用 |
com.webank.weid.protocol.base.WeIdPrivateKey
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
privateKey | String | 私钥 | 使用十进制数字表示 |
接口返回: com.webank.weid.protocol.response.ResponseData<String>;
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
errorCode | Integer | 返回结果码 | |
errorMessage | String | 返回结果描述 | |
result | String | 公钥WeIdentity DID格式字符串 | 如:did:weid:0x…………………. |
transactionInfo | TransactionInfo | 交易信息 |
com.webank.weid.protocol.response.TransactionInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
blockNumber | BigInteger | 交易块高 | |
transactionHash | String | 交易hash | |
transactionIndex | BigInteger | 交易索引 |
此方法返回code
enum | code | desc |
---|---|---|
SUCCESS | 0 | 成功 |
WEID_PUBLICKEY_INVALID | 100102 | 公钥无效 |
WEID_PRIVATEKEY_INVALID | 100103 | 私钥格式非法 |
WEID_ALREADY_EXIST | 100105 | WeIdentity DID已存在 |
WEID_PRIVATEKEY_DOES_NOT_MATCH | 100106 | 私钥不与WeIdentity DID所对应 |
WEID_PUBLICKEY_AND_PRIVATEKEY_NOT_MATCHED | 100108 | 公私钥不成对 |
TRANSACTION_TIMEOUT | 160001 | 超时 |
TRANSACTION_EXECUTE_ERROR | 160002 | 交易错误 |
UNKNOW_ERROR | 160003 | 其他异常 |
ILLEGAL_INPUT | 160004 | 参数为空 |
调用示例
- WeIdService weIdService = new WeIdServiceImpl();
- CreateWeIdArgs createWeIdArgs = new CreateWeIdArgs();
- createWeIdArgs.setPublicKey(
- "2905679808560626772263712571437125497429146398815877180317365034921958007199576809718056336050058032599743534507469742764670961100255274766148096681073592");
- WeIdPrivateKey weIdPrivateKey = new WeIdPrivateKey();
- weIdPrivateKey.setPrivateKey("7581560237967740187496354914151086729152742173850631851769274217992481997665");
- createWeIdArgs.setWeIdPrivateKey(weIdPrivateKey);
- ResponseData<String> response = weIdService.createWeId(createWeIdArgs);
- 输出结果如下:
- result: did:weid:101:0xd9aeaa982fc21ea9addaf09e4f0c6a23a08d306a
- errorCode: 0
- errorMessage: success
- transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
- blockNumber: 30007
- transactionHash: 0x7f9e0fe2bcb0e77bad9aa5c38f8440e71a48dc29406d9ad43e12130afd211c67
- transactionIndex: 0
时序图
sequenceDiagramNote over 调用者:传入自己的WeIdentity DID及用作authentication的私钥调用者->>WeIdentity SDK:调用CreateWeID()WeIdentity SDK->>区块链节点:调用智能合约区块链节点->>区块链节点: 检查调用者的身份是否和WeIdentity DID匹配opt 身份校验不通过区块链节点—>>WeIdentity SDK:报错,提示私钥不匹配并退出WeIdentity SDK—>>调用者:报错退出end区块链节点->>区块链节点 : 以事件的方式记录created属性和public key属性区块链节点->>区块链节点 : 记录当前的最新块高区块链节点—>>WeIdentity SDK: 创建成功WeIdentity SDK—>>调用者:新创建好的WeIdentity DID