/* global wc_checkout_params */ jQuery( function( $ ) { 'use strict'; window.wc_sb_payment_url = { js_url: null, payment_url: WC_Sb_Payment_Url.payment_url, paymentMenu: null, isPaymentMenuLoaded: false, xhr: false, isLocked: false, /** * Initiate Payment Javascript * @param url * @param callback */ initPaymentJS: function ( url, callback ) { if ( typeof callback === 'undefined' ) { callback = function () {}; } // Destroy if ( window.hasOwnProperty( 'payex' ) && window.payex.hasOwnProperty( 'hostedView' ) ) { if ( typeof window.payex.hostedView.paymentMenu !== 'undefined' ) { window.payex.hostedView.paymentMenu().close(); } $( '#payment-swedbank-pay-checkout iframe' ).remove(); //delete window.payex.hostedView; } // Destroy JS $( "script[src*='px.paymentmenu.client']" ).remove(); // Load JS wc_sb_common.loadJs( url, function () { $( '#payment-swedbank-pay-checkout iframe' ).remove(); // Initiate the payment menu in "Instant Checkout" $( '#payment' ).hide(); wc_sb_payment_url.initPaymentMenu( 'payment-swedbank-pay-checkout' ); callback() } ); }, /** * Initiate Payment Menu. * Payment Javascript must be loaded. * * @param id * @param callback */ initPaymentMenu: function ( id, callback ) { console.log( 'initPaymentMenu' ); if ( typeof callback === 'undefined' ) { callback = function () {}; } // Load SwedBank Pay Checkout frame this.paymentMenu = window.payex.hostedView.paymentMenu( { container: id, culture: WC_Sb_Payment_Url.culture, style: WC_Sb_Payment_Url.paymentMenuStyle ? JSON.parse( WC_Sb_Payment_Url.paymentMenuStyle ) : null, onApplicationConfigured: function( data ) { console.log( 'onApplicationConfigured' ); console.log( data ); wc_sb_payment_url.isPaymentMenuLoaded = true; callback( null ); }, onPaymentMenuInstrumentSelected: function ( data ) { console.log( 'onPaymentMenuInstrumentSelected' ); console.log( data ); //wc_sb_checkout.onPaymentMenuInstrumentSelected( data.name, data.instrument ); }, onPaymentCreated: function () { console.log( 'onPaymentCreated' ); }, onPaymentCompleted: function ( data ) { console.log( 'onPaymentCompleted' ); console.log( data ); self.location.href = data.redirectUrl; }, onPaymentCanceled: function ( data ) { console.log( 'onPaymentCanceled' ); console.log( data ); wc_sb_common.logError( 'payment-menu-cancel', data ); }, onPaymentFailed: function ( data ) { console.log( 'onPaymentFailed' ); console.log( data ); wc_sb_common.logError( 'payment-menu-failed', data ); //self.location.href = data.redirectUrl; }, onError: function ( data ) { wc_sb_common.logError( 'payment-menu-error', data ); callback( data ); } } ); this.paymentMenu.open(); }, } $(document).ready( function () { wc_sb_payment_url.initPaymentJS( WC_Sb_Payment_Url.payment_url, function () { console.log( 'Payment url has been loaded.' ); } ); } ); });