globalis / universign-service
Universign服务的PHP库
0.1.6
2018-02-02 09:26 UTC
Requires
- phpxmlrpc/phpxmlrpc: ^4.2
This package is auto-updated.
Last update: 2024-08-29 04:33:25 UTC
README
示例
执行场景
需要签署的2份文件
- Template_1.pdf
- Template_2.pdf
2个签署者
签名计划,包括6个签名
- 在第一份文件上添加服务器签名章,
- 在第二份文件上添加服务器签名章,
- 第一个签署者在第一份文件上签字,
- 第一个签署者在第二份文件上签字,
- 第二个签署者在第一份文件上签字,
- 第二个签署者在第二份文件上签字。
- 签署者声明
<?php $signer1 = new \Globalis\Universign\Request\TransactionSigner(); $signer1 ->setFirstname('Jean') ->setLastname('Dupond') ->setPhoneNum('0999999999') ->setEmailAddress('jean.dupond@example.com') ->setSuccessURL('https://www.universign.eu/fr/sign/success/') ->setCancelURL('https://www.universign.eu/fr/sign/cancel/') ->setFailURL('https://www.universign.eu/fr/sign/failed/') ->setProfile('profil_vendeur'); $signer2 = new \Globalis\Universign\Request\TransactionSigner(); $signer2 ->setFirstname('Pierre') ->setLastname('Martin') ->setPhoneNum('0888888888') ->setEmailAddress('pierre.martin@example.com') ->setSuccessURL('https://www.universign.eu/fr/sign/success/') ->setCancelURL('https://www.universign.eu/fr/sign/cancel/') ->setFailURL('https://www.universign.eu/fr/sign/failed/') ->setProfile('profil_client'); $signers = [$signer1, $signer2];
- 待签署文件声明
<?php // Signature fields $signatureField1 = new \Globalis\Universign\Request\DocSignatureField(); $signatureField1->setPage(1) ->setX(100) ->setY(200) ->setSignerIndex(0) ->setPatternName('default') ->setLabel("Sur l'ensemble du template 1"); $signatureField2 = new \Globalis\Universign\Request\DocSignatureField(); $signatureField2->setPage(1) ->setX(350) ->setY(200) ->setSignerIndex(1) ->setPatternName('default') ->setLabel("Sur l'ensemble du template 2"); $signatureField3 = new \Globalis\Universign\Request\DocSignatureField(); $signatureField3->setPage(1) ->setX(100) ->setY(200) ->setSignerIndex(0) ->setPatternName('patternVendeur'); $signatureField4 = new \Globalis\Universign\Request\DocSignatureField(); $signatureField4->setPage(1) ->setX(350) ->setY(200) ->setSignerIndex(1) ->setPatternName('patternClient'); $signatureFieldsDoc1 = [$signatureField1, $signatureField2]; $signatureFieldsDoc2 = [$signatureField3, $signatureField4]; // Documents $doc1 = new \Globalis\Universign\Request\TransactionDocument(); $doc1->setPath('doc/Template_2.pdf') ->setSignatureFields($signatureFieldsDoc1); $doc2 = new \Globalis\Universign\Request\TransactionDocument(); $docs2->setPath('doc/Template_2.pdf') ->setSignatureFields($signatureFieldsDoc2);
- 创建请求并发送请求
<?php $request = new \Globalis\Universign\Request\TransactionRequest(); $request->addDocument($doc1) ->addDocument($doc2) ->setSigners($signers) ->setHandwrittenSignatureMode( \Globalis\Universign\Request\TransactionRequest::HANDWRITTEN_SIGNATURE_MODE_DIGITAL ) ->setMustContactFirstSigner(false) ->setFinalDocRequesterSent(true) ->setChainingMode( \Globalis\Universign\Request\TransactionRequest::CHAINING_MODE_WEB ) ->setDescription("Demonstration de la signature Universign") ->setProfile("profile_demo") ->setCertificateTypes('simple') ->setLanguage('fr'); // Create XmlRpc Client $client = new \PhpXmlRpc\Client('https://url.to.universign/end_point/'); $client->setCredentials( 'UNIVERSIGN_USER', 'UNIVERSIGN_PASSWORD' ); $requester = new \Globalis\Universign\Requester($client); // Return a \Globalis\Universign\Response\TransactionResponse (with transaction url and id) $response = $req->requestTransaction($request); $signatureUrl = $response->url; $transactionId = $response->id;
- 获取文件
<?php $response = $requester->getTransaction($transactionId); if ($response->status === \Globalis\UniversitransactionIdgn\Response\TransactionInfo::STATUS_COMPLETED) { $docs = $requester->getDocuments($transactionId); foreach ($docs as $doc) { // Doc content $doc->content; // Doc file_name $doc->name; } }