ImzagerServices

<back to all web services

Verification

The following routes are available for this service:
All Verbs/Verification/{ClientKey}
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class VerifyDocumentDetails implements JsonSerializable
{
    public function __construct(
        /** @var ByteArray|null */
        public ?ByteArray $DocumentContent=null,
        /** @var string|null */
        public ?string $DocumentName=null,
        /** @var string|null */
        public ?string $DocumentType=null,
        /** @var string|null */
        public ?string $DocumentKey=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['DocumentContent'])) $this->DocumentContent = JsonConverters::from('ByteArray', $o['DocumentContent']);
        if (isset($o['DocumentName'])) $this->DocumentName = $o['DocumentName'];
        if (isset($o['DocumentType'])) $this->DocumentType = $o['DocumentType'];
        if (isset($o['DocumentKey'])) $this->DocumentKey = $o['DocumentKey'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->DocumentContent)) $o['DocumentContent'] = JsonConverters::to('ByteArray', $this->DocumentContent);
        if (isset($this->DocumentName)) $o['DocumentName'] = $this->DocumentName;
        if (isset($this->DocumentType)) $o['DocumentType'] = $this->DocumentType;
        if (isset($this->DocumentKey)) $o['DocumentKey'] = $this->DocumentKey;
        return empty($o) ? new class(){} : $o;
    }
}

class TSValidationResultItem implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ID=null,
        /** @var string|null */
        public ?string $Message=null,
        /** @var string|null */
        public ?string $Result=null,
        /** @var bool|null */
        public ?bool $Successed=null,
        /** @var array<TSValidationResultItem>|null */
        public ?array $Child=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Message'])) $this->Message = $o['Message'];
        if (isset($o['Result'])) $this->Result = $o['Result'];
        if (isset($o['Successed'])) $this->Successed = $o['Successed'];
        if (isset($o['Child'])) $this->Child = JsonConverters::fromArray('TSValidationResultItem', $o['Child']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Message)) $o['Message'] = $this->Message;
        if (isset($this->Result)) $o['Result'] = $this->Result;
        if (isset($this->Successed)) $o['Successed'] = $this->Successed;
        if (isset($this->Child)) $o['Child'] = JsonConverters::toArray('TSValidationResultItem', $this->Child);
        return empty($o) ? new class(){} : $o;
    }
}

class SgValidationResultItem implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ID=null,
        /** @var string|null */
        public ?string $Message=null,
        /** @var string|null */
        public ?string $Result=null,
        /** @var bool|null */
        public ?bool $Successed=null,
        /** @var SgValidationResultItem|null */
        public ?SgValidationResultItem $Child=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Message'])) $this->Message = $o['Message'];
        if (isset($o['Result'])) $this->Result = $o['Result'];
        if (isset($o['Successed'])) $this->Successed = $o['Successed'];
        if (isset($o['Child'])) $this->Child = JsonConverters::from('SgValidationResultItem', $o['Child']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Message)) $o['Message'] = $this->Message;
        if (isset($this->Result)) $o['Result'] = $this->Result;
        if (isset($this->Successed)) $o['Successed'] = $this->Successed;
        if (isset($this->Child)) $o['Child'] = JsonConverters::to('SgValidationResultItem', $this->Child);
        return empty($o) ? new class(){} : $o;
    }
}

class CertValidationResultItem implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ID=null,
        /** @var string|null */
        public ?string $Message=null,
        /** @var string|null */
        public ?string $Result=null,
        /** @var bool|null */
        public ?bool $Successed=null,
        /** @var CertValidationResultItem|null */
        public ?CertValidationResultItem $Child=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Message'])) $this->Message = $o['Message'];
        if (isset($o['Result'])) $this->Result = $o['Result'];
        if (isset($o['Successed'])) $this->Successed = $o['Successed'];
        if (isset($o['Child'])) $this->Child = JsonConverters::from('CertValidationResultItem', $o['Child']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Message)) $o['Message'] = $this->Message;
        if (isset($this->Result)) $o['Result'] = $this->Result;
        if (isset($this->Successed)) $o['Successed'] = $this->Successed;
        if (isset($this->Child)) $o['Child'] = JsonConverters::to('CertValidationResultItem', $this->Child);
        return empty($o) ? new class(){} : $o;
    }
}

class VerifySignerDetails implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $Cert_SubjectCN=null,
        /** @var string|null */
        public ?string $ID=null,
        /** @var X509Certificate2|null */
        public ?X509Certificate2 $SignerCertificate=null,
        /** @var string|null */
        public ?string $SignType=null,
        /** @var string|null */
        public ?string $SignAlgorithm=null,
        /** @var string|null */
        public ?string $HashAlgorithm=null,
        /** @var bool|null */
        public ?bool $SignStatusIsValid=null,
        /** @var string|null */
        public ?string $CertStatusValue=null,
        /** @var DateTime */
        public DateTime $SigningTime=new DateTime(),
        /** @var bool|null */
        public ?bool $IsTimeStampExist=null,
        /** @var VerifySignerDetails|null */
        public ?VerifySignerDetails $NextSigner=null,
        /** @var array<VerifySignerDetails>|null */
        public ?array $CounterSigners=null,
        /** @var array<TSValidationResultItem>|null */
        public ?array $TimeStampDetails=null,
        /** @var array<SgValidationResultItem>|null */
        public ?array $SignValidationDetails=null,
        /** @var array<CertValidationResultItem>|null */
        public ?array $CertValidationDetails=null,
        /** @var string|null */
        public ?string $Cert_SubjectSN=null,
        /** @var string|null */
        public ?string $Cert_Issuer=null,
        /** @var DateTime */
        public DateTime $Cert_ValidFrom=new DateTime(),
        /** @var DateTime */
        public DateTime $Cert_ValidTo=new DateTime(),
        /** @var string|null */
        public ?string $CertBase64=null,
        /** @var string|null */
        public ?string $SigningLocation=null,
        /** @var string|null */
        public ?string $SigningReason=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Cert_SubjectCN'])) $this->Cert_SubjectCN = $o['Cert_SubjectCN'];
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['SignerCertificate'])) $this->SignerCertificate = JsonConverters::from('X509Certificate2', $o['SignerCertificate']);
        if (isset($o['SignType'])) $this->SignType = $o['SignType'];
        if (isset($o['SignAlgorithm'])) $this->SignAlgorithm = $o['SignAlgorithm'];
        if (isset($o['HashAlgorithm'])) $this->HashAlgorithm = $o['HashAlgorithm'];
        if (isset($o['SignStatusIsValid'])) $this->SignStatusIsValid = $o['SignStatusIsValid'];
        if (isset($o['CertStatusValue'])) $this->CertStatusValue = $o['CertStatusValue'];
        if (isset($o['SigningTime'])) $this->SigningTime = JsonConverters::from('DateTime', $o['SigningTime']);
        if (isset($o['IsTimeStampExist'])) $this->IsTimeStampExist = $o['IsTimeStampExist'];
        if (isset($o['NextSigner'])) $this->NextSigner = JsonConverters::from('VerifySignerDetails', $o['NextSigner']);
        if (isset($o['CounterSigners'])) $this->CounterSigners = JsonConverters::fromArray('VerifySignerDetails', $o['CounterSigners']);
        if (isset($o['TimeStampDetails'])) $this->TimeStampDetails = JsonConverters::fromArray('TSValidationResultItem', $o['TimeStampDetails']);
        if (isset($o['SignValidationDetails'])) $this->SignValidationDetails = JsonConverters::fromArray('SgValidationResultItem', $o['SignValidationDetails']);
        if (isset($o['CertValidationDetails'])) $this->CertValidationDetails = JsonConverters::fromArray('CertValidationResultItem', $o['CertValidationDetails']);
        if (isset($o['Cert_SubjectSN'])) $this->Cert_SubjectSN = $o['Cert_SubjectSN'];
        if (isset($o['Cert_Issuer'])) $this->Cert_Issuer = $o['Cert_Issuer'];
        if (isset($o['Cert_ValidFrom'])) $this->Cert_ValidFrom = JsonConverters::from('DateTime', $o['Cert_ValidFrom']);
        if (isset($o['Cert_ValidTo'])) $this->Cert_ValidTo = JsonConverters::from('DateTime', $o['Cert_ValidTo']);
        if (isset($o['CertBase64'])) $this->CertBase64 = $o['CertBase64'];
        if (isset($o['SigningLocation'])) $this->SigningLocation = $o['SigningLocation'];
        if (isset($o['SigningReason'])) $this->SigningReason = $o['SigningReason'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Cert_SubjectCN)) $o['Cert_SubjectCN'] = $this->Cert_SubjectCN;
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->SignerCertificate)) $o['SignerCertificate'] = JsonConverters::to('X509Certificate2', $this->SignerCertificate);
        if (isset($this->SignType)) $o['SignType'] = $this->SignType;
        if (isset($this->SignAlgorithm)) $o['SignAlgorithm'] = $this->SignAlgorithm;
        if (isset($this->HashAlgorithm)) $o['HashAlgorithm'] = $this->HashAlgorithm;
        if (isset($this->SignStatusIsValid)) $o['SignStatusIsValid'] = $this->SignStatusIsValid;
        if (isset($this->CertStatusValue)) $o['CertStatusValue'] = $this->CertStatusValue;
        if (isset($this->SigningTime)) $o['SigningTime'] = JsonConverters::to('DateTime', $this->SigningTime);
        if (isset($this->IsTimeStampExist)) $o['IsTimeStampExist'] = $this->IsTimeStampExist;
        if (isset($this->NextSigner)) $o['NextSigner'] = JsonConverters::to('VerifySignerDetails', $this->NextSigner);
        if (isset($this->CounterSigners)) $o['CounterSigners'] = JsonConverters::toArray('VerifySignerDetails', $this->CounterSigners);
        if (isset($this->TimeStampDetails)) $o['TimeStampDetails'] = JsonConverters::toArray('TSValidationResultItem', $this->TimeStampDetails);
        if (isset($this->SignValidationDetails)) $o['SignValidationDetails'] = JsonConverters::toArray('SgValidationResultItem', $this->SignValidationDetails);
        if (isset($this->CertValidationDetails)) $o['CertValidationDetails'] = JsonConverters::toArray('CertValidationResultItem', $this->CertValidationDetails);
        if (isset($this->Cert_SubjectSN)) $o['Cert_SubjectSN'] = $this->Cert_SubjectSN;
        if (isset($this->Cert_Issuer)) $o['Cert_Issuer'] = $this->Cert_Issuer;
        if (isset($this->Cert_ValidFrom)) $o['Cert_ValidFrom'] = JsonConverters::to('DateTime', $this->Cert_ValidFrom);
        if (isset($this->Cert_ValidTo)) $o['Cert_ValidTo'] = JsonConverters::to('DateTime', $this->Cert_ValidTo);
        if (isset($this->CertBase64)) $o['CertBase64'] = $this->CertBase64;
        if (isset($this->SigningLocation)) $o['SigningLocation'] = $this->SigningLocation;
        if (isset($this->SigningReason)) $o['SigningReason'] = $this->SigningReason;
        return empty($o) ? new class(){} : $o;
    }
}

class VerifyResult implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $Result=null,
        /** @var string|null */
        public ?string $ErrorMesage=null,
        /** @var bool|null */
        public ?bool $IsValid=null,
        /** @var array<VerifyDocumentDetails>|null */
        public ?array $DocumentDetails=null,
        /** @var array<VerifySignerDetails>|null */
        public ?array $Signers=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Result'])) $this->Result = $o['Result'];
        if (isset($o['ErrorMesage'])) $this->ErrorMesage = $o['ErrorMesage'];
        if (isset($o['IsValid'])) $this->IsValid = $o['IsValid'];
        if (isset($o['DocumentDetails'])) $this->DocumentDetails = JsonConverters::fromArray('VerifyDocumentDetails', $o['DocumentDetails']);
        if (isset($o['Signers'])) $this->Signers = JsonConverters::fromArray('VerifySignerDetails', $o['Signers']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Result)) $o['Result'] = $this->Result;
        if (isset($this->ErrorMesage)) $o['ErrorMesage'] = $this->ErrorMesage;
        if (isset($this->IsValid)) $o['IsValid'] = $this->IsValid;
        if (isset($this->DocumentDetails)) $o['DocumentDetails'] = JsonConverters::toArray('VerifyDocumentDetails', $this->DocumentDetails);
        if (isset($this->Signers)) $o['Signers'] = JsonConverters::toArray('VerifySignerDetails', $this->Signers);
        return empty($o) ? new class(){} : $o;
    }
}

class VerificationResponse implements JsonSerializable
{
    public function __construct(
        /** @var VerifyResult|null */
        public ?VerifyResult $Result=null,
        /** @var bool|null */
        public ?bool $ServiceSuccessResult=null,
        /** @var string|null */
        public ?string $ErrorMesage=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Result'])) $this->Result = JsonConverters::from('VerifyResult', $o['Result']);
        if (isset($o['ServiceSuccessResult'])) $this->ServiceSuccessResult = $o['ServiceSuccessResult'];
        if (isset($o['ErrorMesage'])) $this->ErrorMesage = $o['ErrorMesage'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Result)) $o['Result'] = JsonConverters::to('VerifyResult', $this->Result);
        if (isset($this->ServiceSuccessResult)) $o['ServiceSuccessResult'] = $this->ServiceSuccessResult;
        if (isset($this->ErrorMesage)) $o['ErrorMesage'] = $this->ErrorMesage;
        return empty($o) ? new class(){} : $o;
    }
}

class Verification implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ClientKey=null,
        /** @var string|null */
        public ?string $AuthorizationID=null,
        /** @var int */
        public int $DocumentId=0,
        /** @var string|null */
        public ?string $UserSSN=null,
        /** @var string|null */
        public ?string $Mode=null,
        /** @var bool|null */
        public ?bool $IsContentInclude=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ClientKey'])) $this->ClientKey = $o['ClientKey'];
        if (isset($o['AuthorizationID'])) $this->AuthorizationID = $o['AuthorizationID'];
        if (isset($o['DocumentId'])) $this->DocumentId = $o['DocumentId'];
        if (isset($o['UserSSN'])) $this->UserSSN = $o['UserSSN'];
        if (isset($o['Mode'])) $this->Mode = $o['Mode'];
        if (isset($o['IsContentInclude'])) $this->IsContentInclude = $o['IsContentInclude'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ClientKey)) $o['ClientKey'] = $this->ClientKey;
        if (isset($this->AuthorizationID)) $o['AuthorizationID'] = $this->AuthorizationID;
        if (isset($this->DocumentId)) $o['DocumentId'] = $this->DocumentId;
        if (isset($this->UserSSN)) $o['UserSSN'] = $this->UserSSN;
        if (isset($this->Mode)) $o['Mode'] = $this->Mode;
        if (isset($this->IsContentInclude)) $o['IsContentInclude'] = $this->IsContentInclude;
        return empty($o) ? new class(){} : $o;
    }
}

PHP Verification DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Verification/{ClientKey} HTTP/1.1 
Host: imzagerservices.eyyubiye.bel.tr 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<Verification xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DaB.Imzager.Services.ServiceModel">
  <AuthorizationID>String</AuthorizationID>
  <ClientKey>String</ClientKey>
  <DocumentId>0</DocumentId>
  <IsContentInclude>false</IsContentInclude>
  <Mode>String</Mode>
  <UserSSN>String</UserSSN>
</Verification>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<VerificationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DaB.Imzager.Services.ServiceModel">
  <ErrorMesage>String</ErrorMesage>
  <Result>
    <DocumentDetails>
      <VerifyDocumentDetails>
        <DocumentContent>AA==</DocumentContent>
        <DocumentKey>String</DocumentKey>
        <DocumentName>String</DocumentName>
        <DocumentType>String</DocumentType>
      </VerifyDocumentDetails>
    </DocumentDetails>
    <ErrorMesage>String</ErrorMesage>
    <IsValid>false</IsValid>
    <Result>false</Result>
    <Signers>
      <VerifySignerDetails>
        <CertBase64>String</CertBase64>
        <CertStatusValue>String</CertStatusValue>
        <CertValidationDetails>
          <CertValidationResultItem>
            <Child>
              <Child>
                <Child i:nil="true" />
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </Child>
              <ID>String</ID>
              <Message>String</Message>
              <Result>String</Result>
              <Successed>false</Successed>
            </Child>
            <ID>String</ID>
            <Message>String</Message>
            <Result>String</Result>
            <Successed>false</Successed>
          </CertValidationResultItem>
        </CertValidationDetails>
        <Cert_Issuer>String</Cert_Issuer>
        <Cert_SubjectCN>String</Cert_SubjectCN>
        <Cert_SubjectSN>String</Cert_SubjectSN>
        <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
        <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
        <CounterSigners>
          <VerifySignerDetails>
            <CertBase64>String</CertBase64>
            <CertStatusValue>String</CertStatusValue>
            <CertValidationDetails>
              <CertValidationResultItem>
                <Child>
                  <Child>
                    <Child i:nil="true" />
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </CertValidationResultItem>
            </CertValidationDetails>
            <Cert_Issuer>String</Cert_Issuer>
            <Cert_SubjectCN>String</Cert_SubjectCN>
            <Cert_SubjectSN>String</Cert_SubjectSN>
            <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
            <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
            <CounterSigners>
              <VerifySignerDetails>
                <CertBase64>String</CertBase64>
                <CertStatusValue>String</CertStatusValue>
                <CertValidationDetails>
                  <CertValidationResultItem>
                    <Child>
                      <Child>
                        <Child i:nil="true" />
                        <ID>String</ID>
                        <Message>String</Message>
                        <Result>String</Result>
                        <Successed>false</Successed>
                      </Child>
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </CertValidationResultItem>
                </CertValidationDetails>
                <Cert_Issuer>String</Cert_Issuer>
                <Cert_SubjectCN>String</Cert_SubjectCN>
                <Cert_SubjectSN>String</Cert_SubjectSN>
                <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
                <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
                <CounterSigners i:nil="true" />
                <HashAlgorithm>String</HashAlgorithm>
                <ID>String</ID>
                <IsTimeStampExist>false</IsTimeStampExist>
                <NextSigner i:nil="true" />
                <SignAlgorithm>String</SignAlgorithm>
                <SignStatusIsValid>false</SignStatusIsValid>
                <SignType>String</SignType>
                <SignValidationDetails>
                  <SgValidationResultItem>
                    <Child>
                      <Child>
                        <Child i:nil="true" />
                        <ID>String</ID>
                        <Message>String</Message>
                        <Result>String</Result>
                        <Successed>false</Successed>
                      </Child>
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </SgValidationResultItem>
                </SignValidationDetails>
                <SignerCertificate xmlns:d9p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
                  <RawData i:nil="true" xmlns="" />
                </SignerCertificate>
                <SigningLocation>String</SigningLocation>
                <SigningReason>String</SigningReason>
                <SigningTime>0001-01-01T00:00:00</SigningTime>
                <TimeStampDetails>
                  <TSValidationResultItem>
                    <Child>
                      <TSValidationResultItem>
                        <Child>
                          <TSValidationResultItem>
                            <Child i:nil="true" />
                            <ID>String</ID>
                            <Message>String</Message>
                            <Result>String</Result>
                            <Successed>false</Successed>
                          </TSValidationResultItem>
                        </Child>
                        <ID>String</ID>
                        <Message>String</Message>
                        <Result>String</Result>
                        <Successed>false</Successed>
                      </TSValidationResultItem>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </TSValidationResultItem>
                </TimeStampDetails>
              </VerifySignerDetails>
            </CounterSigners>
            <HashAlgorithm>String</HashAlgorithm>
            <ID>String</ID>
            <IsTimeStampExist>false</IsTimeStampExist>
            <NextSigner>
              <CertBase64>String</CertBase64>
              <CertStatusValue>String</CertStatusValue>
              <CertValidationDetails>
                <CertValidationResultItem>
                  <Child>
                    <Child>
                      <Child i:nil="true" />
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </CertValidationResultItem>
              </CertValidationDetails>
              <Cert_Issuer>String</Cert_Issuer>
              <Cert_SubjectCN>String</Cert_SubjectCN>
              <Cert_SubjectSN>String</Cert_SubjectSN>
              <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
              <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
              <CounterSigners>
                <VerifySignerDetails i:nil="true" />
              </CounterSigners>
              <HashAlgorithm>String</HashAlgorithm>
              <ID>String</ID>
              <IsTimeStampExist>false</IsTimeStampExist>
              <NextSigner i:nil="true" />
              <SignAlgorithm>String</SignAlgorithm>
              <SignStatusIsValid>false</SignStatusIsValid>
              <SignType>String</SignType>
              <SignValidationDetails>
                <SgValidationResultItem>
                  <Child>
                    <Child>
                      <Child i:nil="true" />
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </SgValidationResultItem>
              </SignValidationDetails>
              <SignerCertificate xmlns:d8p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
                <RawData i:nil="true" xmlns="" />
              </SignerCertificate>
              <SigningLocation>String</SigningLocation>
              <SigningReason>String</SigningReason>
              <SigningTime>0001-01-01T00:00:00</SigningTime>
              <TimeStampDetails>
                <TSValidationResultItem>
                  <Child>
                    <TSValidationResultItem>
                      <Child>
                        <TSValidationResultItem>
                          <Child i:nil="true" />
                          <ID>String</ID>
                          <Message>String</Message>
                          <Result>String</Result>
                          <Successed>false</Successed>
                        </TSValidationResultItem>
                      </Child>
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </TSValidationResultItem>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </TSValidationResultItem>
              </TimeStampDetails>
            </NextSigner>
            <SignAlgorithm>String</SignAlgorithm>
            <SignStatusIsValid>false</SignStatusIsValid>
            <SignType>String</SignType>
            <SignValidationDetails>
              <SgValidationResultItem>
                <Child>
                  <Child>
                    <Child i:nil="true" />
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </SgValidationResultItem>
            </SignValidationDetails>
            <SignerCertificate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
              <RawData i:nil="true" xmlns="" />
            </SignerCertificate>
            <SigningLocation>String</SigningLocation>
            <SigningReason>String</SigningReason>
            <SigningTime>0001-01-01T00:00:00</SigningTime>
            <TimeStampDetails>
              <TSValidationResultItem>
                <Child>
                  <TSValidationResultItem>
                    <Child>
                      <TSValidationResultItem>
                        <Child i:nil="true" />
                        <ID>String</ID>
                        <Message>String</Message>
                        <Result>String</Result>
                        <Successed>false</Successed>
                      </TSValidationResultItem>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </TSValidationResultItem>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </TSValidationResultItem>
            </TimeStampDetails>
          </VerifySignerDetails>
        </CounterSigners>
        <HashAlgorithm>String</HashAlgorithm>
        <ID>String</ID>
        <IsTimeStampExist>false</IsTimeStampExist>
        <NextSigner>
          <CertBase64>String</CertBase64>
          <CertStatusValue>String</CertStatusValue>
          <CertValidationDetails>
            <CertValidationResultItem>
              <Child>
                <Child>
                  <Child i:nil="true" />
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </Child>
              <ID>String</ID>
              <Message>String</Message>
              <Result>String</Result>
              <Successed>false</Successed>
            </CertValidationResultItem>
          </CertValidationDetails>
          <Cert_Issuer>String</Cert_Issuer>
          <Cert_SubjectCN>String</Cert_SubjectCN>
          <Cert_SubjectSN>String</Cert_SubjectSN>
          <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
          <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
          <CounterSigners>
            <VerifySignerDetails>
              <CertBase64>String</CertBase64>
              <CertStatusValue>String</CertStatusValue>
              <CertValidationDetails>
                <CertValidationResultItem>
                  <Child>
                    <Child>
                      <Child i:nil="true" />
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </CertValidationResultItem>
              </CertValidationDetails>
              <Cert_Issuer>String</Cert_Issuer>
              <Cert_SubjectCN>String</Cert_SubjectCN>
              <Cert_SubjectSN>String</Cert_SubjectSN>
              <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
              <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
              <CounterSigners>
                <VerifySignerDetails i:nil="true" />
              </CounterSigners>
              <HashAlgorithm>String</HashAlgorithm>
              <ID>String</ID>
              <IsTimeStampExist>false</IsTimeStampExist>
              <NextSigner i:nil="true" />
              <SignAlgorithm>String</SignAlgorithm>
              <SignStatusIsValid>false</SignStatusIsValid>
              <SignType>String</SignType>
              <SignValidationDetails>
                <SgValidationResultItem>
                  <Child>
                    <Child>
                      <Child i:nil="true" />
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </SgValidationResultItem>
              </SignValidationDetails>
              <SignerCertificate xmlns:d8p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
                <RawData i:nil="true" xmlns="" />
              </SignerCertificate>
              <SigningLocation>String</SigningLocation>
              <SigningReason>String</SigningReason>
              <SigningTime>0001-01-01T00:00:00</SigningTime>
              <TimeStampDetails>
                <TSValidationResultItem>
                  <Child>
                    <TSValidationResultItem>
                      <Child>
                        <TSValidationResultItem>
                          <Child i:nil="true" />
                          <ID>String</ID>
                          <Message>String</Message>
                          <Result>String</Result>
                          <Successed>false</Successed>
                        </TSValidationResultItem>
                      </Child>
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </TSValidationResultItem>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </TSValidationResultItem>
              </TimeStampDetails>
            </VerifySignerDetails>
          </CounterSigners>
          <HashAlgorithm>String</HashAlgorithm>
          <ID>String</ID>
          <IsTimeStampExist>false</IsTimeStampExist>
          <NextSigner>
            <CertBase64>String</CertBase64>
            <CertStatusValue>String</CertStatusValue>
            <CertValidationDetails>
              <CertValidationResultItem>
                <Child>
                  <Child>
                    <Child i:nil="true" />
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </CertValidationResultItem>
            </CertValidationDetails>
            <Cert_Issuer>String</Cert_Issuer>
            <Cert_SubjectCN>String</Cert_SubjectCN>
            <Cert_SubjectSN>String</Cert_SubjectSN>
            <Cert_ValidFrom>0001-01-01T00:00:00</Cert_ValidFrom>
            <Cert_ValidTo>0001-01-01T00:00:00</Cert_ValidTo>
            <CounterSigners>
              <VerifySignerDetails i:nil="true" />
            </CounterSigners>
            <HashAlgorithm>String</HashAlgorithm>
            <ID>String</ID>
            <IsTimeStampExist>false</IsTimeStampExist>
            <NextSigner i:nil="true" />
            <SignAlgorithm>String</SignAlgorithm>
            <SignStatusIsValid>false</SignStatusIsValid>
            <SignType>String</SignType>
            <SignValidationDetails>
              <SgValidationResultItem>
                <Child>
                  <Child>
                    <Child i:nil="true" />
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </SgValidationResultItem>
            </SignValidationDetails>
            <SignerCertificate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
              <RawData i:nil="true" xmlns="" />
            </SignerCertificate>
            <SigningLocation>String</SigningLocation>
            <SigningReason>String</SigningReason>
            <SigningTime>0001-01-01T00:00:00</SigningTime>
            <TimeStampDetails>
              <TSValidationResultItem>
                <Child>
                  <TSValidationResultItem>
                    <Child>
                      <TSValidationResultItem>
                        <Child i:nil="true" />
                        <ID>String</ID>
                        <Message>String</Message>
                        <Result>String</Result>
                        <Successed>false</Successed>
                      </TSValidationResultItem>
                    </Child>
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </TSValidationResultItem>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </TSValidationResultItem>
            </TimeStampDetails>
          </NextSigner>
          <SignAlgorithm>String</SignAlgorithm>
          <SignStatusIsValid>false</SignStatusIsValid>
          <SignType>String</SignType>
          <SignValidationDetails>
            <SgValidationResultItem>
              <Child>
                <Child>
                  <Child i:nil="true" />
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </Child>
              <ID>String</ID>
              <Message>String</Message>
              <Result>String</Result>
              <Successed>false</Successed>
            </SgValidationResultItem>
          </SignValidationDetails>
          <SignerCertificate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
            <RawData i:nil="true" xmlns="" />
          </SignerCertificate>
          <SigningLocation>String</SigningLocation>
          <SigningReason>String</SigningReason>
          <SigningTime>0001-01-01T00:00:00</SigningTime>
          <TimeStampDetails>
            <TSValidationResultItem>
              <Child>
                <TSValidationResultItem>
                  <Child>
                    <TSValidationResultItem>
                      <Child i:nil="true" />
                      <ID>String</ID>
                      <Message>String</Message>
                      <Result>String</Result>
                      <Successed>false</Successed>
                    </TSValidationResultItem>
                  </Child>
                  <ID>String</ID>
                  <Message>String</Message>
                  <Result>String</Result>
                  <Successed>false</Successed>
                </TSValidationResultItem>
              </Child>
              <ID>String</ID>
              <Message>String</Message>
              <Result>String</Result>
              <Successed>false</Successed>
            </TSValidationResultItem>
          </TimeStampDetails>
        </NextSigner>
        <SignAlgorithm>String</SignAlgorithm>
        <SignStatusIsValid>false</SignStatusIsValid>
        <SignType>String</SignType>
        <SignValidationDetails>
          <SgValidationResultItem>
            <Child>
              <Child>
                <Child i:nil="true" />
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </Child>
              <ID>String</ID>
              <Message>String</Message>
              <Result>String</Result>
              <Successed>false</Successed>
            </Child>
            <ID>String</ID>
            <Message>String</Message>
            <Result>String</Result>
            <Successed>false</Successed>
          </SgValidationResultItem>
        </SignValidationDetails>
        <SignerCertificate xmlns:d5p1="http://schemas.datacontract.org/2004/07/System.Security.Cryptography.X509Certificates">
          <RawData i:nil="true" xmlns="" />
        </SignerCertificate>
        <SigningLocation>String</SigningLocation>
        <SigningReason>String</SigningReason>
        <SigningTime>0001-01-01T00:00:00</SigningTime>
        <TimeStampDetails>
          <TSValidationResultItem>
            <Child>
              <TSValidationResultItem>
                <Child>
                  <TSValidationResultItem>
                    <Child i:nil="true" />
                    <ID>String</ID>
                    <Message>String</Message>
                    <Result>String</Result>
                    <Successed>false</Successed>
                  </TSValidationResultItem>
                </Child>
                <ID>String</ID>
                <Message>String</Message>
                <Result>String</Result>
                <Successed>false</Successed>
              </TSValidationResultItem>
            </Child>
            <ID>String</ID>
            <Message>String</Message>
            <Result>String</Result>
            <Successed>false</Successed>
          </TSValidationResultItem>
        </TimeStampDetails>
      </VerifySignerDetails>
    </Signers>
  </Result>
  <ServiceSuccessResult>false</ServiceSuccessResult>
</VerificationResponse>