/*************************************************************** * * OCCSagePay.js - Sage Pay API integration * * Copyright (c) 2015 SellerDeck Limited * ****************************************************************/ /*********************************************************************** * * GetPSPHelper - Load and PSP specific files and display the form * ************************************************************************/ function GetPSPHelper() { var sLibUrl = document.getElementById("idLibUrl").value; RequireScript(sLibUrl, function () { ShowPSPForm(); } ); } /*********************************************************************** * * sagepayResponseHandler - Handles the response from Sage Pay * ************************************************************************/ 'use strict'; var sellerdeckResponseHandler = function (status, response) { console.log(status, response); var nIdPSP = 22; var $form = $('#payment'); // // Clear old errors // $('div.form-group', $form).removeClass('has-error'); $('span.error', $form).html(''); if (status === 200) { var cardIdentifier = response['cardIdentifier']; var sAuthoriseUrl = document.getElementById("idAuthoriseUrl").value; $('
') .attr('action', sAuthoriseUrl) .attr('method', $form.attr('method')) .append($('').val('INCONTEXTPSP')) .append($('').val(cardIdentifier)) .append($('')) .appendTo($(document.body)) .submit(); } else if ((status === 401) || (status === 408)) { ShowPSPWait('pspwait2', false); alert("You have made too many failed attempts or taken too long to submit your card details, please try again"); ShowPSPWait('pspwait1'); GetPSPFormAndSubmit(nIdPSP); } else { ShowPSPWait('pspwait2', false); // // Show errors on the form // $form.find('.submit').prop('disabled', false); var jsonResponse = response.responseJSON; if (jsonResponse.errors === undefined) { $form.find('.errors').html(jsonResponse.description); } else { var errors = jsonResponse.errors; for (var i = 0; i < errors.length; ++i) { var grp = $('div[name=\'' + errors[i].property + '\']', $form); grp.addClass('has-error'); $('span.error', grp).html(errors[i].description); } } } }; $(document).ready(function () { $('#payment').submit(function (event) { event.preventDefault(); var $form = $(this); $form.find('.submit').prop('disabled', true); ShowPSPWait('pspwait2'); Sagepay.tokeniseCardDetails($form, sellerdeckResponseHandler); }); });