Skip to content

Commit 8bb2172

Browse files
Merge pull request #1414 from buckaroo-it/BP-4999-Display-bank-transfer-payment-details-on-success-page
BP-4999-Display-bank-transfer-payment-details-on-success-page
2 parents 6a383e3 + 9c9ba0f commit 8bb2172

File tree

14 files changed

+226
-7
lines changed

14 files changed

+226
-7
lines changed

Block/Checkout/Success.php

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
use Magento\Framework\App\Http\Context as HttpContext;
2626
use Magento\Framework\View\Element\Template\Context as TemplateContext;
2727
use Magento\Sales\Model\Order\Config;
28+
use Magento\Framework\Pricing\Helper\Data as PriceHelper;
29+
use Magento\Sales\Api\Data\OrderInterface;
2830

2931
class Success extends \Magento\Checkout\Block\Onepage\Success
3032
{
@@ -33,6 +35,16 @@ class Success extends \Magento\Checkout\Block\Onepage\Success
3335
*/
3436
protected $currentCustomer;
3537

38+
/**
39+
* @var PriceHelper
40+
*/
41+
protected $priceHelper;
42+
43+
/**
44+
* @var Session
45+
*/
46+
protected $checkoutSession;
47+
3648
/**
3749
* @param TemplateContext $context
3850
* @param Session $checkoutSession
@@ -47,6 +59,7 @@ public function __construct(
4759
Config $orderConfig,
4860
HttpContext $httpContext,
4961
CurrentCustomer $currentCustomer,
62+
PriceHelper $priceHelper,
5063
array $data = []
5164
) {
5265
parent::__construct(
@@ -56,6 +69,70 @@ public function __construct(
5669
$httpContext,
5770
$data
5871
);
72+
$this->checkoutSession = $checkoutSession;
5973
$this->currentCustomer = $currentCustomer;
74+
$this->priceHelper = $priceHelper;
75+
}
76+
77+
/**
78+
* Check whether last order was placed with Buckaroo Transfer.
79+
*/
80+
public function isTransferPayment(): bool
81+
{
82+
$order = $this->getOrder();
83+
if (!$order) {
84+
return false;
85+
}
86+
$payment = $order->getPayment();
87+
if (!$payment) {
88+
return false;
89+
}
90+
91+
return $payment->getMethod() === 'buckaroo_magento2_transfer';
92+
}
93+
94+
/**
95+
* Return transfer details from payment additional information if available.
96+
*
97+
* @return array
98+
*/
99+
public function getTransferDetails(): array
100+
{
101+
$order = $this->getOrder();
102+
if (!$order) {
103+
return [];
104+
}
105+
106+
$payment = $order->getPayment();
107+
if (!$payment) {
108+
return [];
109+
}
110+
111+
$details = $payment->getAdditionalInformation('transfer_details');
112+
if (!is_array($details)) {
113+
return [];
114+
}
115+
116+
return $details;
117+
}
118+
119+
/**
120+
* Format price in order currency.
121+
*/
122+
public function formatPrice(float $amount): string
123+
{
124+
return $this->priceHelper->currency($amount, true, false);
125+
}
126+
127+
/**
128+
* Get last real order from checkout session.
129+
*/
130+
public function getOrder(): ?OrderInterface
131+
{
132+
$order = $this->checkoutSession->getLastRealOrder();
133+
if ($order && $order->getId()) {
134+
return $order;
135+
}
136+
return null;
60137
}
61138
}

Gateway/Response/TransferDetailsHandler.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function handle(array $handlingSubject, array $response)
3737
/** @var OrderPaymentInterface $payment */
3838
$payment = $paymentDO->getPayment();
3939

40-
/** @var SDKTransactionResponse $transaction */
40+
/** @var SDKTransactionResponse $transactionResponse */
4141
$transactionResponse = SubjectReader::readTransactionResponse($response);
4242

4343
$transferDetails = $this->getTransferDetails($transactionResponse);
@@ -51,14 +51,16 @@ public function handle(array $handlingSubject, array $response)
5151
*/
5252
protected function getTransferDetails($transactionResponse): array
5353
{
54-
$serviceParameters = $transactionResponse->getServiceParameters();
54+
$serviceParameters = ($i = array_search('transfer', array_column($transactionResponse->data('Services') ?? [], 'Name'))) !== false
55+
? array_column($transactionResponse->data('Services')[$i]['Parameters'], 'Value', 'Name')
56+
: [];
5557

5658
return [
5759
'transfer_amount' => $transactionResponse->getAmount(),
58-
'transfer_paymentreference' => $serviceParameters['paymentreference'] ?? '',
59-
'transfer_accountholdername' => $serviceParameters['accountholdername'] ?? '',
60-
'transfer_iban' => $serviceParameters['iban'] ?? '',
61-
'transfer_bic' => $serviceParameters['bic'] ?? '',
60+
'transfer_paymentreference' => $serviceParameters['PaymentReference'] ?? '',
61+
'transfer_accountholdername' => $serviceParameters['AccountHolderName'] ?? '',
62+
'transfer_iban' => $serviceParameters['IBAN'] ?? '',
63+
'transfer_bic' => $serviceParameters['BIC'] ?? '',
6264
];
6365
}
6466
}

i18n/be_FR.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,12 @@
2424
"Enter your Buckaroo Hosted Fields Client ID, obtainable from the Buckaroo Plaza at → Settings → <a href="https://plaza.buckaroo.nl/Configuration/TokenApi/Applications" target="_blank">Token registration</a>.","Entrez votre Buckaroo Hosted Fields Client ID, disponible depuis le Buckaroo Plaza dans → Paramètres → <a href="https://plaza.buckaroo.nl/Configuration/TokenApi/Applications" target="_blank">Enregistrement du jeton</a>."
2525
"Enter your Buckaroo Hosted Fields Client Secret, obtainable from the Buckaroo Plaza at → Settings → <a href="https://plaza.buckaroo.nl/Configuration/TokenApi/Applications" target="_blank">Token registration</a>.","Entrez votre Buckaroo Hosted Fields Client Secret, disponible depuis le Buckaroo Plaza dans → Paramètres → <a href="https://plaza.buckaroo.nl/Configuration/TokenApi/Applications" target="_blank">Enregistrement du jeton</a>."
2626
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Commande réactivée: Paiement complété après annulation (Notification push reçue). ID de transaction: ""%1"""
27+
"Transfer","Virement"
28+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Merci pour votre commande. Vous avez choisi de régler par virement. Pour finaliser votre commande, veuillez transférer le montant restant, %1, en utilisant les détails ci-dessous."
29+
"Amount","Montant"
30+
"Payment reference","Référence de paiement"
31+
"Accountholder","Titulaire de compte"
32+
"IBAN","IBAN"
33+
"BIC","BIC"
34+
"NB","NB"
35+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Pour garantir le bon déroulement de votre paiement, vous devez indiquer la référence de paiement %1 dans la description de votre transfert. Cela permettra un traitement plus rapide du paiement."

i18n/de_AT.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,3 +503,12 @@
503503
"Expiry Date:","Ablaufdatum:"
504504
"CVC:","CVC:"
505505
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Bestellung reaktiviert: Zahlung nach Stornierung abgeschlossen (Push-Benachrichtigung erhalten). Transaktions-ID: ""%1"""
506+
"Transfer","Überweisung"
507+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Vielen Dank für Ihre Bestellung. Sie haben sich für die Zahlung per Überweisung entschieden. Um Ihre Bestellung abzuschließen, überweisen Sie bitte den ausstehenden Betrag %1 unter Verwendung der nachstehenden Angaben."
508+
"Amount","Betrag"
509+
"Payment reference","Zahlungsreferenz"
510+
"Accountholder","Kontoinhaber"
511+
"IBAN","IBAN"
512+
"BIC","BIC"
513+
"NB","NB"
514+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Damit Ihre Zahlung reibungslos verarbeitet werden kann, müssen Sie die Zahlungsreferenz %1 in der Beschreibung Ihrer Überweisung. Dies ermöglicht eine schnellere Abwicklung der Zahlung."

i18n/de_CH.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,3 +503,12 @@
503503
"Expiry Date:","Ablaufdatum:"
504504
"CVC:","CVC:"
505505
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Bestellung reaktiviert: Zahlung nach Stornierung abgeschlossen (Push-Benachrichtigung erhalten). Transaktions-ID: ""%1"""
506+
"Transfer","Überweisung"
507+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Vielen Dank für Ihre Bestellung. Sie haben sich für die Zahlung per Überweisung entschieden. Um Ihre Bestellung abzuschließen, überweisen Sie bitte den ausstehenden Betrag %1 unter Verwendung der nachstehenden Angaben."
508+
"Amount","Betrag"
509+
"Payment reference","Zahlungsreferenz"
510+
"Accountholder","Kontoinhaber"
511+
"IBAN","IBAN"
512+
"BIC","BIC"
513+
"NB","NB"
514+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Damit Ihre Zahlung reibungslos verarbeitet werden kann, müssen Sie die Zahlungsreferenz %1 in der Beschreibung Ihrer Überweisung. Dies ermöglicht eine schnellere Abwicklung der Zahlung."

i18n/de_DE.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,3 +508,12 @@
508508
"Redirect (Buckaroo Hosted Payment Page)","Redirect (Buckaroo Hosted Payment Page)"
509509
"Select Inline to embed Apple Pay directly within the Magento checkout. Select Redirect to send customers to Buckaroo's secure Hosted Payment Page. Note: When using the Redirect option, Apple Pay can only be offered in the checkout (not in other areas like the mini-cart or product page).","Wählen Sie Inline, um Apple Pay direkt im Magento-Checkout einzubetten. Wählen Sie Redirect, um Kunden zur sicheren Hosted Payment Page von Buckaroo weiterzuleiten. Hinweis: Bei Verwendung der Redirect-Option kann Apple Pay nur im regulären Checkout angeboten werden (nicht z. B. im Mini-Warenkorb oder auf der Produktseite)."
510510
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Bestellung reaktiviert: Zahlung nach Stornierung abgeschlossen (Push-Benachrichtigung erhalten). Transaktions-ID: ""%1"""
511+
"Transfer","Überweisung"
512+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Vielen Dank für Ihre Bestellung. Sie haben sich für die Zahlung per Überweisung entschieden. Um Ihre Bestellung abzuschließen, überweisen Sie bitte den ausstehenden Betrag %1 unter Verwendung der nachstehenden Angaben."
513+
"Amount","Betrag"
514+
"Payment reference","Zahlungsreferenz"
515+
"Accountholder","Kontoinhaber"
516+
"IBAN","IBAN"
517+
"BIC","BIC"
518+
"NB","NB"
519+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Damit Ihre Zahlung reibungslos verarbeitet werden kann, müssen Sie die Zahlungsreferenz %1 in der Beschreibung Ihrer Überweisung. Dies ermöglicht eine schnellere Abwicklung der Zahlung."

i18n/en_US.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,12 @@
3939
"Redirect (Buckaroo Hosted Payment Page)","Redirect (Buckaroo Hosted Payment Page)"
4040
"Select Inline to embed Apple Pay directly within the Magento checkout. Select Redirect to send customers to Buckaroo's secure Hosted Payment Page. Note: When using the Redirect option, Apple Pay can only be offered in the checkout (not in other areas like the mini-cart or product page).","Select Inline to embed Apple Pay directly within the Magento checkout. Select Redirect to send customers to Buckaroo's secure Hosted Payment Page. Note: When using the Redirect option, Apple Pay can only be offered in the checkout (not in other areas like the mini-cart or product page)."
4141
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1"""
42+
"Transfer","Transfer"
43+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below."
44+
"Amount","Amount"
45+
"Payment reference","Payment reference"
46+
"Accountholder","Accountholder"
47+
"IBAN","IBAN"
48+
"BIC","BIC"
49+
"NB","NB"
50+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer.","To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer."

i18n/es_ES.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,3 +490,12 @@
490490
"Redirect (Buckaroo Hosted Payment Page)","Redirección (Página de pago alojada por Buckaroo)"
491491
"Select Inline to embed Apple Pay directly within the Magento checkout. Select Redirect to send customers to Buckaroo's secure Hosted Payment Page. Note: When using the Redirect option, Apple Pay can only be offered in the checkout (not in other areas like the mini-cart or product page).","Selecciona Integrado para mostrar Apple Pay directamente en el checkout de Magento. Selecciona Redirección para enviar a los clientes a la página de pago segura alojada por Buckaroo. Nota: Cuando se utiliza la opción Redirección, Apple Pay solo estará disponible en el checkout (no en otras áreas como el mini carrito o la página del producto)."
492492
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Pedido reactivado: Pago completado después de la cancelación (Notificación push recibida). ID de transacción: ""%1"""
493+
"Transfer","Transferencia"
494+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Gracias por su pedido. Ha elegido pagar por transferencia. Para completar su pedido, transfiera el importe pendiente, %1, utilizando los datos que figuran a continuación."
495+
"Amount","Importe"
496+
"Payment reference","Referencia de pago"
497+
"Accountholder","Titular de cuenta"
498+
"IBAN","IBAN"
499+
"BIC","BIC"
500+
"NB","NB"
501+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Para garantizar que su pago pueda procesarse sin problemas, debe citar la referencia de pago %1 en la descripción de su transferencia. Esto permitirá un procesamiento más rápido del pago."

i18n/fr_BE.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,3 +503,12 @@
503503
"Expiry Date:","Date d'expiration:"
504504
"CVC:","CVC:"
505505
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Commande réactivée: Paiement complété après annulation (Notification push reçue). ID de transaction: ""%1"""
506+
"Transfer","Virement"
507+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Merci pour votre commande. Vous avez choisi de régler par virement. Pour finaliser votre commande, veuillez transférer le montant restant, %1, en utilisant les détails ci-dessous."
508+
"Amount","Montant"
509+
"Payment reference","Référence de paiement"
510+
"Accountholder","Titulaire de compte"
511+
"IBAN","IBAN"
512+
"BIC","BIC"
513+
"NB","NB"
514+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Pour garantir le bon déroulement de votre paiement, vous devez indiquer la référence de paiement %1 dans la description de votre transfert. Cela permettra un traitement plus rapide du paiement."

i18n/fr_FR.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,3 +508,12 @@
508508
"Redirect (Buckaroo Hosted Payment Page)","Redirection (Page de paiement hébergée par Buckaroo)"
509509
"Select Inline to embed Apple Pay directly within the Magento checkout. Select Redirect to send customers to Buckaroo's secure Hosted Payment Page. Note: When using the Redirect option, Apple Pay can only be offered in the checkout (not in other areas like the mini-cart or product page).","Sélectionnez Intégré pour intégrer Apple Pay directement dans le passage en caisse de Magento. Sélectionnez Redirection pour rediriger les clients vers la page de paiement sécurisée hébergée par Buckaroo. Remarque: Lorsque l'option Redirection est utilisée, Apple Pay ne peut être proposé que dans le passage en caisse (et non dans d'autres zones comme le mini-panier ou la page produit)."
510510
"Order reactivated: Payment completed after cancellation (Push notification received). Transaction ID: ""%1""","Commande réactivée: Paiement complété après annulation (Notification push reçue). ID de transaction: ""%1"""
511+
"Transfer","Virement"
512+
"Thank you for your order. You have chosen to pay by transfer. To complete your order, please transfer the outstanding amount, %1, using the details below.","Merci pour votre commande. Vous avez choisi de régler par virement. Pour finaliser votre commande, veuillez transférer le montant restant, %1, en utilisant les détails ci-dessous."
513+
"Amount","Montant"
514+
"Payment reference","Référence de paiement"
515+
"Accountholder","Titulaire de compte"
516+
"IBAN","IBAN"
517+
"BIC","BIC"
518+
"NB","NB"
519+
"To ensure that your payment can be processed smoothly, you must quote the payment reference %1 in the description of your transfer. This will enable faster processing of the payment.","Pour garantir le bon déroulement de votre paiement, vous devez indiquer la référence de paiement %1 dans la description de votre transfert. Cela permettra un traitement plus rapide du paiement."

0 commit comments

Comments
 (0)