Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 57 additions & 59 deletions src/HostedService/Helper/HostedXmlBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
}
}

Expand Down Expand Up @@ -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
Expand Down