picoss/yousign-bundle

Symfony2 YouSign 扩展包

安装次数: 6,760

依赖关系: 0

建议者: 0

安全性: 0

星级: 2

关注者: 1

分支: 4

开放问题: 3

类型:symfony-bundle

2.2 2019-02-08 14:06 UTC

This package is auto-updated.

Last update: 2024-09-09 02:20:22 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

本扩展包为 Symfony2 项目提供了 Yousign 的集成。

许可协议: MIT

安装

步骤 1: 下载扩展包

打开命令行界面,进入您的项目目录,并执行以下命令以下载此扩展包的最新稳定版本

    $ composer require picoss/yousign-bundle

此命令需要您全局安装了 Composer,具体请参考 Composer 文档的 安装章节

步骤 2: 启用扩展包

当使用 Flex 时,此步骤会自动处理。

然后,在您的项目的 app/AppKernel.php 文件中添加以下行以启用扩展包

    // app/AppKernel.php

    class AppKernel extends Kernel
    {
        public function registerBundles()
        {
            $bundles = array(
                // ...

                new Picoss\YousignBundle\PicossYousignBundle(),
            );

            // ...
        }

        // ...
    }

步骤 3: 配置扩展包

# config/packages/picoss_yousign.yml
picoss_yousign:
    env: demo #demo or prod
    api_key: yousign_api_key
    username: yousign_username
    password: yousign_password

注意:如果您需要向 soap 客户端传递一些选项,请添加 soap_options 配置

# config/packages/picoss_yousign.yml
picoss_yousign:
    env: demo #demo or prod
    api_key: yousign_api_key
    username: yousign_username
    password: yousign_password
    soap_options:
        trace: 1

查看 soap 客户端的 $options 参数以查看可用选项: https://php.ac.cn/manual/en/soapclient.soapclient.php

步骤 4: 使用方法

4.1: 测试 API 连接

以下示例展示了如何在控制器中测试与 Yousign API 的连接

<?php

namespace App\Controller;

use Picoss\YousignBundle\Yousign\YousignApi;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class TestController extends Controller
{
    /**
     * @Route("/test", name="test")
     */
    public function index(YousignApi $api)
    {
        $auth = $api->authentication;
        
        $result = $auth->connect() ? 'Connected' : 'Enable to connect';

        $response = new Response();
        $response->setContent(sprintf('<html><body>%s</body></html>', $result));

        return $response;
    }
}

4.2: 创建签名请求

<?php

namespace App\Controller;

use Picoss\YousignBundle\Model\Cosigner;
use Picoss\YousignBundle\Model\Demand;
use Picoss\YousignBundle\Model\File;
use Picoss\YousignBundle\Yousign\YousignApi;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class TestController extends Controller
{
    /**
     * @Route("/test", name="test")
     */
    public function index(YousignApi $api)
    {
        $signatureApi = $api->signature;

        $file = new File();
        $file
            ->setName('My PDF Filename')
            ->setContent(file_get_contents('/path/to/the/file.pdf'))
        ;

        $cosigner = new Cosigner();
        $cosigner
            ->setFirstName('John')
            ->setLastName('Doe')
            ->setMail('john.doe@email.com')
            ->setAuthenticationMode('mail');

        $visibleOptions = array(
            'visibleSignaturePage' => '5',
            'isVisibleSignature' => true,
            'visibleRectangleSignature' => '10,10,10,10',
        );

        $demand = new Demand();
        $demand
            ->addFile($file, $visibleOptions)
            ->addCosigner($cosigner)
        ;

        $signature = $signatureApi->initCosign($demand);

        $response = new Response();
        $response->setContent(sprintf('<html><body>Signature demand id: %s</body></html>', $signature->getIdDemand()));

        return $response;
    }
}

4.3: 可用方法

4.3.1: 身份验证 API

4.3.2: 签名 API

更多详细信息,请访问 Yousign API 文档