Erreur de bouton personnalisé dans DocuSign eSignature pour Salesforce 7.0 - Cette page nécessite un jeton de confirmation CSRF, nouveau format de code de bouton.

À partir de DocuSign eSignature pour Salesforce 7.0, il existe un nouveau pré‑requis pour l’appel de page d’un bouton personnalisé ou pour la valeur window.location.href. Ceci afin de prendre en charge les dernières mises à jour de sécurité de Salesforce.

L’erreur que vous verrez si vous ne mettez pas à jour est la suivante :

User-added image

Texte d’erreur : « Le lien que vous avez suivi n’est pas valide. Cette page nécessite un jeton de confirmation CSRF. Signalez cette erreur à votre administrateur Salesforce. »

La nouvelle exigence de sécurité Salesforce à laquelle nous nous conformons est un niveau de sécurité supplémentaire pour nos pages Visualforce qui protège contre la falsification de requête intersites (CSRF, Cross Site Request Forgery).

Solution

Pour prendre en charge les dernières mises à jour de sécurité Salesforce, les formats de boutons personnalisés DOIVENT être mis à jour au format URLFOR.

***URLFOR fonctionne dans 6.9 avec les boutons personnalisés d’URL si les clients veulent aussi tester avant de passer à 7.0.*****.

Un exemple de bouton de transition pourrait être :


Exemple Javascript classique :


{!REQUIRESCRIPT("/apex/dsfs__DocuSign_JavaScript")}
//********* Option Declarations (Do not modify )*********//
var RC = '';var RSL='';var RSRO='';var RROS='';var CCRM='';var CCTM='';var CCNM='';var CRCL='';var OCO='';var DST='';var LA='';var CEM='';var CES='';var STB='';var SSB='';var SES='';var SEM='';var SRS='';var SCS ='';var RES='';
//*************************************************//

OCO = 'Tag';
DST = 'a2e2cd02-f11e-4c8c-a830-c9f2b6564a9e';
LA = '0';
LF = '0';
CCRM = 'Decision Maker~Signer 1';
CCTM = 'Decision Maker~Signer';

//********* Page Callout (Do not modify) *********//
window.location.href = "/apex/dsfs__DocuSign_CreateEnvelope?DSEID=0&SourceID={!Opportunity.Id}&RC="+RC+"&RSL="+RSL+"&RSRO="+RSRO+"&RROS="+RROS+"&CCRM="+CCRM+"&CCTM="+CCTM+"&CRCL="+CRCL+"&OCO="+OCO+"&DST="+DST+"&CCNM="+CCNM+"&LA="+LA+"&CEM="+CEM+"&CES="+CES+"&SRS="+SRS+"&STB="+STB+"&SSB="+SSB+"&SES="+SES+"&SEM="+SEM+"&SRS="+SRS+"&SCS="+SCS+"&RES="+RES;
//*******************************************//


Format URL pour Lightning (pris en charge jusqu’à la version 6.9) :
*Remarque : la source du contenu doit être définie sur URL.

/apex/dsfs__DocuSign_CreateEnvelope?DSEID=0
&SourceID={!Opportunity.Id}
&DST=a2e2cd02-f11e-4c8c-a830-c9f2b6564a9e
&CCRM=Decision+Maker~Signer+1
&CCTM=Decision+Maker~Signer
&LA=0
&LF=0
&OCO=Tag


Format URLFOR (requis pour la version 7.0+) :
*Remarque : la source du contenu doit être définie sur URL.

{!URLFOR('/apex/dsfs__DocuSign_CreateEnvelope', null, [
SourceID = Opportunity.Id,
CCRM = 'Decision Maker~Signer 1',
CCTM = 'Decision Maker~Signer',
DST = 'a2e2cd02-f11e-4c8c-a830-c9f2b6564a9e',
LA = '0',
LF = '0',
OCO = 'Tag'
]
)}

Mise à jour facile des boutons JavaScript dans la section des légendes de page (pour les boutons classiques en v7.0+)

Comme alternative au format URLFOR ci‑dessus, si vous voulez conserver le format de votre bouton JavaScript existant, vous pouvez aussi simplement changer la section de légende de la page et préserver votre code personnalisé.

  • Copiez et collez la section « Légende de page » ci‑dessous dans le code de votre bouton pour remplacer la légende de votre page existante (variable window.location.href).
  • Notez que cet exemple est pour l’envoi à partir d’une opportunité, et que pour d’autres objets, veuillez changer Opportunity.Id pour l’objet que vous utilisez.
  • Veuillez vous assurer que la section Déclarations d’options se trouve en haut de la page pour s’assurer que nous avons bien déclaré chaque variable.


Remarque : la section en surbrillance indique ce qui a été modifié par rapport à la légende de page standard précédente :


//********* Option Declarations (Do not modify )*********// 
var RC = '';var RSL='';var RSRO='';var RROS='';var CCRM='';var CCTM='';var CCNM='';var CRCL=''; var CRL='';var OCO='';var DST='';var LA='';var LF='';var CEM='';var CES='';var STB='';var SSB='';var SES='';var SEM='';var SRS='';var SCS ='';var RES='';
//*************************************************// 


//custom code goes here// 


//********* Page Callout (Do not modify) *********// 
window.location.href = '{!URLFOR('/apex/dsfs__DocuSign_CreateEnvelope',null,[SourceID=Opportunity.Id])}&RC='+RC+'&RSL='+RSL+'&RSRO='+RSRO+'&RROS='+RROS+'&CCRM='+CCRM+'&CCTM='+CCTM+'&CRCL='+CRCL+'&CRL='+CRL+'&OCO='+OCO+'&DST='+DST+'&CCNM='+CCNM+'&LA='+LA+'&LF='+LF+'&CEM='+CEM+'&CES='+CES+'&SRS='+SRS+'&STB='+STB+'&SSB='+SSB+'&SES='+SES+'&SEM='+SEM+'&SRS='+SRS+'&SCS='+SCS+'&RES='+RES; 
//*******************************************//