48 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
__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
 |