2017-10-11 3 views
0

Mon cas d'utilisation est qu'un document doit être signé par deux personnes: un utilisateur régulier pour lequel nous avons une adresse e-mail et un autre utilisateur qui peut être un utilisateur administrateur de mon application. L'utilisateur admin est choisi après que l'utilisateur régulier a signé.API DocuSign: onglets InitialHere dupliqués lors de l'ajout d'un nouveau destinataire à l'enveloppe

Mon implémentation actuelle avec l'API DocuSign crée une enveloppe avec deux signataires, l'utilisateur normal et un second signataire appelé admin-placeholder.

Lorsqu'un administrateur commence à signer, j'appelle l'API pour remplacer le admin-placeholder par l'administrateur actuel.

Voici mon code php (la fonction callDocusign fait ce qu'il semble faire):

// fetch tabs of placeholder user 
$tabs= callDocusign($docusignLogin, 'GET', "envelopes/$envelopeId/recipients/$placeholderRecipient/tabs?include_anchor_tab_locations=true"); 

// remove tabIds to avoid issue on submission 
foreach(array_keys($tabs) as $kind) { 
    for ($i = 0; $i < count($tabs[$kind]); $i++) { 
     // sanitize_user_input removes all properties except those listed in its second argument 
     $tabs[$kind][$i] = sanitize_user_input($tabs[$kind][$i], ["documentId", "pageNumber", "xPosition", "yPosition", "anchorString", "anchorXOffset", "anchorYOffset", "anchorIgnoreIfNotPresent", "anchorUnits"]); 
    } 
} 

// add signer 
$data = [ 
    'signers' => [[ 
     'email' => $user['email'], 
     'clientUserId' => pseudo_encrypt($uid), 
     'recipientId' => pseudo_encrypt($uid), 
     'name' => user_full_name($user), 
    ]], 
]; 
callDocusign($docusignLogin, 'POST', "envelopes/$envelopeId/recipients", $data); 

// delete placeholder signer 
callDocusign($docusignLogin, 'DELETE', "envelopes/$envelopeId/recipients/$placeholderRecipient"); 

// for some reason setting tabs at signer creation doesn't work 
// we'll create them now 
callDocusign($docusignLogin, 'POST', "envelopes/$envelopeId/recipients/".pseudo_encrypt($uid).'/tabs', $tabs); 

Tout fonctionne bien, mais ce processus finit par dupliquer tous les onglets initialHere de l'utilisateur de l'espace réservé. Dans mon cas d'utilisation, le premier utilisateur a 14 onglets initialHere, et le second signataire se termine par 28.

Répondre

1

Je ne vois pas pourquoi vous obtiendriez des onglets en double dans le scénario que vous avez décrit. Cependant, l'une de ces approches éliminerait probablement cette question:

  • Plutôt que de supprimer le destinataire de l'espace réservé (et onglets) et l'ajout d'un nouveau destinataire (et onglets), simplement mise à jour le deuxième destinataire pour spécifier signataire réel info (une fois qu'elle est connue, c'est-à-dire avant de lancer la session de signature intégrée pour le second signataire).

OU

  • Faites des choses que vous êtes - sauf que lorsque vous créez le destinataire de l'espace réservé ne spécifiez pas de onglets pour ce destinataire. Ensuite, lorsque vous supprimez le destinataire de l'espace réservé, ajoutez le nouveau destinataire et spécifiez les onglets pour ce nouveau destinataire.
+0

La mise à jour de l'espace réservé au lieu de la supprimer contourne le bogue de l'API que j'ai découvert. Merci ! – olivieradam666