Giter VIP home page Giter VIP logo

Comments (20)

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Hello Felix.

My name is Guilherme and I'm a member of the DEV/API Support Team.

When there's no tab/fields for a recipient, it becomes a click to agree experience. That is by design.

Basically, when the "Agree" button is clicked, it finishes the signing session. You couldn't be able to click on that button more than once.

The document (PDF) should be loaded along with the "Agree" button. If the document isn't opening, the recommendation is checking if it loads properly by adding tabs/fields to it, as the problem could be related to the document preview rather than the Focused View's iframes.

Regarding the "invisible iframe", does that block you from clicking on the "Agree" button? Or are you still able to click on it?

If the button can be clicked even though you have that error in the invisible iframe, check in the Network tab in Developer Tools if you have ending/finishing info about the request.

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

hey Guilherme,

thank you for your quick reply. The PDF is loading with the Agree-Button, and I can click it. After clicking it the invisible frame is rendered.

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Hey Felix, so that would be all. The "Agree" button is basically informing the recipient about the document and clicking on it, it finishes the session and your application should treat it with event handlers, like :

signing.on('sessionEnd', (event) => { //code-here }

As soon as the "Agree" button is clicked, the session is ended and it means the recipient accepted/acknowledged the envelope.

The Focused View will try to redirect the signer to the 'returnUrl' page but you need to send the user to a new page using the sessionEnd before the iframe redirection attempt.

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

Hey,
as seen in the code snippet we already handle sessionEnd, but it is never called when the user clicks on "Agree".

"The Focused View will try to redirect the signer to the 'returnUrl' page but you need to send the user to a new page using the sessionEnd before the iframe redirection attempt."
Not quite sure what you mean by that. We are using the focused view which is embedded inside our application, and we do not want to redirect the user to any other page after he has agreed.

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

To narrow it down:

  1. the main issue is that signing.on('sessionEnd', .... ) is never called when the user just has to agree. It is called correctly when the user has to sign.
  2. The other issue is that the iframe that displays the error message is visually hidden and overlaps everything, which only can fixed by a complete reload of the page

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Good morning, Felix.

I'm still investigating what would be causing the behavior for the invisible iframe with the error.

About the 'sessionEnd' not being called, I couldn't reproduce that. It is always being called using the "Agree" button.

Would you be able to perform small test on your side?

  signing.on('sessionEnd', (event) => {
    alert("TEXT");
  });

Could you please comment your current code on the 'sessionEnd' section and use the above one? Basically, it will just pop-up an alert modal on the browser after the 'Agree' button is clicked.

In the meantime, I'll be checking internally what could be causing the invisible iframe.

Kind regards,
Guilherme Flores
Developer Support Engineer
Working hours: (8am-5pm) Brazilian Standard Time (São Paulo)

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

hey

I already have that in place with console.log to test if the callback is being fired:

 const onDocusignReady = () => {
    try {
      window.DocuSign.loadDocuSign(
        process.env.NEXT_PUBLIC_DOCUSIGN_INTEGRATION_KEY
      )
        .then((docusign: any) => {
          console.log('CALLBACK');
          const signing = docusign.signing({
            url,
            displayFormat: 'focused',
          });
          signing.on('sessionEnd', (event: IDocusignEvent) => {
            console.log('SESSION END', event); // <- this is correctly logged on signature
            if (
              (event.sessionEndType === 'signing_complete' ||
                event.sessionEndType === 'viewing_complete') &&
              typeof onSigningComplete === 'function'
            ) {
              onSigningComplete();
            }
          });
          signing.mount('#docusign'); // id of the div to render
        })
        .catch((err: any) => {
          setToast({
            open: true,
            severity: 'error',
            message: t('errors.default'),
          });
          console.error('docusign catch error', err);
        });
    } catch (e) {
      setToast({
        open: true,
        severity: 'error',
        message: t('errors.default'),
      });
      console.error('Docusign loading error ', e);
    }
  };

Did you test your version with displayFormat: 'focused' ?

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Hey Felix,

Yes, I tested with displayFormat: 'focused'.

My test code looks similar, besides I'm not using event: IDocusignEvent, I'm just using event and the function is executed after the "Agree" button is clicked:

const signing = docusign.signing({
    url;
    displayFormat: 'focused',
    style: {
      branding: {
        primaryButton: {
          backgroundColor: '#333',
          color: '#fff',
        }
      },
      signingNavigationButton: {
        finishText: 'Custom Button Text',
        position: 'bottom-left'
      }
    }
  });
 signing.on('ready', (event) => {
    console.log('UI is rendered');
  });
  signing.on('sessionEnd', (event) => {
    console.log(event.sessionEndType);
   alert(); 
  });

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Hey Felix,

I was talking to the product team and they mentioned some bugs that were not fixed yet.

  1. One is related if the signing session times out the sessionEnd event is not raised.
  2. One related that sometimes the iframe is not cleared after sessionEnd event.

The product team would like to know if you can test their example which is located in https://github.com/docusign/docusign.github.io/blob/master/app-examples/embedded-signing/click2agree.js

They also have the code live in https://docusign.github.io/app-examples/embedded-signing/ which is basically using the 'app-examples' code.

The only difference between our codes and yours, is the 'event: IDocusignEvent'. Would you be able to test only with 'event'?

The 1st bug can only be reproduced with the session times out. I'm not sure if that is happening on your side, like, instead of having a 'sessionEnd' it is returning timing out event.

The 2nd bug would only happen if the 'sessionEnd' is being returned successfully. In your case, you mentioned it is not returning any data in signing.on( ) .

Kind regards,
Guilherme Flores
Developer Support Engineer
Working hours: (8am-5pm) Brazilian Standard Time (São Paulo)

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

hey,

This: event: IDocusignEvent is just typescript, and it is only used on application build, i.e. this will not show up in the javascript code that is triggered. Also, this works fine when there are no viewers but just signers, so I doubt that this is related to the issue.
I will have a look at those examples, but atm it looks like we will abandon the focused view and just redirect the user to a new tab to save time. Will update you once I have tested it

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

@GuilhermeFloresDocuSign would it be possible to schedule a short call with one of your devs?

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

@felixhagspiel Yes, I can send a Zoom link. I'm located in Brazil. Would one of your devs be online around 11 AM BRT time? That would be 3 PM London time.

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

@GuilhermeFloresDocuSign yes, I am available. please send an invite to [email protected]

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

@felixhagspiel Thank you for your time today! Can you share the EnvelopeID that we used today during our tests? In case you cannot find it, send a new envelope with no tabs and grab its ID.

I'll be contacting the product team in the mean time.

Kind regards,
Guilherme Flores
Developer Support Engineer
Working hours: (8am-5pm) Brazilian Standard Time (São Paulo)

from docusign-esign-java-client.

felixhagspiel avatar felixhagspiel commented on July 19, 2024

@GuilhermeFloresDocuSign 73ae80cd-5929-414b-9e7f-e0085f0ee202 (its a new one)

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

@felixhagspiel We were able to finally reproduce the issue. The root cause is the Signer type, which your app is using the "Certified Delivery" signer type (https://developers.docusign.com/docs/esign-rest-api/esign101/concepts/recipients/).

We tested and we got the same exception.

To fix it on your end you need to change from Certified Delivery to "Signer" and that should fix the errors you are seeing.

We are confirming with the product team if we have that information public somewhere and in case we don't have, we will ask to update our documentations and mention that the signer type must be "Signer", otherwise, the "Click2Agree" feature will not behave correctly.

Kind regards,
Guilherme Flores
Developer Support Engineer
Working hours: (8am-5pm) Brazilian Standard Time (São Paulo)

from docusign-esign-java-client.

vincent-milia avatar vincent-milia commented on July 19, 2024

Hi there,
I'm Vincent, a colleague of Felix.
Thanks for the answer.
I think changing the recipient type from Certified delivery to Signer will not solve the issue for us. As far as I know, a signer must always sign, e.g. it is not possible to omit signing anchors for recipients that are signers. We specifically want to use the certified delivery role (i.e. have recipients that DO NOT sign, but only acknowledge that they saw the signed document).

Can you confirm that the focused view is working for Signers only, and the other roles are not working for now?

Best regards,
Vincent

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

Hi @vincent-milia

The test that we've done was using the "signer" type and we didn't send any fields for signature.

Here's an example:

{
    "compositeTemplates":
    [
        {
            "inlineTemplates":
            [
                {
                    "documents":
                    [
                        {
                            "documentBase64": "doc",
                            "documentId": "2",
                            "fileExtension": "pdf",
                            "name": "Lorem Ipsum"
                        },
                        {      "signerMustAcknowledge": "view_read_accept",

                            
                            "documentBase64": "doc",
                            "documentId": "1",
                            "fileExtension": "pdf",
                            
                            "name": "MyCompany Quote",
                            
                        }
                    ],
                    "recipients":
                    {
                        "signers":
                        [
                            {   
                                    "emailNotification": {
                                    "supportedLanguage": "pt"
                          },
                                "clientUserId": "1000",
                                "email": "email",
                                "name": "Gui Viana",
                                "recipientId": "1",
                                "roleName": "Signer1",
                                "tabs":
                                {
                                }
                            }
                        ]
                    },
                    "sequence": "2"
                }
            ]
        }
    ],
    "emailSubject": "Envelope - Email",
    "status": "sent"
}

Basically, you add a "tabs" object but you don't include/assign any tabs for the signer. It is a bit different to way it is working right now because Felix showed that your application is calling the "SenderView" before sending it.

Using the above method, you send it directly without creating the "SenderView", so your application would just need to pull the documents to include in the body of the request and no needing to call "SenderView".

When the recipient opens it, it will provide the same "Click to Agree" behavior and no fields for signature. Just the same way it is happening right now for you, but of course without that problem where the "signing.on( )" isn't being executed.

Can you confirm that the focused view is working for Signers only, and the other roles are not working for now?

I'm still waiting the feedback from the product team. We got the same exception in the background using that signer type (certified delivery).

If it's a bug, we will raise a bug ticket to the product team. If it is expected to work that way, we will ask our technical writers to include that in our documentations.

from docusign-esign-java-client.

GuilhermeFloresDocuSign avatar GuilhermeFloresDocuSign commented on July 19, 2024

@felixhagspiel @vincent-milia

I got the feedback. According to the development team, the Focused View was not intended for Certified Delivery recipient type.

I created an enhancement ticket so they could investigate further, but at this moment, the Focused View using click to agree experience will not work with Certified Delivery recipient type.

About the ticket, I cannot provide any ETA, but the owner of the DocuSign Account can contact the Account Executive of the account and ask what's the status of C2A-3508 (or open a support ticket to check the status).

Kind regards,
Guilherme Flores
Developer Support Engineer
Working hours: (8am-5pm) Brazilian Standard Time (São Paulo)

from docusign-esign-java-client.

vincent-milia avatar vincent-milia commented on July 19, 2024

Hi Guilherme,
alright, then we will wait and use the "regular" embedded view for now.
thanks a lot for the support.
Best,
Vincent

from docusign-esign-java-client.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.