We will be off from 27/1 (Monday) to 31/1 (Friday) (GMT +7) for our Tet Holiday (Lunar New Year) in our country

Commit 1166041b authored by Aleffio's avatar Aleffio

PW-243: Do not send CSE token for recurring cards if the updated expiry date is not changed.

parent 3ff4c38b
...@@ -37,6 +37,7 @@ define( ...@@ -37,6 +37,7 @@ define(
], ],
function (ko, _, $, Component, placeOrderAction, $t, additionalValidators, selectPaymentMethodAction, quote, checkoutData) { function (ko, _, $, Component, placeOrderAction, $t, additionalValidators, selectPaymentMethodAction, quote, checkoutData) {
'use strict'; 'use strict';
var updatedExpiryDate = false;
var recurringDetailReference = ko.observable(null); var recurringDetailReference = ko.observable(null);
var paymentMethod = ko.observable(null); var paymentMethod = ko.observable(null);
return Component.extend({ return Component.extend({
...@@ -84,16 +85,14 @@ define( ...@@ -84,16 +85,14 @@ define(
"method": self.method, "method": self.method,
"additional_data": { "additional_data": {
variant: self.agreement_data.variant, variant: self.agreement_data.variant,
// recurring_detail_reference: "8315028947219783"
recurring_detail_reference: self.value recurring_detail_reference: self.value
} }
} }
// only use CSE and installments for cards // only use CSE and installments for cards
if (self.agreement_data.card) { if (self.agreement_data.card) {
var cse_key = this.getCSEKey();
var options = { enableValidations: false};
var cseInstance = adyen.encrypt.createEncryption(cse_key, options);
var generationtime = self.getGenerationTime(); var generationtime = self.getGenerationTime();
var cardData = { var cardData = {
...@@ -103,10 +102,17 @@ define( ...@@ -103,10 +102,17 @@ define(
generationtime : generationtime generationtime : generationtime
}; };
var encryptedData = cseInstance.encrypt(cardData); if(updatedExpiryDate || window.checkoutConfig.payment.adyenOneclick.hasCustomerInteraction){
var options = { enableValidations: false};
var cse_key = this.getCSEKey();
var cseInstance = adyen.encrypt.createEncryption(cse_key, options);
var encryptedData = cseInstance.encrypt(cardData);
data.additional_data.encrypted_data = encryptedData;
}
// set payment method to adyen_hpp // set payment method to adyen_hpp
data.additional_data.encrypted_data = encryptedData;
data.additional_data.number_of_installments = self.installment; data.additional_data.number_of_installments = self.installment;
} }
...@@ -192,7 +198,7 @@ define( ...@@ -192,7 +198,7 @@ define(
// if oneclick or recurring is a card do validation on expiration date // if oneclick or recurring is a card do validation on expiration date
if(this.agreement_data.card) { if(this.agreement_data.card) {
// add extra validation because jqeury validation will not work on non name attributes // add extra validation because jquery validation will not work on non name attributes
var expiration = Boolean($(form + ' #' + codeValue + '_expiration').valid()); var expiration = Boolean($(form + ' #' + codeValue + '_expiration').valid());
var expiration_yr = Boolean($(form + ' #' + codeValue + '_expiration_yr').valid()); var expiration_yr = Boolean($(form + ' #' + codeValue + '_expiration_yr').valid());
...@@ -214,6 +220,7 @@ define( ...@@ -214,6 +220,7 @@ define(
return true; return true;
}, },
selectExpiry: function() { selectExpiry: function() {
updatedExpiryDate = true;
var self = this; var self = this;
self.expiry(true); self.expiry(true);
return true; return true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment