From 42876aa952a4770d3a6472b750acb8210a2aa175 Mon Sep 17 00:00:00 2001 From: Joachim Martinsen Date: Mon, 6 Feb 2023 11:41:52 +0100 Subject: [PATCH] fix(HostedXmlBuilder): SVEACARDPAY_PF method support fix --- src/HostedService/Helper/HostedXmlBuilder.php | 116 +++++++++--------- 1 file changed, 57 insertions(+), 59 deletions(-) diff --git a/src/HostedService/Helper/HostedXmlBuilder.php b/src/HostedService/Helper/HostedXmlBuilder.php index ad2ad029..b9a9844c 100644 --- a/src/HostedService/Helper/HostedXmlBuilder.php +++ b/src/HostedService/Helper/HostedXmlBuilder.php @@ -2,6 +2,7 @@ namespace Svea\WebPay\HostedService\Helper; +use Svea\WebPay\Constant\PaymentMethod; use Svea\WebPay\Helper\Helper; use Svea\WebPay\BuildOrder\CreateOrderBuilder; use Svea\WebPay\HostedService\Payment\HostedPayment; @@ -208,83 +209,80 @@ private function serializeCustomer($order, $paymentMethod = NULL) { $this->XMLWriter->startElement("customer"); - if(isset($paymentMethod) && $paymentMethod == "SVEACARDPAY_PF") - { + if ($paymentMethod === PaymentMethod::SVEACARDPAY_PF) { $this->XMLWriter->writeElement("unknowncustomer", "true"); - $this->XMLWriter->writeElement("country", $order->countryCode); } - else { - //nordic country individual - if (isset($order->customerIdentity->ssn)) { - $this->XMLWriter->writeElement("ssn", $order->customerIdentity->ssn); - } elseif (isset($order->customerIdentity->birthDate)) { - $this->XMLWriter->writeElement("ssn", $order->customerIdentity->birthDate); - } - //customer identity for NL and DE when choosing invoice or paymentplan - - if (isset($order->customerIdentity->firstname)) { - $this->XMLWriter->writeElement("firstname", $order->customerIdentity->firstname); - } + //nordic country individual + if (isset($order->customerIdentity->ssn)) { + $this->XMLWriter->writeElement("ssn", $order->customerIdentity->ssn); + } elseif (isset($order->customerIdentity->birthDate)) { + $this->XMLWriter->writeElement("ssn", $order->customerIdentity->birthDate); + } - if (isset($order->customerIdentity->lastname)) { - $this->XMLWriter->writeElement("lastname", $order->customerIdentity->lastname); - } + //customer identity for NL and DE when choosing invoice or paymentplan - if (isset($order->customerIdentity->initials)) { - $this->XMLWriter->writeElement("initials", $order->customerIdentity->initials); - } + if (isset($order->customerIdentity->firstname)) { + $this->XMLWriter->writeElement("firstname", $order->customerIdentity->firstname); + } - if (isset($order->customerIdentity->street)) { - $this->XMLWriter->writeElement("address", $order->customerIdentity->street); - } + if (isset($order->customerIdentity->lastname)) { + $this->XMLWriter->writeElement("lastname", $order->customerIdentity->lastname); + } - if (isset($order->customerIdentity->coAddress)) { - $this->XMLWriter->writeElement("address2", $order->customerIdentity->coAddress); - } + if (isset($order->customerIdentity->initials)) { + $this->XMLWriter->writeElement("initials", $order->customerIdentity->initials); + } - if (isset($order->customerIdentity->housenumber)) { - $this->XMLWriter->writeElement("housenumber", $order->customerIdentity->housenumber); - } + if (isset($order->customerIdentity->street)) { + $this->XMLWriter->writeElement("address", $order->customerIdentity->street); + } - if (isset($order->customerIdentity->zipCode)) { - $this->XMLWriter->writeElement("zip", $order->customerIdentity->zipCode); - } + if (isset($order->customerIdentity->coAddress)) { + $this->XMLWriter->writeElement("address2", $order->customerIdentity->coAddress); + } - if (isset($order->customerIdentity->locality)) { - $this->XMLWriter->writeElement("city", $order->customerIdentity->locality); - } + if (isset($order->customerIdentity->housenumber)) { + $this->XMLWriter->writeElement("housenumber", $order->customerIdentity->housenumber); + } - if (isset($order->countryCode)) { - $this->XMLWriter->writeElement("country", $order->countryCode); - } + if (isset($order->customerIdentity->zipCode)) { + $this->XMLWriter->writeElement("zip", $order->customerIdentity->zipCode); + } - if (isset($order->customerIdentity->phonenumber)) { - $this->XMLWriter->writeElement("phone", $order->customerIdentity->phonenumber); - } + if (isset($order->customerIdentity->locality)) { + $this->XMLWriter->writeElement("city", $order->customerIdentity->locality); + } - if (isset($order->customerIdentity->email)) { - $this->XMLWriter->writeElement("email", $order->customerIdentity->email); - } + if (isset($order->countryCode)) { + $this->XMLWriter->writeElement("country", $order->countryCode); + } - if (isset($order->customerIdentity->orgNumber) || isset($order->customerIdentity->companyVatNumber)) { - if (isset($order->customerIdentity->orgNumber)) { - $this->XMLWriter->writeElement("ssn", $order->customerIdentity->orgNumber); - } else { - $this->XMLWriter->writeElement("vatnumber", $order->customerIdentity->companyVatNumber); // -- used by Invoice payment - } + if (isset($order->customerIdentity->phonenumber)) { + $this->XMLWriter->writeElement("phone", $order->customerIdentity->phonenumber); + } - // companyname // -- used by Invoice payment - // companyid // -- used by Invoice payment + if (isset($order->customerIdentity->email)) { + $this->XMLWriter->writeElement("email", $order->customerIdentity->email); + } - $this->isCompany = "TRUE"; + if (isset($order->customerIdentity->orgNumber) || isset($order->customerIdentity->companyVatNumber)) { + if (isset($order->customerIdentity->orgNumber)) { + $this->XMLWriter->writeElement("ssn", $order->customerIdentity->orgNumber); + } else { + $this->XMLWriter->writeElement("vatnumber", $order->customerIdentity->companyVatNumber); // -- used by Invoice payment } - $this->XMLWriter->endElement(); + // companyname // -- used by Invoice payment + // companyid // -- used by Invoice payment - if (isset($order->customerIdentity->addressSelector)) { - $this->XMLWriter->writeElement("addressid", $order->customerIdentity->addressSelector); // -- used by Invoice payment - } + $this->isCompany = "TRUE"; + } + + $this->XMLWriter->endElement(); + + if (isset($order->customerIdentity->addressSelector)) { + $this->XMLWriter->writeElement("addressid", $order->customerIdentity->addressSelector); // -- used by Invoice payment } } @@ -330,7 +328,7 @@ public function getPreparePaymentXML($request, $order) $this->XMLWriter->writeElement("ipaddress", $request['ipAddress']); // required in preparepayment - $this->serializeCustomer($order); // customer // -- used by Invoice payment + $this->serializeCustomer($order, isset($request['paymentMethod']) ? $request['paymentMethod'] : null); $this->XMLWriter->writeElement("iscompany", $this->isCompany); // -- used by invoice payment $this->XMLWriter->writeElement("addinvoicefee", "FALSE"); // -- used by invoice payment // addressid // -- used by invoice payment