Skip to content

Commit 2336354

Browse files
authored
PLGMAG2V2-517: Fix an issue where placing orders through GraphQL return errors or wrong results (#526)
1 parent b042ffe commit 2336354

File tree

3 files changed

+36
-7
lines changed

3 files changed

+36
-7
lines changed

Observer/Gateway/AfterpayDataAssignObserver.php

+16-4
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,21 @@ public function execute(Observer $observer)
3232

3333
$additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
3434
$payment = $this->readPaymentModelArgument($observer);
35-
$payment->setAdditionalInformation('date_of_birth', $additionalData['date_of_birth'] ?? null);
36-
$payment->setAdditionalInformation('gender', $additionalData['gender'] ?? null);
37-
$payment->setAdditionalInformation('phone_number', $additionalData['phone_number'] ?? null);
38-
$payment->setAdditionalInformation('afterpay_terms', $additionalData['afterpay_terms'] ?? null);
35+
36+
if (isset($additionalData['date_of_birth'])) {
37+
$payment->setAdditionalInformation('date_of_birth', $additionalData['date_of_birth']);
38+
}
39+
40+
if (isset($additionalData['gender'])) {
41+
$payment->setAdditionalInformation('gender', $additionalData['gender']);
42+
}
43+
44+
if (isset($additionalData['phone_number'])) {
45+
$payment->setAdditionalInformation('phone_number', $additionalData['phone_number']);
46+
}
47+
48+
if (isset($additionalData['afterpay_terms'])) {
49+
$payment->setAdditionalInformation('afterpay_terms', $additionalData['afterpay_terms']);
50+
}
3951
}
4052
}

Observer/Gateway/IdealDataAssignObserver.php

+8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ public function execute(Observer $observer): void
3434
$additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
3535
$payment = $this->readPaymentModelArgument($observer);
3636

37+
/**
38+
* Return early because the event is being triggered by a GraphQL request which contains a different structure,
39+
* and for that reason the request will be wrongly set as a redirect in next step.
40+
*/
41+
if (isset($additionalData['additional_information']['issuer_id'])) {
42+
return;
43+
}
44+
3745
if (empty($additionalData['issuer_id'])) {
3846
$payment->setAdditionalInformation(
3947
'transaction_type',

Observer/Gateway/In3DataAssignObserver.php

+12-3
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,17 @@ public function execute(Observer $observer)
3232

3333
$additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
3434
$payment = $this->readPaymentModelArgument($observer);
35-
$payment->setAdditionalInformation('date_of_birth', $additionalData['date_of_birth'] ?? null);
36-
$payment->setAdditionalInformation('gender', $additionalData['gender'] ?? null);
37-
$payment->setAdditionalInformation('phone_number', $additionalData['phone_number'] ?? null);
35+
36+
if (isset($additionalData['date_of_birth'])) {
37+
$payment->setAdditionalInformation('date_of_birth', $additionalData['date_of_birth']);
38+
}
39+
40+
if (isset($additionalData['gender'])) {
41+
$payment->setAdditionalInformation('gender', $additionalData['gender']);
42+
}
43+
44+
if (isset($additionalData['phone_number'])) {
45+
$payment->setAdditionalInformation('phone_number', $additionalData['phone_number']);
46+
}
3847
}
3948
}

0 commit comments

Comments
 (0)