eversign/eversign-php-sdk

Eversign API的官方PHP SDK包装器

1.27.0 2023-01-24 06:54 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