2. createWeId

基本信息

  1. 接口名称:com.webank.weid.rpc.WeIdService.createWeId
  2. 接口定义:ResponseData<String> createWeId(CreateWeIdArgs createWeIdArgs)
  3. 接口描述: 根据传入的公私钥,链上注册WeIdentity DID,并返回WeIdentity DID

接口入参: com.webank.weid.protocol.request.CreateWeIdArgs

名称类型非空说明备注
publicKeyStringY数字公钥
weIdPrivateKeyWeIdPrivateKeyY 后期鉴权使用

com.webank.weid.protocol.base.WeIdPrivateKey

名称类型说明备注
privateKeyString私钥使用十进制数字表示

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

名称类型说明备注
errorCodeInteger返回结果码
errorMessageString返回结果描述
resultString公钥WeIdentity DID格式字符串如:did:weid:0x………………….
transactionInfoTransactionInfo交易信息

com.webank.weid.protocol.response.TransactionInfo

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

此方法返回code

enumcodedesc
SUCCESS0成功
WEID_PUBLICKEY_INVALID100102公钥无效
WEID_PRIVATEKEY_INVALID100103私钥格式非法
WEID_ALREADY_EXIST100105WeIdentity DID已存在
WEID_PRIVATEKEY_DOES_NOT_MATCH100106私钥不与WeIdentity DID所对应
WEID_PUBLICKEY_AND_PRIVATEKEY_NOT_MATCHED100108公私钥不成对
TRANSACTION_TIMEOUT160001超时
TRANSACTION_EXECUTE_ERROR160002交易错误
UNKNOW_ERROR160003其他异常
ILLEGAL_INPUT160004参数为空

调用示例

  1. WeIdService weIdService = new WeIdServiceImpl();
  2.  
  3. CreateWeIdArgs createWeIdArgs = new CreateWeIdArgs();
  4. createWeIdArgs.setPublicKey(
  5. "2905679808560626772263712571437125497429146398815877180317365034921958007199576809718056336050058032599743534507469742764670961100255274766148096681073592");
  6.  
  7. WeIdPrivateKey weIdPrivateKey = new WeIdPrivateKey();
  8. weIdPrivateKey.setPrivateKey("7581560237967740187496354914151086729152742173850631851769274217992481997665");
  9.  
  10. createWeIdArgs.setWeIdPrivateKey(weIdPrivateKey);
  11.  
  12. ResponseData<String> response = weIdService.createWeId(createWeIdArgs);
  1. 输出结果如下:
  2. result: did:weid:101:0xd9aeaa982fc21ea9addaf09e4f0c6a23a08d306a
  3. errorCode: 0
  4. errorMessage: success
  5. transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
  6. blockNumber: 30007
  7. transactionHash: 0x7f9e0fe2bcb0e77bad9aa5c38f8440e71a48dc29406d9ad43e12130afd211c67
  8. 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