| 
									
										
										
										
											2016-03-11 19:42:45 +01:00
										 |  |  | __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 | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  |     def make_payment(cls, user, amount, token, time): | 
					
						
							| 
									
										
										
										
											2016-03-11 19:42:45 +01:00
										 |  |  |         try: | 
					
						
							| 
									
										
										
										
											2017-05-25 13:04:29 -05:00
										 |  |  |             print(amount) | 
					
						
							|  |  |  |             print(amount) | 
					
						
							|  |  |  |             print(amount) | 
					
						
							| 
									
										
										
										
											2016-03-11 19:42:45 +01:00
										 |  |  |             # Use Stripe's library to make requests... | 
					
						
							|  |  |  |             charge = stripe.Charge.create( | 
					
						
							|  |  |  |                 amount=amount, | 
					
						
							|  |  |  |                 currency='chf', | 
					
						
							|  |  |  |                 source=token, | 
					
						
							|  |  |  |                 description=settings.STRIPE_DESCRIPTION_ON_PAYMENT | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  |             if charge['status'] == 'succeeded': | 
					
						
							| 
									
										
										
										
											2016-03-11 19:42:45 +01:00
										 |  |  |                 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." | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  |             # maybe send email | 
					
						
							| 
									
										
										
										
											2016-03-11 19:42:45 +01:00
										 |  |  |         except Exception as e: | 
					
						
							|  |  |  |             return "Currently its not possible to make payments." | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  |             # maybe send email |