mollie / mollie-api-python

Mollie API client for Python
http://www.mollie.com
BSD 2-Clause "Simplified" License
113 stars 55 forks source link

Test hosted checkout doesn't return / redirect on cancellation / failure #338

Closed evertrol closed 9 months ago

evertrol commented 9 months ago

This is perhaps more of a question than an issue, but I couldn't really find a right place to ask (no forum; StackOverflow seems a tad too far-fetched for it). And since I'm using the Mollie Python API, I figure I'd check here.

I'm running some tests to integrate Mollie into an existing web/CMS framework, using the hosted checkout option. Testing payments now works, but choosing the cancel, expired, failed or open option (basically any other status option than paid) just returns me to the main checkout screen. I don't see any response in my test server from a Mollie webhook, what I had expected.

The payment data contains amount, description, metadata, redirectUrl, webhookUrl and cancelUrl ( the latter is never used, it seems from my test server); basically as per the payment creation example.

I do allow for two payments options (credit card and iDeal), and I did read ( https://docs.mollie.com/payments/status-changes ) the following for a failed status:

When you use Mollie Checkout and you offer multiple payment methods you will be redirected to the method selection screen after a payment failure. So, the consumer can choose another method to finish the payment.

But that is only mentioned for "failed"; not for e.g. "canceled". Does this apply to other statuses as well? And as mentioned, I don't see anything from a webhook; no POST from mollie to my webhook url. (Sometimes later, with an 'expired' status. But not directly.)

There is a small grey text at the bottom left (normal desktop screen), "back to previous website", which I'm not sure is a testing thing, or is what an actual customer would see. In the latter case, that does feel rather unclear: I would get confused if my payment fails and I just get send one page back, barely or not noticing the little grey text.

So some direct question(s) would be

JorikMollie commented 9 months ago

Hi,

Does this apply to other statuses as well?

Yes. It applies for all scenarios where the payment is not successful and can be retried. So on cancellation by the consumer we redirect the consumer to the payment method selection page so the consumer can retry (with an other payment method).

There is a small grey text at the bottom left (normal desktop screen), "back to previous website"

This text cancels the payment, redirects the consumer to the redirectUrl and we will call the webhookUrl.

evertrol commented 9 months ago

Thanks for the quick reply; much appreciated! So technically, I could file it as a documentation improvement, but mwah...

At least it looks like there's nothing really wrong on my side, and that I likely interpreted the results correctly. That way, I can safely continue with my implementation.