bcgov / reserve-rec-public

For the Parks and Recreation Digital Transformation project.
Apache License 2.0
0 stars 2 forks source link

[XL] Prototype payment processing - stripe #7

Closed meyerdarcie closed 4 months ago

meyerdarcie commented 5 months ago

Description:

As a park visitor, I want to be able to pay for my backcountry camping experience online so that I do not need to pay in the parking lot and can secure a reservation.

Payment processing is necessary for next iteration of reservation service components and a pattern we have not yet done - hence the idea for trying this out as a prototype. This prototype will be used for testing with users and adding to future prototypes of larger workflows (eg. full bookings). It is meant to be iterated and improved upon.

This ticket is to look into stripe as an option.

Use cases for prototype:

happy path - success all is correct no errors wrong info entered (error) (for MVP, just generic errors)

no credit available (error) bots (likely not a thing)

Payments now handled via Stripe or Bambora. Payments can be viewed in the administrative portal of each respective payment processor.

Acceptance Criteria:

Payment acceptance and error handling is performed by the payment processor. We have no control over this process, we can only display the errors, which is trivial/out of scope for this investigation. To see the response from the payment processor, visit the administrative portal or console log the errors.

Given I am a visitor who wants to purchase something When I click to purchase an item Then I am taken to a payment screen/form where I can enter my information to pay.

Given I am a visitor who wants to purchase something When I fill out my payment info correctly and have credit and click submit/buy/purchase/next Then I get confirmation of my successful payment via text on the next screen.

Given I am a visitor who wants to purchase something When I fill out my payment info incorrectly and click submit/buy/purchase/next Then I get an error message saying my info is incorrect and can try again.

Given I am a visitor who wants to purchase something When I am trying to use an invalid credit card and click submit/buy/purchase/next Then I get an error message saying the card is invalid and can try again.

Given I am a visitor who wants to purchase something When I am trying to use a maxed out credit card and click submit/buy/purchase/next Then I get an error message saying the card is maxed and can try again.

Given I am a robot When I am trying to spam the site by clicking purchase Then I get turned away.

All of the above handled by the processor.

Development Checklist:

Dependencies

Wireframe(s):

Workflows:

Prototype will be scoped to just payment portion of workflow:

Notes:

for prototype, let's not look at the scenario of losing wifi mid process

Definition of Ready (Note: If any of these points are not applicable, mark N/A)

Definition of Done

JLWade commented 5 months ago

Notes from refinement May 28, 2024:

JLWade commented 5 months ago

New ticket: bcgov/reserve-rec-public#10

cameronpettit commented 4 months ago

Payment processor POC now lives at https://github.com/bcgov/reserve-rec-admin/tree/payment-processor-poc. Follow the README to setup the POC on local machines.

Because this ticket turned more into a comparison between Bambora and Stripe, the POC is in a very rough draft state. It investigates how data might flow from a public facing payment terminal to an administrative portal, but a practical implementation of a payment processor may look very different.

meyerdarcie commented 4 months ago

Moving to done. I will take over exploration/approval/compliance advocating for Stripe over Bambora, and create any technical tickets for future sprints as we go.