6. createPresentation

    接口入参:

    java.uitl.List<com.webank.weid.protocol.base.CredentialPojo>

    com.webank.weid.protocol.base.CredentialPojo

    名称类型非空说明备注
    idIntegerYpolcyId策略编号
    orgIdStringY机构编号
    versionIntegerY版本
    policyPublisherWeIdStringYWeIdentity DID创建policy机构的WeIdentity DID
    policyMap<Integer, ClaimPolicy>Y策略配置key: CPTID, value: 披露策略对象
    extraMap<String, String>N扩展字段

    com.webank.weid.protocol.base.Challenge

    com.webank.weid.protocol.base.WeIdAuthentication

    名称类型非空说明备注
    weIdStringYCPT发布者的WeIdentity DIDWeIdentity DID的格式传入
    weIdPublicKeyIdStringY公钥Id
    weIdPrivateKeyWeIdPrivateKeyY 交易私钥,见下

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

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

    com.webank.weid.protocol.base.PresentationE

    此方法返回code

    enumcodedesc
    SUCCESS0成功
    WEID_PRIVATEKEY_DOES_NOT_MATCH100106用户weId不匹配其私钥
    CPT_ID_ILLEGAL100303cptId无效
    CREDENTIAL_ERROR100400Credential标准错误
    CREDENTIAL_SIGNATURE_BROKEN100405签名破坏
    CREDENTIAL_CREATE_DATE_ILLEGAL100408创建日期格式非法
    CREDENTIAL_EXPIRE_DATE_ILLEGAL100409到期日期格式非法
    CREDENTIAL_CLAIM_NOT_EXISTS100410Claim数据不能为空
    CREDENTIAL_CLAIM_DATA_ILLEGAL100411Claim数据无效
    CREDENTIAL_ID_NOT_EXISTS100412ID为空
    CREDENTIAL_CONTEXT_NOT_EXISTS100413context为空
    CREDENTIAL_ISSUER_INVALID100418WeIdentity DID无效
    CREDENTIAL_CLAIM_POLICY_NOT_EXIST100420披露策略为null
    CREDENTIAL_POLICY_FORMAT_DOSE_NOT_MATCH_CLAIM100427披露策略与Claim不匹配
    CREDENTIAL_SIGNATURE_TYPE_ILLEGAL100429验证签名类型异常
    PRESENTATION_CHALLENGE_INVALID100600challenge无效
    PRESENTATION_CHALLENGE_WEID_MISMATCH100601challenge中的weId不匹配用户的weId
    PRESENTATION_POLICY_INVALID100602policy无效
    PRESENTATION_CREDENTIALLIST_MISMATCH_CLAIM_POLICY100603credentialList不匹配Policy
    PRESENTATION_WEID_PUBLICKEY_ID_INVALID100604公钥编号无效
    PRESENTATION_POLICY_PUBLISHER_WEID_INVALID100609policy中的publisherWeId无效
    PRESENTATION_POLICY_PUBLISHER_WEID_NOT_EXIST100610policy中的publisherWeId不存在
    UNKNOW_ERROR160003未知异常
    ILLEGAL_INPUT160004参数非法

    调用示例

    sequenceDiagramparticipant 调用者participant CredentialPojoService调用者->>CredentialPojoService: 调用verify()CredentialPojoService->>CredentialPojoService: 入参非空、格式及合法性检查opt 入参校验失败CredentialPojoService—>>调用者: 报错,提示参数不合法并退出endloop 遍历credentialPojo列表CredentialPojoService->>CredentialPojoService: 根据credentialPojo中的cptId获取对应的claimPolicyopt claimPolicyCredentialPojoService—>>调用者: continueendCredentialPojoService->>CredentialPojoService: 根据claimPolicy,调用createSelectiveCredential()方法,做选择性披露opt 选择性披露失败CredentialPojoService—>>调用者: 失败退出endendCredentialPojoService->>CredentialPojoService: 设置context等元数据属性CredentialPojoService->>CredentialPojoService: 对presentation整体签名,放入proof结构,同时设置其他proof属性,用于验证CredentialPojoService—>>调用者: 返回成功