https://github.com/netshy/graduate_work
This project was implemented as a graduation assignment in the middle Python course at Yandex Practicum.
Implement the "Billing" project. Two methods for working with cards must be developed: paying for a subscription and refunding the payment. The system should be resilient to interruptions: there should be no double charges, and users should always have the guarantee that the operation has been executed. Besides implementing the system, integrate it with Django's admin panel so you can monitor client subscription payments.
- Users can pay for a subscription.
- Users can get a refund if they unsubscribe.
- The refund amount is calculated based on the subscription's days since payment.
- Administrators have the functionality to view and manually configure individual subscriptions.
- Email notifications are sent via Mailgun about user transactions (successful/unsuccessful/refund).
- Status checks of transactions in case of network disruptions.
- User registers.
- User logs in and receives an access token.
- User selects a subscription plan with subscription_plan_id.
- Yookassa generates a link for subscription payments.
- User successfully pays.
- User receives an email confirming the successful payment.
- Subscription is activated.
- User specifies the active subscription to cancel with subscription_id.
- User receives an email confirming the cancellation of the subscription.
- Subscription is canceled.