diff options
author | Michał Ociepka <michal@ociepka.info> | 2013-11-07 16:22:32 +0100 |
---|---|---|
committer | Michał Ociepka <michal@ociepka.info> | 2013-11-07 16:22:32 +0100 |
commit | d4b6c998fac3b32693ae15bfa7afd16d3f960405 (patch) | |
tree | 75dbc06b80ddc10736f9b7fb4dc81ade6c221365 /payments/__init__.py | |
parent | ad8a52656bae7032484aed5418ec0251abb3fc30 (diff) | |
download | django-payments-taler-d4b6c998fac3b32693ae15bfa7afd16d3f960405.tar.gz django-payments-taler-d4b6c998fac3b32693ae15bfa7afd16d3f960405.tar.bz2 django-payments-taler-d4b6c998fac3b32693ae15bfa7afd16d3f960405.zip |
Replace the CreditCard object by a function
Diffstat (limited to 'payments/__init__.py')
-rw-r--r-- | payments/__init__.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/payments/__init__.py b/payments/__init__.py index 151e915..3c96350 100644 --- a/payments/__init__.py +++ b/payments/__init__.py @@ -1,3 +1,4 @@ +import re from collections import namedtuple try: from urllib.parse import urljoin @@ -112,3 +113,19 @@ def get_payment_model(): settings.PAYMENT_MODEL) raise ImproperlyConfigured(msg) return payment_model + + +CARD_TYPES = [ + ('^4[0-9]{12}(?:[0-9]{3})?$', 'visa', 'VISA'), + ('^5[1-5][0-9]{14}$', 'mastercard', 'MasterCard'), + ('^6(?:011|5[0-9]{2})[0-9]{12}$', 'discover', 'Discover'), + ('^3[47][0-9]{13}$', 'amex', 'American Express'), + ('^(?:(?:2131|1800|35\d{3})\d{11})$', 'jcb', 'JCB'), + ('^(?:3(?:0[0-5]|[68][0-9])[0-9]{11})$', 'diners', 'Diners Club')] + + +def get_credit_card_issuer(number): + for regexp, card_type, name in CARD_TYPES: + if re.match(regexp, number): + return card_type, name + return None, None
\ No newline at end of file |