diff --git a/src/Builders/CustomerCreditTransfer/CustomerCreditTransferBuilder.php b/src/Builders/CustomerCreditTransfer/CustomerCreditTransferBuilder.php index b952c1e..7f1f3f3 100644 --- a/src/Builders/CustomerCreditTransfer/CustomerCreditTransferBuilder.php +++ b/src/Builders/CustomerCreditTransfer/CustomerCreditTransferBuilder.php @@ -37,6 +37,7 @@ public function __construct() * least for 15 days. Used for rejecting duplicated transactions (max length: 35 characters) * @param string|null $paymentReference Overwrite default payment reference - * visible on creditors bank statement (max length: 35 characters) + * @param string $schema default namespace schema urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 * @return $this */ public function createInstance( @@ -46,13 +47,14 @@ public function createInstance( DateTime $executionDate = null, bool $batchBooking = true, string $msgId = null, - string $paymentReference = null + string $paymentReference = null, + string $schema = 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03' ): CustomerCreditTransferBuilder { $this->instance = new CustomerCreditTransfer(); $now = new DateTime(); $xmDocument = $this->instance->createElementNS( - 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03', + $schema, 'Document' ); $xmDocument->setAttributeNS( diff --git a/src/Builders/CustomerCreditTransfer/CustomerInstantCreditTransferBuilder.php b/src/Builders/CustomerCreditTransfer/CustomerInstantCreditTransferBuilder.php index 50c28bc..2f07cbb 100644 --- a/src/Builders/CustomerCreditTransfer/CustomerInstantCreditTransferBuilder.php +++ b/src/Builders/CustomerCreditTransfer/CustomerInstantCreditTransferBuilder.php @@ -35,6 +35,7 @@ public function __construct() * you request your credit institution to book each transaction within this order separately. * @param string|null $msgId * @param string|null $paymentReference + * @param string $schema default namespace schema urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 * @return CustomerInstantCreditTransferBuilder */ public function createInstance( @@ -43,13 +44,14 @@ public function createInstance( string $debitorName, bool $batchBooking = true, string $msgId = null, - string $paymentReference = null + string $paymentReference = null, + string $schema = 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03' ): CustomerInstantCreditTransferBuilder { $this->instance = new CustomerCreditTransfer(); $now = new DateTime(); $xmDocument = $this->instance->createElementNS( - 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03', + $schema, 'Document' ); $xmDocument->setAttributeNS( diff --git a/src/Builders/CustomerCreditTransfer/CustomerSwissCreditTransferBuilder.php b/src/Builders/CustomerCreditTransfer/CustomerSwissCreditTransferBuilder.php index 11628a5..5fa981b 100644 --- a/src/Builders/CustomerCreditTransfer/CustomerSwissCreditTransferBuilder.php +++ b/src/Builders/CustomerCreditTransfer/CustomerSwissCreditTransferBuilder.php @@ -33,19 +33,19 @@ public function __construct() } /** - * @param string $schema has next formula urn:iso:std:iso:20022:tech:xsd:msgName.001.msgNameVersion * @param string $debitorFinInstBIC * @param string $debitorIBAN * @param string $debitorName + * @param string $schema default namespace schema urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 * * @return $this * @throws \DOMException */ public function createInstance( - string $schema, string $debitorFinInstBIC, string $debitorIBAN, - string $debitorName + string $debitorName, + string $schema = 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03' ): CustomerSwissCreditTransferBuilder { $this->instance = new CustomerCreditTransfer(); $now = new DateTime(); diff --git a/src/Builders/CustomerDirectDebit/CustomerDirectDebitBuilder.php b/src/Builders/CustomerDirectDebit/CustomerDirectDebitBuilder.php index c0a88b2..3f5ff84 100644 --- a/src/Builders/CustomerDirectDebit/CustomerDirectDebitBuilder.php +++ b/src/Builders/CustomerDirectDebit/CustomerDirectDebitBuilder.php @@ -27,7 +27,6 @@ public function __construct() } /** - * @param string $schema has next formula urn:iso:std:iso:20022:tech:xsd:msgName.001.msgNameVersion * @param string $creditorFinInstBic * @param string $creditorIban * @param string $creditorName @@ -40,12 +39,12 @@ public function __construct() * least for 15 days. Used for rejecting duplicated transactions (max length: 35 characters) * @param string|null $paymentReference Overwrite default payment reference - * visible on creditors bank statement (max length: 35 characters) + * @param string $schema default namespace schema urn:iso:std:iso:20022:tech:xsd:pain.008.001.02 * * @return $this * @throws \DOMException */ public function createInstance( - string $schema, string $creditorFinInstBic, string $creditorIban, string $creditorName, @@ -54,7 +53,8 @@ public function createInstance( DateTime $collectionDate = null, bool $batchBooking = true, string $msgId = null, - string $paymentReference = null + string $paymentReference = null, + string $schema = 'urn:iso:std:iso:20022:tech:xsd:pain.008.001.02' ): CustomerDirectDebitBuilder { $this->instance = new CustomerDirectDebit(); $now = new DateTime(); diff --git a/src/Factories/DocumentFactory.php b/src/Factories/DocumentFactory.php index 1e9a4b9..b6ccac8 100644 --- a/src/Factories/DocumentFactory.php +++ b/src/Factories/DocumentFactory.php @@ -12,10 +12,14 @@ */ final class DocumentFactory { + /** + * @param string $content requires already UTF-8 encoded content + * @return Document + */ public function create(string $content): Document { $document = new Document(); - $document->loadXML(utf8_encode($content)); + $document->loadXML($content); return $document; }