__author__ = 'tomislav' from django.conf import settings from .models import CreditCards import stripe stripe.api_key = settings.STRIPE_API_PRIVATE_KEY class StripePayment(object): @classmethod def make_payment(cls, user, amount, token, time): try: print(amount) print(amount) print(amount) # Use Stripe's library to make requests... charge = stripe.Charge.create( amount=amount, currency='chf', source=token, description=settings.STRIPE_DESCRIPTION_ON_PAYMENT ) if charge['status'] == 'succeeded': obj = CreditCards.objects.filter(user_id=user.id).first() obj.payment_type = time obj.save() return charge['status'] except stripe.error.CardError as e: # Since it's a decline, stripe.error.CardError will be caught body = e.json_body err = body['error'] return err['message'] except stripe.error.RateLimitError as e: return "Too many requests made to the API too quickly" except stripe.error.InvalidRequestError as e: return "Invalid parameters" except stripe.error.AuthenticationError as e: # Authentication with Stripe's API failed # (maybe you changed API keys recently) pass except stripe.error.APIConnectionError as e: return "Currently its not possible to make payments." except stripe.error.StripeError as e: return "Currently its not possible to make payments." # maybe send email except Exception as e: return "Currently its not possible to make payments." # maybe send email