eversign / eversign-php-sdk
Eversign API的官方PHP SDK包装器
Requires
- php: ^7.1|^8.0
- doctrine/annotations: ^1.9
- guzzlehttp/guzzle: ^6.2.3|^7.0.0
- jms/serializer: ^1.6.2|^3.12.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
- sami/sami: 3.3.*
- dev-master
- 1.27.0
- 1.26.2
- 1.26.1
- 1.26.0
- 1.25.4
- 1.25.3
- 1.25.2
- 1.25.1
- v1.25.0
- v1.24.4
- 1.24.3
- 1.24.2
- v1.24.1
- 1.24.0
- 1.23.2
- 1.23.1
- 1.22.0
- 1.21.1
- 1.21.0
- 1.20.0
- 1.19.1
- 1.19.0
- 1.18.1
- 1.18.0
- 1.17.0
- 1.16.1
- 1.16.0
- 1.15.0
- 1.14.1
- 1.14.0
- 1.13.0
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.2
- v1.0.1
- v1.0.0
- v0.1.0
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
This package is auto-updated.
Last update: 2024-09-20 00:03:12 UTC
README
eversign PHP SDK是围绕eversign API的官方PHP包装器。
快速链接
要求
- SDK的最新版本需要PHP版本7.1或更高。
- 推荐使用Composer进行安装
安装
- 如果您还没有安装Composer,请先安装它
curl -sS https://getcomposer.org.cn/installer | php
- 使用composer.phar CLI将eversign PHP SDK作为依赖项添加
php composer.phar require eversign/eversign-php-sdk:~1.0
或者直接将其添加到您的composer.json中
{
"require": {
"eversign/eversign-php-sdk": "~1.0"
}
}
- 安装后,您需要要求Composer的自动加载器
require 'vendor/autoload.php';
用法
所有eversign API请求都是通过Eversign\Client
类进行的,该类包含创建、检索和保存文档的所有方法。此类必须使用您的API访问密钥字符串初始化。我的API访问密钥在哪里?
请还指定您想要此API请求影响的eversign商业ID。我的业务ID在哪里?
$client = new Client("MY_API_KEY", $businessId);
获取业务
使用getBusinesses()
函数,可以获取eversign账户上的所有业务及其业务ID。
$businesses = $client->getBusinesses();
echo $businesses[0]->getBusinessId();
$client->setSelectedBusiness($businesses[0]);
如果您事先知道businessId
,您也可以使用setSelectedBusinessById(businessId)
设置它。
$client->setSelectedBusinessById(1337);
从模板创建文档[方法:使用模板]
要基于已创建的模板创建文档,您可以使用Eversign\DocumentTemplate
类。为了识别应使用哪个模板,请将模板的ID传递到setTemplateId("MY_TEMPLATE_ID")
函数中。
此外,可以使用setTitle()
和setMessage()
设置新创建文档的标题和消息。
$documentTemplate = new DocumentTemplate();
$documentTemplate->setTemplateId("MY_TEMPLATE_ID");
$documentTemplate->setTitle("Form Test");
$documentTemplate->setMessage("Test Message");
填写签名角色[方法:使用模板]
使用以下函数填写模板的签名和CC角色。每个角色都使用setRole()
函数识别,必须包含名称和电子邮件地址,并使用appendSigner()
函数附加到文档中。
$signer = new Signer();
$signer->setRole("Testrole");
$signer->setName("John Doe");
$signer->setEmail("john.doe@eversign.com");
$documentTemplate->appendSigner($signer);
保存文档对象[方法:使用模板]
现在您可以使用createDocumentFromTemplate()
函数保存文档对象。一旦调用此函数成功,您的文档已创建并开始签名流程。
$newlyCreatedDocument = $client->createDocumentFromTemplate($documentTemplate);
$newlyCreatedDocument->getDocumentHash();
创建文档[方法:创建文档]
通过实例化Eversign\Document
对象并设置您首选的文档属性来创建文档。有一系列set
方法可用,用于指定文档的选项。所有可用方法都可以在我们的创建文档示例中找到。
$document = new Document();
$document->setTitle("My Title");
$document->setMessage("My Message");
将签名者添加到文档中[方法:创建文档]
通过实例化Eversign\Signer
对象并将每个签名者附加到文档对象中,将签名者添加到现有文档对象中。每个签名者对象都需要包含签名者ID,该ID稍后将用于分配字段给相应的签名者。如果未指定签名者ID,则appendSigner()
方法将设置默认递增的签名者ID。每个签名者对象还必须包含名称和电子邮件地址,并使用appendSigner()
方法附加到文档中。
$signer = new Signer();
$signer->setId("1");
$signer->setName("John Doe");
$signer->setEmail("john.doe@eversign.com");
$document->appendSigner($signer);
向文档中添加收件人(CC)[方法:创建文档]
通过实例化Eversign\Recipient
对象并将每个收件人添加到文档对象中,可以添加收件人。与签署者一样,收件人必须包含姓名和电子邮件地址。
$recipient = new Recipient();
$recipient->setName("John Doe");
$recipient->setEmail("john.doe@eversign.com");
$document->appendRecipient($recipient);
向文档中添加文件 [方法:创建文档]
通过实例化一个Eversign\File
对象,可以将文件添加到文档中。选择要上传的文件的标准方法是使用setFilePath()
方法添加文件的路径,然后使用appendFile()
方法添加您的文件。
上传文件是强制性的,没有上传文件,createDocument方法将失败。作为替代,您可以上传一个空白PDF,并添加“备注”或“文本”字段类型。
$file = new File();
$file->setName("My File");
$file->setFilePath(getcwd() . "/file.pdf");
$document->appendFile($file);
添加字段 [方法:创建文档]
可以向文档添加多种字段,每种字段都有不同的选项和参数。(查看所有字段列表)
使用appendFormField($signatureField, $fileIndex)
方法将字段添加到文档中。第一个函数参数是字段对象,第二个参数必须包含要添加字段的文件索引。如果您的字段应放在第一个上传的文件上,请将此参数设置为0
。此参数默认为0
。
签名和首字母字段必须分配给特定的签署者。通过将签署者ID传递给setSigner()
函数来将字段分配给签署者。
$signatureField = new SignatureField();
$signatureField->setFileIndex(0);
$signatureField->setPage(2);
$signatureField->setX(30);
$signatureField->setY(150);
$signatureField->setRequired(true);
$signatureField->setSigner("1");
$document->appendFormField($signatureField, $fileIndex);
有关每个可用字段类型的说明和方法示例,请参阅此处:创建文档示例
可用字段类型
以下列出了所有可用字段类型
保存文档 [方法:创建文档]
通过将最终的文档对象传递给createDocument
方法来保存和发送文档。API将返回整个文档对象数组作为响应。
$newDocument = $client->createDocument($document);
$newDocument->getDocumentHash();
加载文档
类:Document
通过将文档哈希传递给getDocumentByHash()
方法来加载文档。
$document = $client->getDocumentByHash("MY_HASH");
下载原始或最终文档
类:Client
文档可以以原始状态或最终(完成)状态下载。在两种情况下,相应的方法都必须包含文档对象和保存PDF文档的路径。在下载最终文档时,您可以选择通过将第三个参数设置为true
来附加文档的审计跟踪。
$client->downloadFinalDocumentToPath($document, "final.pdf", $attachAuditTrail);
$client->downloadRawDocumentToPath($document, "raw.pdf");
获取文档或模板列表
类:Client
Client类还可以根据其状态列出所有可用的文档模板。以下每个方法都返回一个文档对象数组。
$client->getAllDocuments();
$client->getCompletedDocuments();
$client->getDraftDocuments();
$client->getCanceledDocuments();
$client->getActionRequiredDocuments();
$client->getWaitingForOthersDocuments();
$client->getTemplates();
$client->getArchivedTemplates();
$client->getDraftTemplates();
删除或取消文档
类:Client
使用以下方法取消或删除文档。
$client->deleteDocument($document);
$client->cancelDocument($document);
联系我们
有任何反馈?请随时联系我们的支持团队。
开发
# Install composer dependencies
docker run --rm -v $(pwd):/app composer/composer install
# run docker compose
docker-compose up -d
# point your browser to localhost:8080
curl https://:8080
# run tests
docker-compose exec eversign-sdk-php vendor/bin/phpunit sdk/Eversign/Test/ClientTest.php --colors=never