python-redsys 2.0.0__py3-none-any.whl → 2.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_redsys-2.2.0.dist-info/METADATA +187 -0
- python_redsys-2.2.0.dist-info/RECORD +34 -0
- redsys/__init__.py +38 -2
- redsys/_code_texts.py +4673 -0
- redsys/api/__init__.py +1 -1
- redsys/api/bizum.py +71 -0
- redsys/api/cards.py +50 -0
- redsys/api/currencies.py +18 -18
- redsys/api/emv3ds.py +99 -0
- redsys/api/environments.py +41 -0
- redsys/api/languages.py +9 -1
- redsys/api/options.py +31 -0
- redsys/api/pay_methods.py +25 -0
- redsys/api/paygold.py +33 -0
- redsys/api/processed_pay_methods.py +207 -0
- redsys/api/responses.py +290 -0
- redsys/api/sca.py +11 -3
- redsys/api/secure_payment.py +12 -0
- redsys/api/transactions.py +53 -8
- redsys/api/xpay.py +25 -0
- redsys/clients.py +270 -85
- redsys/codes.py +76 -0
- redsys/crypto.py +8 -8
- redsys/exceptions.py +5 -2
- redsys/models.py +309 -57
- redsys/orders.py +20 -0
- redsys/request.py +19 -13
- redsys/threeds.py +21 -16
- python_redsys-2.0.0.dist-info/METADATA +0 -214
- python_redsys-2.0.0.dist-info/RECORD +0 -20
- {python_redsys-2.0.0.dist-info → python_redsys-2.2.0.dist-info}/WHEEL +0 -0
- {python_redsys-2.0.0.dist-info → python_redsys-2.2.0.dist-info}/licenses/LICENSE +0 -0
- {python_redsys-2.0.0.dist-info → python_redsys-2.2.0.dist-info}/licenses/NOTICE +0 -0
- {python_redsys-2.0.0.dist-info → python_redsys-2.2.0.dist-info}/top_level.txt +0 -0
redsys/api/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"""Constant tables of RedSys
|
|
1
|
+
"""Constant tables of RedSys values, one module per parameter or code family."""
|
redsys/api/bizum.py
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"""Bizum Request-to-Pay values: ``Ds_RtpStatus`` and the ``Ds_RtpResponse`` codes.
|
|
2
|
+
|
|
3
|
+
``redsys.codes.describe()`` gives the meaning of each code.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
RTP_OK = 'OK'
|
|
7
|
+
"""``Ds_RtpStatus``: the customer can receive a payment request, or the backup step succeeded."""
|
|
8
|
+
|
|
9
|
+
RTP_KO = 'KO'
|
|
10
|
+
"""``Ds_RtpStatus``: it cannot or did not; ``Ds_RtpResponse`` says why."""
|
|
11
|
+
|
|
12
|
+
RTP_STATUSES = (RTP_OK, RTP_KO)
|
|
13
|
+
|
|
14
|
+
REQUEST_PROCESSED = 'BIZ00000'
|
|
15
|
+
"""Request processed successfully."""
|
|
16
|
+
|
|
17
|
+
MISSING_PARAMETER = 'BIZ00001'
|
|
18
|
+
"""A required input parameter is missing."""
|
|
19
|
+
|
|
20
|
+
INVALID_PARAMETER_FORMAT = 'BIZ00002'
|
|
21
|
+
"""An input parameter has an invalid format."""
|
|
22
|
+
|
|
23
|
+
NOT_FOUND = 'BIZ00003'
|
|
24
|
+
"""The requested item was not found."""
|
|
25
|
+
|
|
26
|
+
INTERNAL_FAILURE = 'BIZ00005'
|
|
27
|
+
"""Internal system failure."""
|
|
28
|
+
|
|
29
|
+
SECURITY_CHECK_FAILED = 'BIZ00006'
|
|
30
|
+
"""Security check failed (3DES / MAC X9.19)."""
|
|
31
|
+
|
|
32
|
+
OPERATION_NOT_ALLOWED = 'BIZ00007'
|
|
33
|
+
"""Operation not allowed."""
|
|
34
|
+
|
|
35
|
+
PAYEE_NOT_FOUND = 'BIZ00008'
|
|
36
|
+
"""Payee not found."""
|
|
37
|
+
|
|
38
|
+
PAYER_NOT_FOUND = 'BIZ00009'
|
|
39
|
+
"""Payer not found (customer has no Bizum)."""
|
|
40
|
+
|
|
41
|
+
FEATURE_NOT_AVAILABLE = 'BIZ00202'
|
|
42
|
+
"""Feature not implemented yet (seen when the customer lacks RTP)."""
|
|
43
|
+
|
|
44
|
+
REQUEST_AUTHENTICATION_FAILED = 'BIZ00213'
|
|
45
|
+
"""Authentication of the incoming request failed (security sequence)."""
|
|
46
|
+
|
|
47
|
+
ISSUER_REJECTED_RTP_AUTHENTICATION = 'BIZ00224'
|
|
48
|
+
"""Issuer answered KO to the RTP authentication."""
|
|
49
|
+
|
|
50
|
+
RTP_AUTHENTICATION_FAILED = 'BIZ00225'
|
|
51
|
+
"""RTP authentication did not complete successfully."""
|
|
52
|
+
|
|
53
|
+
BACKUP_AVAILABLE = 'BIZ00233'
|
|
54
|
+
"""Authentication failed but the operation can be backed up (respaldo)."""
|
|
55
|
+
|
|
56
|
+
RTP_RESPONSES = (
|
|
57
|
+
REQUEST_PROCESSED,
|
|
58
|
+
MISSING_PARAMETER,
|
|
59
|
+
INVALID_PARAMETER_FORMAT,
|
|
60
|
+
NOT_FOUND,
|
|
61
|
+
INTERNAL_FAILURE,
|
|
62
|
+
SECURITY_CHECK_FAILED,
|
|
63
|
+
OPERATION_NOT_ALLOWED,
|
|
64
|
+
PAYEE_NOT_FOUND,
|
|
65
|
+
PAYER_NOT_FOUND,
|
|
66
|
+
FEATURE_NOT_AVAILABLE,
|
|
67
|
+
REQUEST_AUTHENTICATION_FAILED,
|
|
68
|
+
ISSUER_REJECTED_RTP_AUTHENTICATION,
|
|
69
|
+
RTP_AUTHENTICATION_FAILED,
|
|
70
|
+
BACKUP_AVAILABLE,
|
|
71
|
+
)
|
redsys/api/cards.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Card values in responses: ``Ds_Card_Type``, ``Ds_Card_Brand`` and ``Ds_Card_PSD2``.
|
|
2
|
+
|
|
3
|
+
Strings, as the response fields carry them.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
CREDIT = 'C'
|
|
7
|
+
"""``Ds_Card_Type``: credit card."""
|
|
8
|
+
|
|
9
|
+
DEBIT = 'D'
|
|
10
|
+
"""``Ds_Card_Type``: debit card."""
|
|
11
|
+
|
|
12
|
+
VOUCHER = 'V'
|
|
13
|
+
"""``Ds_Card_Type``: prepaid voucher."""
|
|
14
|
+
|
|
15
|
+
MIXED = 'X'
|
|
16
|
+
"""``Ds_Card_Type``: mixed card."""
|
|
17
|
+
|
|
18
|
+
CARD_TYPES = (CREDIT, DEBIT, VOUCHER, MIXED)
|
|
19
|
+
|
|
20
|
+
VISA = '1'
|
|
21
|
+
"""``Ds_Card_Brand``: Visa."""
|
|
22
|
+
|
|
23
|
+
MASTERCARD = '2'
|
|
24
|
+
"""``Ds_Card_Brand``: Mastercard."""
|
|
25
|
+
|
|
26
|
+
DINERS = '6'
|
|
27
|
+
"""``Ds_Card_Brand``: Diners."""
|
|
28
|
+
|
|
29
|
+
PRIVATE_LABEL = '7'
|
|
30
|
+
"""``Ds_Card_Brand``: private label card."""
|
|
31
|
+
|
|
32
|
+
AMEX = '8'
|
|
33
|
+
"""``Ds_Card_Brand``: American Express."""
|
|
34
|
+
|
|
35
|
+
JCB = '9'
|
|
36
|
+
"""``Ds_Card_Brand``: JCB."""
|
|
37
|
+
|
|
38
|
+
UPI = '22'
|
|
39
|
+
"""``Ds_Card_Brand``: UnionPay (UPI, also listed as CUP)."""
|
|
40
|
+
|
|
41
|
+
BRANDS = (VISA, MASTERCARD, DINERS, PRIVATE_LABEL, AMEX, JCB, UPI)
|
|
42
|
+
"""The documented brands; RedSys may return others."""
|
|
43
|
+
|
|
44
|
+
PSD2 = 'Y'
|
|
45
|
+
"""``Ds_Card_PSD2``: the card falls under PSD2 strong customer authentication."""
|
|
46
|
+
|
|
47
|
+
NOT_PSD2 = 'N'
|
|
48
|
+
"""``Ds_Card_PSD2``: it does not."""
|
|
49
|
+
|
|
50
|
+
PSD2_VALUES = (PSD2, NOT_PSD2)
|
redsys/api/currencies.py
CHANGED
|
@@ -1,47 +1,49 @@
|
|
|
1
|
+
"""ISO 4217 numeric codes for ``Ds_Merchant_Currency``."""
|
|
2
|
+
|
|
1
3
|
EUR = 978
|
|
2
|
-
"""Euro"""
|
|
4
|
+
"""Euro."""
|
|
3
5
|
|
|
4
6
|
USD = 840
|
|
5
|
-
"""United States dollar"""
|
|
7
|
+
"""United States dollar."""
|
|
6
8
|
|
|
7
9
|
GBP = 826
|
|
8
|
-
"""Pound sterling"""
|
|
10
|
+
"""Pound sterling."""
|
|
9
11
|
|
|
10
12
|
JPY = 392
|
|
11
|
-
"""Japanese yen"""
|
|
13
|
+
"""Japanese yen."""
|
|
12
14
|
|
|
13
15
|
ARS = 32
|
|
14
|
-
"""Argentine peso"""
|
|
16
|
+
"""Argentine peso."""
|
|
15
17
|
|
|
16
18
|
CAD = 124
|
|
17
|
-
"""Canadian dollar"""
|
|
19
|
+
"""Canadian dollar."""
|
|
18
20
|
|
|
19
21
|
CLP = 152
|
|
20
|
-
"""Chilean
|
|
22
|
+
"""Chilean peso."""
|
|
21
23
|
|
|
22
24
|
COP = 170
|
|
23
|
-
"""Colombian peso"""
|
|
25
|
+
"""Colombian peso."""
|
|
24
26
|
|
|
25
27
|
INR = 356
|
|
26
|
-
"""Indian rupee"""
|
|
28
|
+
"""Indian rupee."""
|
|
27
29
|
|
|
28
30
|
MXN = 484
|
|
29
|
-
"""Mexican peso"""
|
|
31
|
+
"""Mexican peso."""
|
|
30
32
|
|
|
31
33
|
PEN = 604
|
|
32
|
-
"""Peruvian
|
|
34
|
+
"""Peruvian sol."""
|
|
33
35
|
|
|
34
36
|
CHF = 756
|
|
35
|
-
"""Swiss franc"""
|
|
37
|
+
"""Swiss franc."""
|
|
36
38
|
|
|
37
39
|
BRL = 986
|
|
38
|
-
"""Brazilian real"""
|
|
40
|
+
"""Brazilian real."""
|
|
39
41
|
|
|
40
42
|
VEF = 937
|
|
41
|
-
"""Venezuelan bolivar"""
|
|
43
|
+
"""Venezuelan bolivar."""
|
|
42
44
|
|
|
43
45
|
TRY = 949
|
|
44
|
-
"""Turkish lira"""
|
|
46
|
+
"""Turkish lira."""
|
|
45
47
|
|
|
46
48
|
CURRENCIES = (
|
|
47
49
|
EUR,
|
|
@@ -62,9 +64,7 @@ CURRENCIES = (
|
|
|
62
64
|
)
|
|
63
65
|
|
|
64
66
|
|
|
65
|
-
#
|
|
66
|
-
# Ds_Merchant_Amount. Unlisted currencies default to 2. The scaling factor is
|
|
67
|
-
# derived from this table in redsys.models (minor_units_factor).
|
|
67
|
+
# ISO 4217 minor-unit exponent: the decimals of ``amount`` on the wire; 2 for a currency not listed.
|
|
68
68
|
CURRENCY_DECIMALS = {
|
|
69
69
|
EUR: 2,
|
|
70
70
|
USD: 2,
|
redsys/api/emv3ds.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""Values inside the ``Ds_Merchant_EMV3DS`` request object and the ``Ds_EMV3DS`` response object."""
|
|
2
|
+
|
|
3
|
+
CARD_DATA = 'CardData'
|
|
4
|
+
"""Request ``threeDSInfo``: the 3DS initialization asks for the card's 3DS data."""
|
|
5
|
+
|
|
6
|
+
AUTHENTICATION_DATA = 'AuthenticationData'
|
|
7
|
+
"""Request ``threeDSInfo``: authentication with the browser data."""
|
|
8
|
+
|
|
9
|
+
CHALLENGE_RESPONSE = 'ChallengeResponse'
|
|
10
|
+
"""Request ``threeDSInfo``: the step after a challenge, with ``cres``."""
|
|
11
|
+
|
|
12
|
+
RECURRING_3RI = '3RI-Recurring'
|
|
13
|
+
"""Request ``threeDSInfo``: 3DS requestor initiated recurring payment."""
|
|
14
|
+
|
|
15
|
+
OTA_3RI = '3RI-OTA'
|
|
16
|
+
"""Request ``threeDSInfo``: 3DS requestor initiated online travel agency operation."""
|
|
17
|
+
|
|
18
|
+
REQUEST_INFOS = (CARD_DATA, AUTHENTICATION_DATA, CHALLENGE_RESPONSE, RECURRING_3RI, OTA_3RI)
|
|
19
|
+
|
|
20
|
+
CARD_CONFIGURATION = 'CardConfiguration'
|
|
21
|
+
"""Response ``threeDSInfo``: the answer of the 3DS initialization."""
|
|
22
|
+
|
|
23
|
+
CHALLENGE_REQUEST = 'ChallengeRequest'
|
|
24
|
+
"""Response ``threeDSInfo``: the issuer requires a challenge (``acsURL`` and ``creq``)."""
|
|
25
|
+
|
|
26
|
+
RESPONSE_INFOS = (CARD_CONFIGURATION, CHALLENGE_REQUEST)
|
|
27
|
+
|
|
28
|
+
PROTOCOL_1_0_2 = '1.0.2'
|
|
29
|
+
"""``protocolVersion`` 1.0.2."""
|
|
30
|
+
|
|
31
|
+
PROTOCOL_2_1_0 = '2.1.0'
|
|
32
|
+
"""``protocolVersion`` 2.1.0."""
|
|
33
|
+
|
|
34
|
+
PROTOCOL_2_2_0 = '2.2.0'
|
|
35
|
+
"""``protocolVersion`` 2.2.0."""
|
|
36
|
+
|
|
37
|
+
NO_3DS_V2 = 'NO_3DS_V2'
|
|
38
|
+
"""Response ``protocolVersion``: the card has no 3-D Secure v2."""
|
|
39
|
+
|
|
40
|
+
PROTOCOL_VERSIONS = (PROTOCOL_1_0_2, PROTOCOL_2_1_0, PROTOCOL_2_2_0, NO_3DS_V2)
|
|
41
|
+
|
|
42
|
+
METHOD_COMPLETED = 'Y'
|
|
43
|
+
"""``threeDSCompInd``: the 3DS Method finished."""
|
|
44
|
+
|
|
45
|
+
METHOD_FAILED = 'N'
|
|
46
|
+
"""``threeDSCompInd``: the 3DS Method failed, timed out after 10 seconds, or the card has no method URL."""
|
|
47
|
+
|
|
48
|
+
METHOD_NOT_RUN = 'U'
|
|
49
|
+
"""``threeDSCompInd``: the 3DS Method did not run."""
|
|
50
|
+
|
|
51
|
+
METHOD_COMPLETION_INDICATORS = (METHOD_COMPLETED, METHOD_FAILED, METHOD_NOT_RUN)
|
|
52
|
+
|
|
53
|
+
WINDOW_250X400 = '01'
|
|
54
|
+
"""``challengeWindowSize``: 250 by 400 pixels."""
|
|
55
|
+
|
|
56
|
+
WINDOW_390X400 = '02'
|
|
57
|
+
"""``challengeWindowSize``: 390 by 400 pixels."""
|
|
58
|
+
|
|
59
|
+
WINDOW_500X600 = '03'
|
|
60
|
+
"""``challengeWindowSize``: 500 by 600 pixels."""
|
|
61
|
+
|
|
62
|
+
WINDOW_600X400 = '04'
|
|
63
|
+
"""``challengeWindowSize``: 600 by 400 pixels."""
|
|
64
|
+
|
|
65
|
+
WINDOW_FULL_SCREEN = '05'
|
|
66
|
+
"""``challengeWindowSize``: full screen, the default."""
|
|
67
|
+
|
|
68
|
+
CHALLENGE_WINDOW_SIZES = (WINDOW_250X400, WINDOW_390X400, WINDOW_500X600, WINDOW_600X400, WINDOW_FULL_SCREEN)
|
|
69
|
+
|
|
70
|
+
CHALLENGE_REQUESTED = '03'
|
|
71
|
+
"""``threeDSRequestorChallengeInd``: the merchant asks for strong customer authentication."""
|
|
72
|
+
|
|
73
|
+
CHALLENGE_MANDATED = '04'
|
|
74
|
+
"""``threeDSRequestorChallengeInd``: a mandate requires it, as after a ``0195`` soft decline."""
|
|
75
|
+
|
|
76
|
+
CHALLENGE_INDICATORS = (CHALLENGE_REQUESTED, CHALLENGE_MANDATED)
|
|
77
|
+
|
|
78
|
+
WHITELIST_NOT_LISTED = 'N'
|
|
79
|
+
"""Response ``whiteListStatus``: the merchant is not on the customer's trusted list."""
|
|
80
|
+
|
|
81
|
+
WHITELIST_NOT_ELIGIBLE = 'E'
|
|
82
|
+
"""Response ``whiteListStatus``: the customer has no trusted list."""
|
|
83
|
+
|
|
84
|
+
WHITELIST_PENDING = 'P'
|
|
85
|
+
"""Response ``whiteListStatus``: enrollment pending."""
|
|
86
|
+
|
|
87
|
+
WHITELIST_REJECTED = 'R'
|
|
88
|
+
"""Response ``whiteListStatus``: the customer refused."""
|
|
89
|
+
|
|
90
|
+
WHITELIST_UNKNOWN = 'U'
|
|
91
|
+
"""Response ``whiteListStatus``: unknown."""
|
|
92
|
+
|
|
93
|
+
WHITELIST_STATUSES = (
|
|
94
|
+
WHITELIST_NOT_LISTED,
|
|
95
|
+
WHITELIST_NOT_ELIGIBLE,
|
|
96
|
+
WHITELIST_PENDING,
|
|
97
|
+
WHITELIST_REJECTED,
|
|
98
|
+
WHITELIST_UNKNOWN,
|
|
99
|
+
)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""RedSys environments and their hosts."""
|
|
2
|
+
|
|
3
|
+
DESA = 'DESA'
|
|
4
|
+
"""Development."""
|
|
5
|
+
|
|
6
|
+
INTE = 'INTE'
|
|
7
|
+
"""Integration."""
|
|
8
|
+
|
|
9
|
+
TEST = 'TEST'
|
|
10
|
+
"""Test."""
|
|
11
|
+
|
|
12
|
+
PROD = 'PROD'
|
|
13
|
+
"""Production."""
|
|
14
|
+
|
|
15
|
+
HOSTS = {
|
|
16
|
+
DESA: 'https://sis-d.redsys.es',
|
|
17
|
+
INTE: 'https://sis-i.redsys.es:25443',
|
|
18
|
+
TEST: 'https://sis-t.redsys.es:25443',
|
|
19
|
+
PROD: 'https://sis.redsys.es',
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
REDIRECT_PATH = '/sis/realizarPago'
|
|
23
|
+
"""Redirect connection."""
|
|
24
|
+
|
|
25
|
+
INICIA_PATH = '/sis/rest/iniciaPeticionREST'
|
|
26
|
+
"""Direct connection: 3-D Secure initialization."""
|
|
27
|
+
|
|
28
|
+
TRATA_PATH = '/sis/rest/trataPeticionREST'
|
|
29
|
+
"""Direct connection: operations."""
|
|
30
|
+
|
|
31
|
+
RTP_CHECK_PATH = '/sis/rest/RTP/checkRtpUsuario'
|
|
32
|
+
"""Bizum Request-to-Pay: whether the customer can receive a payment request."""
|
|
33
|
+
|
|
34
|
+
RTP_TRATA_PATH = '/sis/rest/RTP/trataPeticionREST'
|
|
35
|
+
"""Bizum Request-to-Pay: payment (types 0 and 7) and refund without original (type 34)."""
|
|
36
|
+
|
|
37
|
+
RTP_BACKUP_PATH = '/sis/rest/RTP/respaldarUsuarioRTP'
|
|
38
|
+
"""Bizum Request-to-Pay backup: starts it and sends the customer a one-time password."""
|
|
39
|
+
|
|
40
|
+
RTP_BACKUP_VALIDATION_PATH = '/sis/rest/RTP/validarRespaldoUsuarioRTP'
|
|
41
|
+
"""Bizum Request-to-Pay backup: validates the one-time password."""
|
redsys/api/languages.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Values of ``Ds_Merchant_ConsumerLanguage``; ``DEFAULT`` leaves the language undetermined."""
|
|
2
|
+
|
|
1
3
|
DEFAULT = 0
|
|
2
4
|
SPANISH = 1
|
|
3
5
|
ENGLISH = 2
|
|
@@ -12,7 +14,7 @@ VALENCIAN = 10
|
|
|
12
14
|
POLISH = 11
|
|
13
15
|
GALICIAN = 12
|
|
14
16
|
EUSKERA = 13
|
|
15
|
-
BULGARIAN =
|
|
17
|
+
BULGARIAN = 100
|
|
16
18
|
CHINESE = 156
|
|
17
19
|
CROATIAN = 191
|
|
18
20
|
CZECH = 203
|
|
@@ -21,12 +23,15 @@ ESTONIAN = 233
|
|
|
21
23
|
FINNISH = 246
|
|
22
24
|
GREEK = 300
|
|
23
25
|
HUNGARIAN = 348
|
|
26
|
+
HINDI = 356
|
|
24
27
|
JAPANESE = 392
|
|
28
|
+
KOREAN = 410
|
|
25
29
|
LATVIAN = 428
|
|
26
30
|
LITHUANIAN = 440
|
|
27
31
|
MALTESE = 470
|
|
28
32
|
ROMANIAN = 642
|
|
29
33
|
RUSSIAN = 643
|
|
34
|
+
ARABIC = 682
|
|
30
35
|
SLOVAK = 703
|
|
31
36
|
SLOVENIAN = 705
|
|
32
37
|
TURKISH = 792
|
|
@@ -55,12 +60,15 @@ LANGUAGES = (
|
|
|
55
60
|
FINNISH,
|
|
56
61
|
GREEK,
|
|
57
62
|
HUNGARIAN,
|
|
63
|
+
HINDI,
|
|
58
64
|
JAPANESE,
|
|
65
|
+
KOREAN,
|
|
59
66
|
LATVIAN,
|
|
60
67
|
LITHUANIAN,
|
|
61
68
|
MALTESE,
|
|
62
69
|
ROMANIAN,
|
|
63
70
|
RUSSIAN,
|
|
71
|
+
ARABIC,
|
|
64
72
|
SLOVAK,
|
|
65
73
|
SLOVENIAN,
|
|
66
74
|
TURKISH,
|
redsys/api/options.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""Values of request options with a closed set: direct payment, DCC, OTA, financing and PayPal shipping address."""
|
|
2
|
+
|
|
3
|
+
DIRECT_PAYMENT = 'true'
|
|
4
|
+
"""``Ds_Merchant_DirectPayment``: skip authentication; required for MIT, ignored for cards under PSD2."""
|
|
5
|
+
|
|
6
|
+
MOTO = 'moto'
|
|
7
|
+
"""``Ds_Merchant_DirectPayment``: a mail or telephone order (MOTO)."""
|
|
8
|
+
|
|
9
|
+
DIRECT_PAYMENTS = (DIRECT_PAYMENT, MOTO)
|
|
10
|
+
|
|
11
|
+
DCC_QUERY = 'Y'
|
|
12
|
+
"""``Ds_Merchant_DCC`` on the 3DS initialization: asks for a currency conversion offer."""
|
|
13
|
+
|
|
14
|
+
NO_DCC_QUERY = 'N'
|
|
15
|
+
"""``Ds_Merchant_DCC`` on the 3DS initialization: asks for none."""
|
|
16
|
+
|
|
17
|
+
DCC_QUERIES = (DCC_QUERY, NO_DCC_QUERY)
|
|
18
|
+
|
|
19
|
+
OTA_INITIAL = 'S'
|
|
20
|
+
"""``Ds_Merchant_OTA``: the initial operation of an online travel agency (OTA) authentication."""
|
|
21
|
+
|
|
22
|
+
FINANCING_QUERY = 'Y'
|
|
23
|
+
"""``Ds_Merchant_Financing`` on the 3DS initialization: asks which financing options apply."""
|
|
24
|
+
|
|
25
|
+
SHIPPING_ADDRESS = 'S'
|
|
26
|
+
"""``Ds_Merchant_ShippingAddressPyP``: the response carries the PayPal account's shipping address."""
|
|
27
|
+
|
|
28
|
+
NO_SHIPPING_ADDRESS = 'N'
|
|
29
|
+
"""``Ds_Merchant_ShippingAddressPyP``: the response leaves the shipping address out."""
|
|
30
|
+
|
|
31
|
+
SHIPPING_ADDRESS_OPTIONS = (SHIPPING_ADDRESS, NO_SHIPPING_ADDRESS)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""Values of ``Ds_Merchant_PayMethods``: the payment methods offered on the RedSys payment page.
|
|
2
|
+
|
|
3
|
+
RedSys publishes no closed table; these are the values its guides use. On a PayGold link
|
|
4
|
+
several letters can go together (for example ``CzP``).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
BIZUM = 'z'
|
|
8
|
+
"""Bizum (Bizum guide 2.6, PayGold guide 1.8.2)."""
|
|
9
|
+
|
|
10
|
+
CARD = 'C'
|
|
11
|
+
"""Card only (PayGold guide 1.8.2)."""
|
|
12
|
+
|
|
13
|
+
BANK_TRANSFER = 'R'
|
|
14
|
+
"""Bank transfer (PayGold guide 1.8.2)."""
|
|
15
|
+
|
|
16
|
+
PAYPAL = 'P'
|
|
17
|
+
"""PayPal (PayGold guide 1.8.2)."""
|
|
18
|
+
|
|
19
|
+
XPAY = 'xpay'
|
|
20
|
+
"""Only the Google Pay and Apple Pay buttons (Google Pay guide 1.9, Apple Pay guide 3.2)."""
|
|
21
|
+
|
|
22
|
+
GOOGLE_PAY = 'google'
|
|
23
|
+
"""Straight to Google Pay (Google Pay guide 1.9)."""
|
|
24
|
+
|
|
25
|
+
PAY_METHODS = (BIZUM, CARD, BANK_TRANSFER, PAYPAL, XPAY, GOOGLE_PAY)
|
redsys/api/paygold.py
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""PayGold (payment by link) values: SMS placeholders and e-mail XML tags.
|
|
2
|
+
|
|
3
|
+
The link is created with ``pay_gold()`` (type 15) and its expiry changed with
|
|
4
|
+
``pay_gold_expiry_change()`` (type 51).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
SMS_MERCHANT = '@COMERCIO@'
|
|
8
|
+
"""Placeholder in ``customer_sms_text`` for the merchant name."""
|
|
9
|
+
|
|
10
|
+
SMS_AMOUNT = '@IMPORTE@'
|
|
11
|
+
"""Placeholder in ``customer_sms_text`` for the amount."""
|
|
12
|
+
|
|
13
|
+
SMS_CURRENCY = '@MONEDA@'
|
|
14
|
+
"""Placeholder in ``customer_sms_text`` for the currency."""
|
|
15
|
+
|
|
16
|
+
SMS_URL = '@URL@'
|
|
17
|
+
"""Placeholder in ``customer_sms_text`` for the payment link; required."""
|
|
18
|
+
|
|
19
|
+
SMS_PLACEHOLDERS = (SMS_MERCHANT, SMS_AMOUNT, SMS_CURRENCY, SMS_URL)
|
|
20
|
+
|
|
21
|
+
XML_BUYER_NAME = 'nombreComprador'
|
|
22
|
+
"""Tag in ``p2f_xml_data`` for the buyer's name."""
|
|
23
|
+
|
|
24
|
+
XML_BUYER_ADDRESS = 'direccionComprador'
|
|
25
|
+
"""Tag in ``p2f_xml_data`` for the buyer's address (parameters table)."""
|
|
26
|
+
|
|
27
|
+
XML_FREE_TEXT = 'textoLibre1'
|
|
28
|
+
"""Tag in ``p2f_xml_data`` for the purchase description."""
|
|
29
|
+
|
|
30
|
+
XML_MAIL_SUBJECT = 'subjectMailCliente'
|
|
31
|
+
"""Tag in ``p2f_xml_data`` for the e-mail subject (PayGold guide example)."""
|
|
32
|
+
|
|
33
|
+
XML_TAGS = (XML_BUYER_NAME, XML_BUYER_ADDRESS, XML_FREE_TEXT, XML_MAIL_SUBJECT)
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"""Values of ``Ds_ProcessedPayMethod``: the method an operation was processed with, as strings.
|
|
2
|
+
|
|
3
|
+
RedSys may add values; compare against these without rejecting others.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
VISA_SECURE = '1'
|
|
7
|
+
"""Visa Secure."""
|
|
8
|
+
|
|
9
|
+
TRADITIONAL_WORLDWIDE = '3'
|
|
10
|
+
"""Traditional payment, worldwide."""
|
|
11
|
+
|
|
12
|
+
FINANET = '5'
|
|
13
|
+
"""Finanet."""
|
|
14
|
+
|
|
15
|
+
FINANET_CAPABLE = '11'
|
|
16
|
+
"""Finanet capable."""
|
|
17
|
+
|
|
18
|
+
VISA_SECURE_CAPABLE = '13'
|
|
19
|
+
"""Visa Secure capable."""
|
|
20
|
+
|
|
21
|
+
TRADITIONAL_EU = '14'
|
|
22
|
+
"""Traditional payment, European Union."""
|
|
23
|
+
|
|
24
|
+
MASTERCARD_IDENTITY_CHECK = '22'
|
|
25
|
+
"""Mastercard Identity Check."""
|
|
26
|
+
|
|
27
|
+
IDENTITY_CHECK_CAPABLE = '23'
|
|
28
|
+
"""Identity Check capable."""
|
|
29
|
+
|
|
30
|
+
AMEX = '24'
|
|
31
|
+
"""American Express payment."""
|
|
32
|
+
|
|
33
|
+
MOTO = '25'
|
|
34
|
+
"""Mail or telephone order (MOTO) payment."""
|
|
35
|
+
|
|
36
|
+
JCB = '28'
|
|
37
|
+
"""JCB payment."""
|
|
38
|
+
|
|
39
|
+
DINERS = '31'
|
|
40
|
+
"""Diners payment."""
|
|
41
|
+
|
|
42
|
+
JCB_J_SECURE = '39'
|
|
43
|
+
"""JCB J/Secure."""
|
|
44
|
+
|
|
45
|
+
J_SECURE_CAPABLE = '40'
|
|
46
|
+
"""J/Secure capable."""
|
|
47
|
+
|
|
48
|
+
DIRECT_DEBIT = '41'
|
|
49
|
+
"""Direct debit."""
|
|
50
|
+
|
|
51
|
+
BANK_TRANSFER = '42'
|
|
52
|
+
"""Bank transfer."""
|
|
53
|
+
|
|
54
|
+
PAYPAL = '54'
|
|
55
|
+
"""PayPal."""
|
|
56
|
+
|
|
57
|
+
AMEX_SAFEKEY = '57'
|
|
58
|
+
"""American Express SafeKey."""
|
|
59
|
+
|
|
60
|
+
SAFEKEY_CAPABLE = '58'
|
|
61
|
+
"""SafeKey capable."""
|
|
62
|
+
|
|
63
|
+
MASTERPASS = '59'
|
|
64
|
+
"""Masterpass wallet."""
|
|
65
|
+
|
|
66
|
+
BIZUM = '68'
|
|
67
|
+
"""Bizum."""
|
|
68
|
+
|
|
69
|
+
UPI_EXPRESSPAY = '70'
|
|
70
|
+
"""UPI ExpressPay."""
|
|
71
|
+
|
|
72
|
+
GOOGLE_PAY = '71'
|
|
73
|
+
"""Google Pay."""
|
|
74
|
+
|
|
75
|
+
APPLE_PAY = '72'
|
|
76
|
+
"""Apple Pay."""
|
|
77
|
+
|
|
78
|
+
UPI_SECUREPLUS = '73'
|
|
79
|
+
"""UPI SecurePlus."""
|
|
80
|
+
|
|
81
|
+
DISCOVER_CAPABLE = '74'
|
|
82
|
+
"""Discover capable."""
|
|
83
|
+
|
|
84
|
+
DISCOVER_PROTECTBUY = '75'
|
|
85
|
+
"""Discover ProtectBuy."""
|
|
86
|
+
|
|
87
|
+
DISCOVER = '76'
|
|
88
|
+
"""Discover."""
|
|
89
|
+
|
|
90
|
+
AMAZON_PAY = '77'
|
|
91
|
+
"""Amazon Pay."""
|
|
92
|
+
|
|
93
|
+
VISA_CHALLENGE = '78'
|
|
94
|
+
"""Visa, with challenge."""
|
|
95
|
+
|
|
96
|
+
MASTERCARD_CHALLENGE = '79'
|
|
97
|
+
"""Mastercard, with challenge."""
|
|
98
|
+
|
|
99
|
+
VISA_FRICTIONLESS = '80'
|
|
100
|
+
"""Visa, frictionless."""
|
|
101
|
+
|
|
102
|
+
MASTERCARD_FRICTIONLESS = '81'
|
|
103
|
+
"""Mastercard, frictionless."""
|
|
104
|
+
|
|
105
|
+
VISA_ATTEMPT = '82'
|
|
106
|
+
"""Visa, authentication attempt."""
|
|
107
|
+
|
|
108
|
+
MASTERCARD_ATTEMPT = '83'
|
|
109
|
+
"""Mastercard, authentication attempt."""
|
|
110
|
+
|
|
111
|
+
AMEX_CHALLENGE = '85'
|
|
112
|
+
"""American Express, with challenge."""
|
|
113
|
+
|
|
114
|
+
DISCOVER_CHALLENGE = '86'
|
|
115
|
+
"""Discover, with challenge."""
|
|
116
|
+
|
|
117
|
+
AMEX_FRICTIONLESS = '87'
|
|
118
|
+
"""American Express, frictionless."""
|
|
119
|
+
|
|
120
|
+
DISCOVER_FRICTIONLESS = '88'
|
|
121
|
+
"""Discover, frictionless."""
|
|
122
|
+
|
|
123
|
+
AMEX_ATTEMPT = '89'
|
|
124
|
+
"""American Express, authentication attempt."""
|
|
125
|
+
|
|
126
|
+
DISCOVER_ATTEMPT = '90'
|
|
127
|
+
"""Discover, authentication attempt."""
|
|
128
|
+
|
|
129
|
+
DINERS_PROTECTBUY = '92'
|
|
130
|
+
"""Diners ProtectBuy payment."""
|
|
131
|
+
|
|
132
|
+
DINERS_PROTECTBUY_CHALLENGE = '93'
|
|
133
|
+
"""Diners ProtectBuy, with challenge."""
|
|
134
|
+
|
|
135
|
+
DINERS_PROTECTBUY_FRICTIONLESS = '94'
|
|
136
|
+
"""Diners ProtectBuy, frictionless."""
|
|
137
|
+
|
|
138
|
+
DINERS_PROTECTBUY_ATTEMPT = '95'
|
|
139
|
+
"""Diners ProtectBuy, authentication attempt."""
|
|
140
|
+
|
|
141
|
+
JCB_CHALLENGE = '96'
|
|
142
|
+
"""JCB, with challenge."""
|
|
143
|
+
|
|
144
|
+
JCB_FRICTIONLESS = '97'
|
|
145
|
+
"""JCB, frictionless."""
|
|
146
|
+
|
|
147
|
+
JCB_ATTEMPT = '98'
|
|
148
|
+
"""JCB, authentication attempt."""
|
|
149
|
+
|
|
150
|
+
SAMSUNG_PAY = '106'
|
|
151
|
+
"""Samsung Pay."""
|
|
152
|
+
|
|
153
|
+
PAY_BY_ACCOUNT = '107'
|
|
154
|
+
"""Pay by account."""
|
|
155
|
+
|
|
156
|
+
PROCESSED_PAY_METHODS = (
|
|
157
|
+
VISA_SECURE,
|
|
158
|
+
TRADITIONAL_WORLDWIDE,
|
|
159
|
+
FINANET,
|
|
160
|
+
FINANET_CAPABLE,
|
|
161
|
+
VISA_SECURE_CAPABLE,
|
|
162
|
+
TRADITIONAL_EU,
|
|
163
|
+
MASTERCARD_IDENTITY_CHECK,
|
|
164
|
+
IDENTITY_CHECK_CAPABLE,
|
|
165
|
+
AMEX,
|
|
166
|
+
MOTO,
|
|
167
|
+
JCB,
|
|
168
|
+
DINERS,
|
|
169
|
+
JCB_J_SECURE,
|
|
170
|
+
J_SECURE_CAPABLE,
|
|
171
|
+
DIRECT_DEBIT,
|
|
172
|
+
BANK_TRANSFER,
|
|
173
|
+
PAYPAL,
|
|
174
|
+
AMEX_SAFEKEY,
|
|
175
|
+
SAFEKEY_CAPABLE,
|
|
176
|
+
MASTERPASS,
|
|
177
|
+
BIZUM,
|
|
178
|
+
UPI_EXPRESSPAY,
|
|
179
|
+
GOOGLE_PAY,
|
|
180
|
+
APPLE_PAY,
|
|
181
|
+
UPI_SECUREPLUS,
|
|
182
|
+
DISCOVER_CAPABLE,
|
|
183
|
+
DISCOVER_PROTECTBUY,
|
|
184
|
+
DISCOVER,
|
|
185
|
+
AMAZON_PAY,
|
|
186
|
+
VISA_CHALLENGE,
|
|
187
|
+
MASTERCARD_CHALLENGE,
|
|
188
|
+
VISA_FRICTIONLESS,
|
|
189
|
+
MASTERCARD_FRICTIONLESS,
|
|
190
|
+
VISA_ATTEMPT,
|
|
191
|
+
MASTERCARD_ATTEMPT,
|
|
192
|
+
AMEX_CHALLENGE,
|
|
193
|
+
DISCOVER_CHALLENGE,
|
|
194
|
+
AMEX_FRICTIONLESS,
|
|
195
|
+
DISCOVER_FRICTIONLESS,
|
|
196
|
+
AMEX_ATTEMPT,
|
|
197
|
+
DISCOVER_ATTEMPT,
|
|
198
|
+
DINERS_PROTECTBUY,
|
|
199
|
+
DINERS_PROTECTBUY_CHALLENGE,
|
|
200
|
+
DINERS_PROTECTBUY_FRICTIONLESS,
|
|
201
|
+
DINERS_PROTECTBUY_ATTEMPT,
|
|
202
|
+
JCB_CHALLENGE,
|
|
203
|
+
JCB_FRICTIONLESS,
|
|
204
|
+
JCB_ATTEMPT,
|
|
205
|
+
SAMSUNG_PAY,
|
|
206
|
+
PAY_BY_ACCOUNT,
|
|
207
|
+
)
|