Another way to store currency numbers instead of strings is to use integer numbers that represent cents as opposed to whole units + decimals. Example: $14.99 can be stored as "14.99" or as 1499 (usd cents)
Hey great video. I have a question about microservice approach: If we make the processing asynchronous with a service receiving the requests and others services as processors (the ones that communicat with the gateways). 1 - How would we communicate to the user? Since he's expecting the purchase redirect page to finish? 2 - How would we store the data? Since each microservice should have its own db?
no idea why purchase goes back to backend system it needs to automatically land in external service pop up page with the token that has been generated in a previous step. Once the PSP does its part it does send it back to the application via webhook that you created at those PSP services beforehand and backend system needs to act on that point.
Is "connecting to external system from internal" a correct design ? or do we need to add something between Backend Payment System and PayPal for security ?
In case we use an asynchronous communication, that we respond to the user? That the payment was correct? What happens if after processing the payment, we realize that it was not successful?
If you look at most e-commerce flows, you usually get a confirmation email immediately, and then another when the item actually ships. So, you can always change the order status and email the user if things change post-confirmation.
I think there is something wrong in your design about when a user click purchase. I think the first step should be send a request to Paypal/stripe, not the Backend Payment system, because that Purchase page belongs to Paypal/stripe. After the purchase is finished, Paypal/stripe will send a request to tell Backend service that the purchase was finished.
That's correct. The point of reaching out to your backend first is, there might still be data you want to store relevant to the user's intent, before initiating request with Paypal/Stripe.
In what step do you send the card details? Is it directly to the gateway or will it come to the backend service and then backend service would take care of calling the gateway with the necessary details. I suppose while creating checkout_id you would store the checkout info like the bill amount etc
This is one the best videos on payment systems and it definitely deserves more views; simple and straightforward!
Glad you found it helpful!
Another way to store currency numbers instead of strings is to use integer numbers that represent cents as opposed to whole units + decimals.
Example: $14.99 can be stored as "14.99" or as 1499 (usd cents)
strange that the author is not aware of such standard approach
Yes! That’s a great point! I have done that a few times.
Found this channel today and it made system design EASYYY!! Thanks!
This was exactly what I needed, THANK YOU Irtiza
Glad you found it valuable.
This was super helpful and explained in such a high level way.. thank you!
You're so welcome!
This is what I wanted Keep going sir🚀🚀
So glad! Hope you found it helpful : )
This was beautifully explained, thanks!
keep uploading videos like this . good one
I will try my best
Awesome! I think this is the best video that explains payment system. I subscribe your channel immediately, keep going bro🎉🎉🎉
Thank you so much! It means a ton.
I am going to start uploading more regularly soon : )
beautifully explained, thanks!
I like the visualization. Keep up the good work!
Thanks for the feedback! Hope you are finding these helpful : )
very good high level view of the system, thank you!
Glad you found it helpful! Cheers.
Hey great video. I have a question about microservice approach:
If we make the processing asynchronous with a service receiving the requests and others services as processors (the ones that communicat with the gateways).
1 - How would we communicate to the user? Since he's expecting the purchase redirect page to finish?
2 - How would we store the data? Since each microservice should have its own db?
no idea why purchase goes back to backend system it needs to automatically land in external service pop up page with the token that has been generated in a previous step. Once the PSP does its part it does send it back to the application via webhook that you created at those PSP services beforehand and backend system needs to act on that point.
Thanks you for the wonderful lecture
You're most welcome
Is "connecting to external system from internal" a correct design ? or do we need to add something between Backend Payment System and PayPal for security ?
Awesome
Thank you!
thanks
hi thanks for explanation. question - what is difference between "checkout" and "buy now"?
Checkout usually takes you to the final page where you can complete the purchase with one final click (something like "Buy Now").
In case we use an asynchronous communication, that we respond to the user? That the payment was correct?
What happens if after processing the payment, we realize that it was not successful?
If you look at most e-commerce flows, you usually get a confirmation email immediately, and then another when the item actually ships.
So, you can always change the order status and email the user if things change post-confirmation.
I think there is something wrong in your design about when a user click purchase. I think the first step should be send a request to Paypal/stripe, not the Backend Payment system, because that Purchase page belongs to Paypal/stripe. After the purchase is finished, Paypal/stripe will send a request to tell Backend service that the purchase was finished.
That's correct. The point of reaching out to your backend first is, there might still be data you want to store relevant to the user's intent, before initiating request with Paypal/Stripe.
In what step do you send the card details? Is it directly to the gateway or will it come to the backend service and then backend service would take care of calling the gateway with the necessary details.
I suppose while creating checkout_id you would store the checkout info like the bill amount etc
It would be the latter.
so, during checkout and before filling any creditcard and debit card info or addresses, checkout_id is generated?
In this design, yes. But there are many different ways of implementing it.
Can you help identify those microservices or multiple systems within the backend payment system?
Hi! Not sure how to do that. If you want details, please send me an email with some more context.
Do paypals also work in pakistan?
I am not able to open your notes, are the links for notes updated? thanks
They should be updated..
What are yr Socials??wanna link upp
HI, How POST request with purshce info & token go to Backend Payment system, i belive it should go to stripe/paypal as the page belong to them.
Please provide the details