mifiel/api-client

PHP版的Mifiel API客户端

2.0.3 2018-01-23 21:10 UTC

README

Latest Stable Version Build Status Coverage Status

PHP SDK for Mifiel API。请参阅我们的文档了解如何开始使用API。

安装

只需在项目根目录中运行 composer require mifiel/api-client 或将 mifiel/api-client 添加到您的 composer.json

  "require": {
    "mifiel/api-client": "^1.0"
  }

然后执行 composer install

使用方法

Mifiel提供沙盒环境,您可以在此环境中自信地测试您的代码。

要开始使用沙盒环境中的API,您需要首先在sandbox.mifiel.com创建一个账户。

拥有账户后,您需要APP_ID和APP_SECRET,您可以在sandbox.mifiel.com/access_tokens中生成。

然后您可以使用以下方式配置库:

  use Mifiel\ApiClient as Mifiel;
  Mifiel::setTokens('APP_ID', 'APP_SECRET');
  // if you want to use our sandbox environment use:
  Mifiel::url('https://sandbox.mifiel.com/api/v1/');

文档方法

  • 查找

      use Mifiel\Document;
      $document = Document::find('id');
      $document->original_hash;
      $document->file;
      $document->file_signed;
      # ...
  • 查找所有

      use Mifiel\Document;
      $documents = Document::all();
  • 创建

如果您不希望我们有文件,请仅使用 original_hash
必须提供 fileoriginal_hash

  use Mifiel\Document;
  $document = new Document([
    'file_path' => 'path/to/my-file.pdf',
    'signatories' => [
      [ 
        'name' => 'Signer 1', 
        'email' => 'signer1@email.com', 
        'tax_id' =>  'AAA010101AAA' 
      ],
      [ 
        'name' => 'Signer 2', 
        'email' => 'signer2@email.com', 
        'tax_id' =>  'AAA010102AAA'
      ]
    ]
  ]);
  // if you dont want us to have the PDF, you can just send us 
  // the original_hash and the name of the document. Both are required
  $document = new Document([
    'original_hash' => hash('sha256', file_get_contents('path/to/my-file.pdf')),
    'name' => 'my-file.pdf',
    'signatories' => ...
  ]);

  $document->save();
  • 保存与文档相关的文件
  use Mifiel\Document;
  $document = Document::find('id');

  # save the original file
  $document->saveFile('path/to/save/file.pdf');
  # save the signed file (original file + signatures page)
  $document->saveFileSigned('path/to/save/file-signed.pdf');
  # save the signed xml file
  $document->saveXML('path/to/save/xml.xml');
  • 删除

      use Mifiel\Document;
      Document::delete('id');

证书方法

  • Sat证书

      use Mifiel\Certificate;
      $sat_certificates = Certificate::sat();
  • 查找

      use Mifiel\Certificate;
      $certificate = Certificate::find('id');
      $certificate->cer_hex;
      $certificate->type_of;
      # ...
  • 查找所有

      use Mifiel\Certificate;
      $certificates = Certificate::all();
  • 创建

      use Mifiel\Certificate;
      $certificate = new Certificate([
        'file_path' => 'path/to/my-certificate.cer'
      ])
      $certificate->save();
  • 删除

      use Mifiel\Certificate;
      Certificate::delete('id');

模板方法

  • 查找

      use Mifiel\Template;
      $template = Template::find('id');
      $template->name;
      $template->header;
      $template->content;
      # ...
  • 查找所有

      use Mifiel\Template;
      $templates = Template::all();
  • 创建

      use Mifiel\Template;
      $template = new Template([
        'name' => 'My template name',
        'header' => 'Some header text',
        'content' => '<div>The signer <field name="signer">SIGNER</field></div>',
        'footer' => 'Some footer text'
      ]);
      
      $template->save();
      $template->id;
  • 删除

      use Mifiel\Template;
      Template::delete('id');
  • 从模板生成文档

use Mifiel\Document;

$document = Document::createFromTemplate([
  'template_id' => 'some-id',
  'name' => 'Some-name.pdf',
  'fields' => [
    'name' => 'Signer 1',
    'type' => 'Lawyer'
  ],
  'signatories' => [[
    'email' => 'some@email.com'
  ]],
  'external_id' => 'some-external-id'
]);
  • 从模板生成多个文档
$document = Document::createManyFromTemplate([
  'template_id' => 'some-id',
  'identifier' => 'name',
  'callback_url' => 'https://some-url.com',
  'documents' => [[
    'fields' => [
      'name' => 'Signer 1',
      'type' => 'Lawyer 1'
    ],
    'signatories' => [[
      'email' => 'some1@email.com'
    ]],
    'external_id' => 'some-external-id'
  ], [
    'fields' => [
      'name' => 'Signer 2',
      'type' => 'Lawyer 2'
    ],
    'signatories' => [[
      'email' => 'some2@email.com'
    ]],
    'external_id' => 'some-other-external-id'
  ]]
]);

开发

安装 grunt 并在终端中运行 grunt。这将检测到项目中任何文件的更改并运行所有测试。

贡献

  1. 将其Fork( https://github.com/Mifiel/php-api-client/fork
  2. 创建您的功能分支(git checkout -b feature/my-new-feature
  3. 提交您的更改(git commit -am 'Add some feature'
  4. 将更改推送到分支(git push origin feature/my-new-feature
  5. 创建一个新的Pull Request