APP URL - https://chqbook-razorpay-integeration.herokuapp.com/
Create Order on Chqbook server ------> PAY -----> Pay with RazorPay -----> update payment status on Chqbook server
Posgres DB (because it could easily be configured on Heroku)
- A service is already available which generates the transaction id for each order created.
- Payment is auto captured.
- Amount will be entered in paisa, i.e. amount entered can not be less than 100 (1 rupee).
- No frontend validation being done as of now.
- No unit tests written as of now.
- uses spring boot
- Restful APIs
- Coding Best practices has been followed.
- Razorpay services and Chqbook services are loosly coupled.
- JPA/Hibernate has been used as ORM for easier entity management.
- HTML/JS/Jquery has been used for frontend.
- transaction Id filed - This is assumed that some other service has already generated this transaction id, and we will pass it in background when this service becomes available.
- order details - details of ordered items, for simplicict I have used a string filed, otherwise this should have been implemented using objects like LineItems
- amount - the amount is in the paise. For example, if you want to enter 100 rupees, you need to enter 100*100=10000 paisa. That means you can not enter amount lass than 100.
- receipt - receipt details if any available
- Save Payment gateway credentials and database JDBC url in environment variable. Which depends on operation system, which can be easily googled.
- clone the project
- build and run
- Go to localhost:8080
- improve frontend with validations
- Implement full payment cycle of Razorpay like taking care of Lazy Authorization, Double Paymmetns, Refunds, Retries etc.
- Proper input validation at backend also.
- Implement logging and session management for user using spring security.
- Proper logging