tylermenezes/legalesign-php

用于与Legalesign API交互的库。

0.10 2017-06-15 15:17 UTC

This package is not auto-updated.

Last update: 2024-09-18 17:50:44 UTC


README

基于PHP的Legalesign接口。

使用

使用Composer包含它

composer require tylermenezes/legalesign-php

设置您的凭据

您可以在您的用户页面底部查看您的API凭据。目前非沙箱模式使用需要付费计划,但您可以在沙箱中测试您的集成。(在沙箱模式下,您只能向您的个人资料页面中指定的五个电子邮件发送请求。)

您可以这样设置凭据

Legalesign\Api::credentials('ffffffffffffffffffffffffffff', '000000000000000000000000000000000000000000');

如果您使用Laravel,凭据将自动从存在的legalesign.php配置文件中提取。此文件的格式应该是

return [
    'userid' => 'ffffffffffffffffffffffffffffff',
    'secret' => '000000000000000000000000000000000000000000'
];

更改API基础URL

由于某些原因,某些账户无法使用https://api.legalesign.com/api/v1

您可以通过调用apiBase()方法来更改基础API URL。

Legalesign\Api::apiBase('https://eu-api.legalesign.com/api/v1');

创建一个签署者

$me = new Legalesign\Signer;
$me->firstName = 'Tyler';
$me->lastName = 'Menezes';
$me->email = 'tylermenezes@protonmail.ch';

创建一个签署请求

$document = Legalesign\Document::create()
    ->name('Waiver of Liability')
    ->group('mygroup')
    ->addSigner($me)
    ->sendWithTemplatePdf('mytemplate');

Document::create()方法实际上返回一个Document\SigningRequest对象,允许您配置您的签署请求。如上所示,您应通过链式调用方法与要设置的属性名称来配置属性。

以下属性是支持的

  • groupId(必需):文档应属于的组的ID。如果您不确定这个ID是什么,最简单的方法是在页眉中悬停在公司名称上。组ID将在URL的最后部分。
  • name(必需):公司名称。
  • userId:要发送文档的用户的ID。您可以将此留空为默认值。
  • appendLegalesignValidationInfo(默认true):如果为true,将在文档中添加包含审计日志的页面。
  • autoArchive(默认true):在完成后自动存档文档。这主要只是从仪表板中隐藏它。
  • signaturesOnAllPages(默认false):如果为true,在所有页面上显示签名。否则,仅在最后一页显示。
  • certify(默认true):如果为true,Legalesign应验证PDF。这是推荐的。
  • signInOrder(默认true):如果为true,第二个签署者不能在第一个签署者签署之前签署,等等。签署顺序是您添加签署者的顺序。
  • password(默认null):如果设置,PDF将以设置的密码进行密码保护。
  • storePassword(默认false):如果设置了密码,这将影响Legalesign是否保存密码。
  • footerfooterHeightheaderheaderHeight(所有默认null):如果设置,这些将控制页脚和页眉。
  • pdfText(默认[]):如果设置,PDF发送者字段将根据这些值预先填充。
  • signerText(默认[]):如果设置,PDF签署者字段将根据这些值预先填充。

您还可以使用addSigneraddCc方法添加签署者和cc'ers(将在所有电子邮件中cc的人)。

要实际发送文档,请使用以下三种方法之一结束链式调用

  • sendWithHtml($html):指定要发送的HTML文档,并发送它。
  • sendWithTemplateHtml($template):指定用于文档的HTML模板,并发送它。
  • sendWithTemplatePdf($template):指定用于文档的PDF模板,并发送。

这些方法都返回一个Document,您通常应该保存其id

获取签署者字段

$document = Legalesign\Document::find($documentId);
foreach ($document->signers as $signer) {
    $fields = $signer->getSignerFields();
}

getSignerFields()方法返回一个包含所有签署者字段的关联数组。请参考下方的示例格式。

[
    'key' => 'value'
]

检索现有的签署请求,并尝试下载已执行协议。

$document = Legalesign\Document::find('my-document-id');
if ($document->downloadReady) {
    file_put_contents('/tmp/test.pdf', $document->getPdf());
} else {
    echo 'Document is not yet ready!';
}