alfio-event / alf.io

alf.io - The open source ticket reservation system for conferences, trade shows, workshops, meetups
https://alf.io
GNU General Public License v3.0
1.43k stars 352 forks source link

Reserving ticket with "Offline Payment" provider presents opaque error when on same day event occurs #1415

Open shanebrowncs opened 1 month ago

shanebrowncs commented 1 month ago

Describe the bug Choosing the "Bank Transfer" payment option when reserving a ticket on the same day as the event occurs, the error Payment processing error: An unexpected error has occurred. Please contact the event's organizers in order to get assistance. appears.

To Reproduce

  1. Create an online event scheduled for the current day with the "offline payment" option enabled
  2. As a user, attempt to reserve a ticket for the event using the "Bank Transfer" option

Expected behavior This issue appears to occur because the 'isActive' method on the 'BankTransferManager' payment provider returns false when the current day is the same day as the event [1]. When the endpoint at /reservation/{reservationId} attempts start processing the payment it can't find an active provider to fulfill the request and ends up displaying the opaque error above.

I have further thoughts on this behavior below but at bare minimum I don't think an attendee should be able to choose a non-active or invalid payment method. Otherwise at least presenting them with an error that explains what went wrong would be better.

From warnings posted in BankTransferManager this seems to be in a way by design to not allow same day payments: accepting offline payments the same day is a very bad practice and should be avoided. Please set cash payment as payment method next time. I have been using this feature to accept Interac E-Transfers which happen almost instantaneously. Using the cash payment option will not work for me as my events are online only. I can understand the perspective of the warning when managing a large event using bank-transfers with multi-day waiting periods. However, for my use-case of small online only events with near instantaneous transfers, accepting payments same day is not a big issue.

Would you be open to one of the following changes?

  1. Allow the offline payment option to function up to the ticket purchase deadline
  2. Allow the system admin or organization to configure the cut off time relative to the start of the event in which a user can reserve a ticket with an offline payment
  3. An alternative that allows my use-case

I would be interested in working on a PR to address this issue. I just want to see first if you agree there is an issue here and if so what the solution should be.

Thank you!

Screenshots

  1. Selecting a ticket 2024-10-18_01
  2. Payment summary screen, {{0}} days to complete, opaque error presented to user 2024-10-18_03

Desktop (please complete the following information):

cbellone commented 1 month ago

Hi @shanebrowncs ,

thanks for the detailed report.

The "Bank Transfer" payment method was first implemented 10 years ago, when the quickest bank transfer (at least in Europe) could take 1+ working days to complete.

I agree that we'd need something different to cover the new "instant bank transfer" offers.

From your report, I see two different issues

1 - (bug) Payment page should be consistent with BankTransferManager.

In your example, users should not see "Bank Transfer" as a available payment option

2 - (feature) support instant offline payment options

We are observing a growing interest from organizers about different "instant payment" options available in different countries (see for example #1411 and #1384). It would be impossible for us to implement an integration with all of them. So we were thinking of implementing a generic custom "offline" payment method. We could let organizers define a set of custom offline payment methods, each one with a different description (preferably markdown, in order to display QR-Codes or links when available).

WDYT? Would that be something you'd be interested in contributing? If yes, we can have a quick chat about it.

Thanks in advance Celestino

shanebrowncs commented 1 month ago

Hi @cbellone,

I agree with your assessment, allowing organizers to define custom offline payment methods would be a good solution. Yes, I would be interested in working on this. I would like to know more about what you have in mind regarding the customization features and general scope.

Thanks,

Shane

cbellone commented 1 month ago

That's great! :+1: Please reach out to hello at alf.io with a couple of availability for an initial video call. FYI, our (@syjer's and mine) timezone is UTC+1

Thank you!