6. setService
基本信息
- 接口名称:com.webank.weid.rpc.WeIdService.setService
- 接口定义:ResponseData<Boolean> setService(SetServiceArgs setServiceArgs)
- 接口描述: 根据WeIdentity DID添加Service信息。
接口入参: com.webank.weid.protocol.request.SetServiceArgs
名称 | 类型 | 非空 | 说明 | 备注 |
---|---|---|---|---|
weId | String | Y | WeIdentity DID格式字符串 | 如:did:weid:101:0x….. |
type | String | Y | 类型 | 如:drivingCardService |
serviceEndpoint | String | Y | 服务端点 | 如:”https://weidentity.webank.com/endpoint/8377464” |
userWeIdPrivateKey | WeIdPrivateKey | Y | 交易私钥,后期鉴权使用,见下 |
com.webank.weid.protocol.base.WeIdPrivateKey
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
privateKey | String | 私钥 | 使用十进制数字表示 |
接口返回: com.webank.weid.protocol.response.ResponseData<Boolean>;
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
errorCode | Integer | 返回结果码 | |
errorMessage | String | 返回结果描述 | |
result | Boolean | 是否set成功 | |
transactionInfo | TransactionInfo | 交易信息 |
com.webank.weid.protocol.response.TransactionInfo
名称 | 类型 | 说明 | 备注 |
---|---|---|---|
blockNumber | BigInteger | 交易块高 | |
transactionHash | String | 交易hash | |
transactionIndex | BigInteger | 交易索引 |
此方法返回code
enum | code | desc |
---|---|---|
SUCCESS | 0 | 成功 |
WEID_INVALID | 100101 | 无效的WeIdentity DID |
WEID_PRIVATEKEY_INVALID | 100103 | 私钥格式非法 |
WEID_PRIVATEKEY_DOES_NOT_MATCH | 100106 | 私钥不与WeIdentity DID所对应 |
WEID_SERVICE_TYPE_OVERLIMIT | 100110 | type字段超长 |
TRANSACTION_TIMEOUT | 160001 | 超时 |
TRANSACTION_EXECUTE_ERROR | 160002 | 交易错误 |
UNKNOW_ERROR | 160003 | 其他错误 |
ILLEGAL_INPUT | 160004 | 参数为空 |
调用示例
- WeIdService weIdService = new WeIdServiceImpl();
- SetServiceArgs setServiceArgs = new SetServiceArgs();
- setServiceArgs.setWeId("did:weid:101:0x39e5e6f663ef77409144014ceb063713b65600e7");
- setServiceArgs.setType("drivingCardService");
- setServiceArgs.setServiceEndpoint("https://weidentity.webank.com/endpoint/8377464");
- WeIdPrivateKey weIdPrivateKey = new WeIdPrivateKey();
- weIdPrivateKey.setPrivateKey("60866441986950167911324536025850958917764441489874006048340539971987791929772");
- setServiceArgs.setUserWeIdPrivateKey(weIdPrivateKey);
- ResponseData<Boolean> response = weIdService.setService(setServiceArgs);
- 返回结果如下:
- result: true
- errorCode: 0
- errorMessage: success
- transactionInfo:(com.webank.weid.protocol.response.TransactionInfo)
- blockNumber: 30012
- transactionHash: 0xf4992c4d190a9338f13119125861aaa3fa86622de1ab6862d06c05c6e6d1d9be
- transactionIndex: 0
时序图
sequenceDiagramNote over 调用者:传入自己的WeIdentity DID及要用作<br>authentication的私钥,<br>以及service endpoint调用者->>WeIdentity SDK : 调用setAuthentication来添加认证。WeIdentity SDK->>WeIdentity SDK:拿私钥来重新加载合约对象WeIdentity SDK->>区块链节点: 调用智能合约区块链节点->>区块链节点: 检查调用者的身份是否和WeIdentity DID匹配opt 身份校验不通过区块链节点—>>WeIdentity SDK:报错,提示私钥不匹配并退出WeIdentity SDK—>>调用者:报错退出end区块链节点->>区块链节点:将service endpoint和WeIdentity DID以及上次记录的块高写到属性事件中区块链节点->>区块链节点:记录最新块高区块链节点—>>WeIdentity SDK:返回WeIdentity SDK—>>调用者:返回调用结果