diff --git a/pass/package-lock.json b/pass/package-lock.json index f903f5a762cf22e77d7616d38dc64f3f2629d8fb..3180ea36113b29269d9e428313491db926ba7759 100644 --- a/pass/package-lock.json +++ b/pass/package-lock.json @@ -8,7 +8,7 @@ "name": "pass", "version": "0.0.0", "dependencies": { - "@paypal/paypal-js": "^8.0.5", + "@paypal/paypal-js": "^8.1.1", "accept-language": "^3.0.18", "blind-signatures": "^1.0.7", "browserify-middleware": "^8.1.1", @@ -474,9 +474,9 @@ } }, "node_modules/@paypal/paypal-js": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@paypal/paypal-js/-/paypal-js-8.0.5.tgz", - "integrity": "sha512-yQNV7rOILeaVCNU4aVDRPqEnbIlzfxgQfFsxzsBuZW1ouqRD/4kYBWJDzczCiscSr2xOeA/Pkm7e3a9fRfnuMQ==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@paypal/paypal-js/-/paypal-js-8.1.1.tgz", + "integrity": "sha512-9VJ2I0Ui10fD4u7DF8eT524mT7NC0Z6zm/4l4nFuSyNGUxNfIi3BI+LB/cmgifl5aBs2HdIeJssQ08NZz7TFBg==", "dependencies": { "promise-polyfill": "^8.3.0" } diff --git a/pass/package.json b/pass/package.json index 3a68a10441672528ec7e25fdbd71ede67a09738d..10c74673286ba0fe1893f24fa7f3b881441ee0ab 100644 --- a/pass/package.json +++ b/pass/package.json @@ -7,7 +7,7 @@ "dev": "nodemon --ignore node_modules/ --verbose --exec node --inspect=0.0.0.0 ./bin/www" }, "dependencies": { - "@paypal/paypal-js": "^8.0.5", + "@paypal/paypal-js": "^8.1.1", "accept-language": "^3.0.18", "blind-signatures": "^1.0.7", "browserify-middleware": "^8.1.1", @@ -45,4 +45,4 @@ "devDependencies": { "nodemon": "^2.0.20" } -} \ No newline at end of file +} diff --git a/pass/resources/js/checkout_paypal.js b/pass/resources/js/checkout_paypal.js index d8da07902c3ce5991db34f0cb55b1b1fc494e8b1..a6095001c40a1d5f15f4f7b328bd0ec167c3c8aa 100644 --- a/pass/resources/js/checkout_paypal.js +++ b/pass/resources/js/checkout_paypal.js @@ -5,12 +5,7 @@ initialize_paypal_payments(); function initialize_paypal_payments() { let script_data = { "client-id": document.querySelector("input[name=paypal-client-id]").value, - components: [ - "buttons", - "marks", - "payment-fields", - "funding-eligibility" - ], + components: ["buttons", "marks", "payment-fields", "funding-eligibility"], "disable-funding": "sofort,ideal", currency: "EUR", }; @@ -215,14 +210,24 @@ function loadCardPayment(checkout_data) { // Initialize Card Fields let cardFields_options = get_paypal_checkout_data("card"); + let background_color = + window + .getComputedStyle(document.querySelector(":root")) + .getPropertyValue("--background-color") ?? "white"; + let text_color = + window + .getComputedStyle(document.querySelector(":root")) + .getPropertyValue("--font-color") ?? "black"; + cardFields_options.style = { body: { - padding: 0 + padding: 0, }, input: { - background: "red", + background: background_color, + color: text_color, "font-size": "16px", - "padding": "0.4rem 0.75rem", + padding: "0.4rem 0.75rem", }, }; let cardFields = paypal.CardFields(cardFields_options); @@ -237,7 +242,9 @@ function loadCardPayment(checkout_data) { const nameField = cardFields.NameField({ placeholder: "John Doe" }); nameField.render("#card-name"); - const numberField = cardFields.NumberField({ placeholder: "4111 1111 1111 1111" }); + const numberField = cardFields.NumberField({ + placeholder: "4111 1111 1111 1111", + }); numberField.render("#card-number"); const expiryField = cardFields.ExpiryField({ placeholder: "123" }); @@ -253,54 +260,59 @@ function loadCardPayment(checkout_data) { event.preventDefault(); hideErrors(); lockForm(true); - cardFields.getState().then((data) => { - // Submit only if the current - // state of the form is valid - if (!data.isFormValid) { - showError(`error-1330`); - } else { - return cardFields.submit().then(() => { - }).catch((error) => { - console.error(error); - - let error_code_shown = false; - try { - let processor_response_code = - error.purchase_units[0].payments.captures[0] - .processor_response.response_code; - showError(`error-${processor_response_code}`); - error_code_shown = true; - } catch (e) { } + cardFields + .getState() + .then((data) => { + // Submit only if the current + // state of the form is valid + if (!data.isFormValid) { + showError(`error-1330`); + } else { + return cardFields + .submit() + .then(() => {}) + .catch((error) => { + console.error(error); - try { - let card_errors_container = document.querySelector("#card-errors"); - if (card_errors_container.classList.contains("hidden")) { - card_errors_container.classList.remove("hidden"); - } - for (let i = 0; i < error.details.length; i++) { - let error_container = document.createElement("div"); - error_container.classList.add("error"); - error_container.textContent = error.details[i].description; - card_errors_container.appendChild(error_container); - } - error_code_shown = true; - } catch (e) { } - if (!error_code_shown) { - if (error.toString != undefined) { - error = error.toString(); - } - if (error.includes != undefined && error.includes("3DS")) { - showError("error-3ds"); - } else { - showError(`error-1330`); - } - } - }); - } - }).finally(() => { - lockForm(false) - }); + let error_code_shown = false; + try { + let processor_response_code = + error.purchase_units[0].payments.captures[0] + .processor_response.response_code; + showError(`error-${processor_response_code}`); + error_code_shown = true; + } catch (e) {} + try { + let card_errors_container = + document.querySelector("#card-errors"); + if (card_errors_container.classList.contains("hidden")) { + card_errors_container.classList.remove("hidden"); + } + for (let i = 0; i < error.details.length; i++) { + let error_container = document.createElement("div"); + error_container.classList.add("error"); + error_container.textContent = error.details[i].description; + card_errors_container.appendChild(error_container); + } + error_code_shown = true; + } catch (e) {} + if (!error_code_shown) { + if (error.toString != undefined) { + error = error.toString(); + } + if (error.includes != undefined && error.includes("3DS")) { + showError("error-3ds"); + } else { + showError(`error-1330`); + } + } + }); + } + }) + .finally(() => { + lockForm(false); + }); }); return; // Show the Form @@ -479,7 +491,7 @@ function hideErrors() { if (!error_container.classList.contains("hidden")) { error_container.classList.add("hidden"); } - error_container.querySelectorAll(".error").forEach(error_element => { + error_container.querySelectorAll(".error").forEach((error_element) => { if (!error_element.classList.contains("hidden")) { error_element.classList.add("hidden"); } @@ -488,8 +500,8 @@ function hideErrors() { /** * Prevents multiple submissions of the card form - * - * @param {boolean} lock + * + * @param {boolean} lock */ function lockForm(lock) { let submit_button = document.querySelector("#card-form #card-submit");