diff --git a/gateway/builders/payment_data_builder.py b/gateway/builders/payment_data_builder.py index 55d2c6d..389f517 100644 --- a/gateway/builders/payment_data_builder.py +++ b/gateway/builders/payment_data_builder.py @@ -252,6 +252,17 @@ def add_external_token_eci(self, eci=None): new_dict={self.__data_sets.PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_ECI: eci} ) + def add_external_token_cavv(self, cavv=None): + """Add CAVV from decrypted token's data.""" + + self.__setup_external_token_data() + self.__data_structure_util.add_to_dict( + source_dict=self.__payment_data_structure[self.__PAYMENT_METHOD_DATA_KEY], + working_dict=self.__external_token_data_structure, + new_key=self.__EXTERNAL_TOKEN_DATA_KEY, + new_dict={self.__data_sets.PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_CAVV: cavv} + ) + def add_external_token_trans_status(self, trans_status=None): """ Add transStatus from decrypted token's data diff --git a/gateway/data_sets/request_parameters.py b/gateway/data_sets/request_parameters.py index e8950a4..5ef0d61 100644 --- a/gateway/data_sets/request_parameters.py +++ b/gateway/data_sets/request_parameters.py @@ -90,6 +90,7 @@ class RequestParameters: PAYMENT_METHOD_DATA_EXTERNAL_MPI_TRANS_STATUS = 'transStatus' PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_CRYPTOGRAM = 'cryptogram' PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_ECI = 'eci' + PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_CAVV = 'cavv' PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_TRANS_STATUS = 'transStatus' PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_DS_TRANS_ID = 'dsTransID' PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_ACS_TRANS_ID = 'acsTransID' @@ -191,6 +192,7 @@ class RequestParametersTypes(RequestParameters): PAYMENT_METHOD_DATA_EXTERNAL_MPI_TRANS_STATUS = str PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_CRYPTOGRAM = str PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_ECI = str + PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_CAVV = str PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_TRANS_STATUS = str PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_DS_TRANS_ID = str PAYMENT_METHOD_DATA_EXTERNAL_TOKEN_ACS_TRANS_ID = str diff --git a/tests/builders/test_payment_data_builder.py b/tests/builders/test_payment_data_builder.py index b3318a8..33323ee 100644 --- a/tests/builders/test_payment_data_builder.py +++ b/tests/builders/test_payment_data_builder.py @@ -77,6 +77,7 @@ def test_additional_data_fields(self): new.add_external_token_cryptogram('AAMI/uGZvlKCygBkcQIlLJeBTPLG') new.add_external_token_eci('07') + new.add_external_token_cavv('token-cavv') new.add_external_token_trans_status('N') new.add_external_token_ds_trans_id('33321368-1c3d-4f3c-ba34-2efb76644c320') new.add_external_token_acs_trans_id('99921368-1c3d-4f3c-ba34-2efb76644c320') @@ -105,6 +106,7 @@ def test_additional_data_fields(self): 'external-token-data': { 'cryptogram': 'AAMI/uGZvlKCygBkcQIlLJeBTPLG', 'eci': '07', + 'cavv': 'token-cavv', 'cardHolderAuthenticated': True, 'transStatus': 'N', 'dsTransID': '33321368-1c3d-4f3c-ba34-2efb76644c320',