赵贝尔/Universign

1.2.0 2020-08-03 17:54 UTC

This package is auto-updated.

Last update: 2024-09-25 16:36:18 UTC


README

Build Status Latest Stable Version Latest Unstable Version License Dependents

这个库是非官方的,不是由Universign开发的。它只包含用于Universign的常用功能:发送签名文档,下载文档。

如果您需要在您的网站上实现此服务需要帮助,请随时通过以下邮箱联系我:contact@pierrebelin.fr

这个库高度灵感来源于这个不再维护的库:https://github.com/globalis-ms/universign-service

如何使用

您可以将以下代码复制粘贴,它会自动连接到您的Universign账户。

填写常量

$ACCOUNT_USER_MAIL = 'contact@pierrebelin.fr';
$ACCOUNT_USER_PASSWORD = 'xxxxxxxxx';
$UNIVERSIGN_PROFILE = 'default'; // you don't have to change this one, if you want to, read the manual

创建签名字段

$signatureField1 = new DocSignatureField();
$signatureField1->setPage(1)
                ->setX(10)
                ->setY(230)
                ->setSignerIndex(0);

获取您的文档

$document = new TransactionDocument();
$document
    ->setContent(file_get_contents('path/to/file/file.pdf'))
    ->addSignatureField($signatureField1) // you can add multiples times ->addSignatureField($signatureField2) etc...
    ->setName('Document name');

创建签署者

$signer = new TransactionSigner();
$signer
    ->setFirstname('Pierre')
    ->setLastname('Belin')
    ->setEmailAddress('contact@pierrebelin.fr')
    ->setPhoneNum('0606060606')
    ->setBirthDate('19900131T00:00:00') // This format is needed yyyymmddT00:00:00 as string for 31/01/1990
    ->setSuccessURL('https://www.universign.eu/fr/sign/success/')
    ->setCancelURL('https://www.universign.eu/fr/sign/cancel/')
    ->setFailURL('https://www.universign.eu/fr/sign/failed/');
    

创建交易

$request = new TransactionRequest();
$request
    ->addSigner($signer) // you can add multiples times ->addSignatureField($signer2) etc...
    ->addDocument($document) // you can add multiples times ->addDocument($document2) etc...
    ->setProfile($UNIVERSIGN_PROFILE)
    ->setCustomId(uniqid()) // create your own ID to make easier to get later
    ->setMustContactFirstSigner(false)
    ->setFinalDocSent(true)
    ->setDescription("This is my description")
    ->setCertificateType(TransactionRequestCertificate::CERTIFICATE_CERTIFIED)
    ->setLanguage(TransactionRequestLanguage::FRENCH)
    ->setHandwrittenSignature(true)
    ->setChainingMode(TransactionRequestChainingMode::CHAINING_MODE_EMAIL);

交易请求

$requester = new Requester($ACCOUNT_USER_MAIL, $ACCOUNT_USER_PASSWORD, false);
$requester->requestTransaction($request);

交易响应

$transactionId = $response->getId();
$transactionUrl = $response->getUrl();

获取文档

$response = $requester->getDocuments('TRANSACTIONID');
$response = $requester->getDocumentsByCustomId('CUSTOMID');

获取交易信息

$response = $requester->getTransactionInfo('TRANSACTIONID');

发送SEPA

用以下内容替换您的文档

$sepaFrom = new SEPAThirdParty();
$sepaFrom
    ->setName('from')
    ->setAddress('this address')
    ->setPostalCode('69001')
    ->setCity('Lyon')
    ->setCountry('France');

$sepaTo = new SEPAThirdParty();
$sepaTo
    ->setName('to')
    ->setAddress('to address')
    ->setPostalCode('69002')
    ->setCity('Lyon')
    ->setCountry('France');

$sepa = new SEPAData();
$sepa
    ->setIcs('XXXXXXXXXXXXX')
    ->setIban('FR7616798000010000191892XXXX')
    ->setBic('TRZOFR21XXX')
    ->setDebtor($sepaFrom)
    ->setCreditor($sepaTo);

$document = new TransactionDocument();
$document
    ->setDocumentType(TransactionDocumentType::SEPA)
    ->setName('SEPA')
    ->setSEPAData($sepa);

问题

找不到类

别忘了包含您的自动加载和所有类

require __DIR__ . '/vendor/autoload.php';

use PierreBelin\Universign\{
    Request\TransactionDocument, 
    Request\TransactionSigner, 
    ...
};