For legacy experience, the implementation is same as before and it is still using the Sources API. (documentation)
For the new checkout experience (UPE), implemented Multibanco as a voucher based method that uses the Payment Intents API. (documentation)
Followed the implementation of Boleto and Oxxo (the other two available voucher methods)
Testing instructions
New checkout experience
Disable the Legacy checkout experience checkbox from the Stripe settings page.
Enable Multibanco from the Stripe settings page.
Set store currency as Euro.
As a shopper, add a product to the cart. Go to the checkout page. Confirm that Multibanco is offered as a payment method on both shortcode and block checkout pages.
On the checkout page, select Multibanco and place an order.
Confirm that the voucher details are presented on a modal.
In your admin dashboard, confirm you have a new order with on-hold status. Wait for a few minutes and confirm that the order status is transitioned to processing.
Test on both shortcode and block checkout.
Go to the order edit page of a processing order and refund this order. Check in the Stripe dashboard and confirm that the transaction is marked as refunded.
Legacy checkout experience
Enable the Legacy checkout experience checkbox from the Stripe settings page.
Enable Multibanco from the Stripe settings page.
Set store currency as Euro.
As a shopper, add a product to the cart. Go to the checkout page. Confirm that Multibanco is offered as a payment method on the shortcode checkout but missing on the block checkout pages.
On the checkout page, select Multibanco and place an order. You should be redirected to a Stripe hosted page.
In your admin dashboard, confirm you have a new order with on-hold status. Wait for a few minutes and confirm that the order status is transitioned to processing
Fixes #3169
Changes proposed in this Pull Request:
Testing instructions
New checkout experience
Legacy checkout experience
checkbox from the Stripe settings page.on-hold
status. Wait for a few minutes and confirm that the order status is transitioned toprocessing
.Legacy checkout experience
Legacy checkout experience
checkbox from the Stripe settings page.on-hold
status. Wait for a few minutes and confirm that the order status is transitioned toprocessing