Payment Tech Design - liuninglin/pandama-ext GitHub Wiki

Stripe is a fully intergrated suite of payments products. I refer to the documentation here (Custom payment): https://stripe.com/docs/payments/quickstart.

Stripe bring three benefits:

  1. Accept payments easily
  2. Move money globally
  3. Scale globally

In our web application, there are three payment scenarios:

  1. Successful payment. If all your input is correct and valid and stripe can successfully process it, you will be redirected to the Payment Done webpage. Test case for this scenario: 4242 4242 4242 4242 with any expiration, CVC, and postal code.
  2. Authentication with 3D Secure and PINs. If the card need authentication, just finish the authentication and you will be redirected to the Payment Done webpage. Test case for this scenario: 4000 0025 0000 3155 with any expiration, CVC, and postal code.
  3. Card errors due to declines, fraud, or invalid data. If there's something wrong with your card information or card (eg. insufficient fund of credit card), you will beredirected to the Payment Fail webpage. Test case for this scenario: 4000 0000 0000 9995 with any expiration, CVC, and postal code.

Here's the video recording for the three scenarios above:

https://www.youtube.com/watch?v=F7DtnPjRyEM

Here's the time sequence diagram for payment.

One thing to notice here is that the user can directly talk to Stripe without sending message to our application, which ensures the payment security.