Skip to content

A clone of tjphippen/docusign with updates and some bugs fixs

License

Notifications You must be signed in to change notification settings

ouladck/Docusign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DocuSign for Laravel 5

A clone of tjphippen/docusign with updates and some bugs fixs

Installation

Add the following to your composer.json file.

"karim88/docusign": "dev-master"

Then run composer install or composer update to download and install.

You'll then need to register the service provider in your config/app.php file within providers.

'providers' => array(
    Karim88\Docusign\DocusignServiceProvider::class,
)

DocuSign includes a auto registered facade which provides the static syntax for managing envelopes, recipients etc. If you have issues simply add it manually to your aliases array

'aliases' => array(
    'Docusign'  => Karim88\Docusign\Facades\Docusign::class,
)

Create configuration file using artisan

$ php artisan vendor:publish

The configuration file will be published to config/docusign.php which must be completed to make connections to the API.

    /**
     * The DocuSign Integrator's Key
     */

    'integrator_key' => '',

    /**
     * The Docusign Account Email
     */
    'email' => '',

    /**
     * The Docusign Account Password
     */
    'password' => '',
...

or set account informations dynamically by changing dynamic value to '1' in config/docusign.php

    'dynamic' => '1',

and set account informations in a session

session(['integrator_key' => $your_integrator_key]
session(['account_id' => $your_account_id]))
session(['email' => $your_email])
session(['password' => $your_password])

Examples

Get List of Users

Docusign::getUsers();

Get Individual User

Docusign::getUser($userId); 
Docusign::getUser($userId, true);  // When true, the full list of user information is returned for the user. 

Get Folders

Docusign::getFolders(); // By default only the list of template folders are returned
Docusign::getFolders(true);  // Will return normal folders plus template folders

Get Folder Envelope List

Docusign::getFolderEnvelopes($folderId);

See: All Parameters for this method.

Docusign::getFolderEnvelopes($folderId, array(
   'start_position' => 1, // Integer
   'from_date' => '', // date/Time
   'to_date' => '', // date/Time
   'search_text' => '', // String
   'status' => 'created', // Status
   'owner_name' => '', // username
   'owner_email' => '', // email
   );

Get List of Templates

Docusign::getTemplates();

Or with Additional Parameters.

Docusign::getTemplates(array(
   'folder' => 1, // String (folder name or folder ID)
   'folder_ids' => '', // Comma separated list of folder ID GUIDs.
   'include' => '', // Comma separated list of additional template attributes
    ...
   );

Get Template

Docusign::getTemplate($templateId);

Get Multiple Envelopes

$envelopes = array('49d91fa5-1259-443f-85fc-708379fd7bbe', '8b2d44a-41dc-4698-9233-4be0678c345c');
Docusign::getEnvelopes($envelopes);

Get Individual Envelope

Docusign::getEnvelope($envelopeId);

Get Envelope Recipient

Docusign::getEnvelopeRecipients($envelopeId);

To include tabs simply set the second parameter to true:

Docusign::getEnvelopeRecipients($envelopeId, true);

Get Envelope Custom Fields

Docusign::getEnvelopeCustomFields($envelopeId);

Get Tab Information for a Recipient

See: Tab Parameters

Docusign::getEnvelopeTabs($envelopeId, $recipientId);

Modify Tabs for a Recipient

This one is a bit tricky. The tabId is required and must be within set of arrays. See: [Tab Types and Parameters] (https://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST%20API%20References/Tab%20Parameters.htm)

$tabs = ['textTabs' => [['tabId' => '270269f6-4a84-4ff9-86db-2a572eb73d99', 'value' => '123 Fake Street']]];
Docusign::updateRecipientTabs($envelopeId, $recipientId, $tabs);

Create/Send an Envelope from a Template

See: Send an Envelope or Create a Draft Envelope for full list of parameters/options.

Docusign::createEnvelope(array(
   'templateId'     => 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', // Template ID
   'emailSubject'   => 'Demo Envelope Subject', // Subject of email sent to all recipients
   'status'         => 'created', // created = draft ('sent' will send the envelope!)
   'templateRoles'  => array(
        ['name'     => 'John Snow',
         'email'    => 'john@snow.com',
         'roleName' => 'Contractor',
         'clientUserId'  => 1],
        ['name'     => 'Jane Someone',
         'email'    => 'demo@demo.com',
         'roleName' => 'Customer']),
    ));

Modify Draft Envelope Email Subject and Message

The updateEnvelope method can be used in a variety of ways..

Docusign::updateEnvelope($envelopeId, array(
    'emailSubject' => 'New Email Subject', // Required
    'emailBlurb' => 'Email message body text'
));

Post Recipient View

Returns embeded signing URL. [Reference] (https://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST%20API%20References/Post%20Recipient%20View.htm)

Docusign::createRecipientView($envelopeId, array(
    'userName' => 'John Snow',
    'email' => 'john@snow.com',
    'AuthenticationMethod' => 'email',
    'clientUserId' => 1, // Must create envelope with this ID
    'returnUrl' => 'http://your-site.tdl/returningUrl'
));

Send Draft Envelope

Docusign::updateEnvelope($envelopeId, ['status' => 'sent']);

Download a Envelope

To get only the download url set $download=false, by default the method download the document.

Docusign::downloadDocuments($envelopeId, $download=true)

Updates Recipients in a Draft Envelope or Corrects Recipient Information for an in Process Envelope.

Docusign::updateRecipients($envelopeId, [
    "signers" => [
        [
            'recipientId'  => '1',
            'routingOrder' => '1',
            'name'         => 'John Snow',
            'email'        => 'john@snow.com',
            'roleName'     => 'Client'
        ]
    ]
]);

Void Envelope

Docusign::updateEnvelope($envelopeId, array(
    'status' => 'voided',
    'voidedReason' => 'Just Testing'
));

Delete Envelope

Docusign::deleteEnvelope($envelopeId);

Change Log

v0.1.0

  • Fixing Call to undefined method Illuminate\Foundation\Application::bindShared()
  • Adding Download a envelope or get it uri
  • Adding Update Envelope Recipients
  • Setting Account Information Dynamically