If you set this payment gateway HostedIframe for the custom checkout flow, the flow can be blocked by the JS code because it throws an exception and token and expire values are not provided.
There is a hardcoded class .commerce-checkout-flow-multistep-default which might be missing in the custom checkout flow.
I suggest using just a .commerce-checkout-flow class or refactoring JS code and removing hardcoded class.

diff --git a/js/hosted-iframe.js b/js/hosted-iframe.js
index 726d320..d81c301 100644
--- a/js/hosted-iframe.js
+++ b/js/hosted-iframe.js
@@ -14,7 +14,7 @@
       }

       const form = document.querySelector(
-        '.commerce-checkout-flow-multistep-default',
+        'form.commerce-checkout-flow',
       );
       if (form.classList.contains('hosted-iframe-form')) {
         return;
Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

s_kulyk created an issue. See original summary.

s_kulyk’s picture

Issue summary: View changes

tomtech made their first commit to this issue’s fork.

  • 619fc8dc committed on 1.x
    fix: #3567295 JS code can block the checkout flow
    
    By: s_kulyk
    By:...
tomtech’s picture

Assigned: Unassigned » tomtech
Status: Needs work » Fixed

@s_kulyk,

Thanks for the report!

This was actually already addressed in 2.x.

I've back ported the same fix. (We are moving toward using data properties, rather than css class names for things like this.)

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

tomtech’s picture

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.