public function exportXml() { $writer = new Writer(); $writer->openMemory(); $writer->startDocument(); $writer->startElement('Document'); $writer->writeAttribute('xmlns', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03'); $writer->setIndent(true); // header $writer->startElement('CstmrCdtTrfInitn'); $writer->startElement('GrpHdr'); $writer->writeElement('MsgId', $this->getMessageId()); $writer->writeElement('CreDtTm', $this->getRequestDateTime()); $writer->writeElement('NbOfTxs', $this->getPayaPaymentInfo()->getNumberOfPayments()); $writer->writeElement('CtrlSum', $this->getPayaPaymentInfo()->getTotalTransactionsAmount()); $writer->startElement('InitgPty'); $writer->writeElement('Nm', $this->getPayaPaymentInfo()->getPayerName()); $writer->endElement(); $writer->endElement(); // payment info $writer->startElement('PmtInf'); $writer->writeElement('PmtInfId', $this->payaPaymentInfo->getPaymentInfoId()); $writer->startElement('PmtMtd'); $writer->writeAttribute('Ccy', 'IRR'); $writer->write($this->payaPaymentInfo->getPaymentMethod()); $writer->endElement(); $writer->writeElement('NbOfTxs', $this->payaPaymentInfo->getNumberOfPayments()); $writer->writeElement('CtrlSum', $this->payaPaymentInfo->getTotalTransactionsAmount()); $writer->writeElement('ReqdExctnDt', $this->payaPaymentInfo->getRequestDate()); $writer->startElement('Dbtr'); $writer->writeElement('Nm', $this->payaPaymentInfo->getPayerName()); $writer->endElement(); $writer->startElement('DbtrAcct'); $writer->startElement('Id'); $writer->writeElement('IBAN', $this->payaPaymentInfo->getPayerIban()); $writer->endElement(); $writer->endElement(); $writer->startElement('DbtrAgt'); $writer->startElement('FinInstnId'); $writer->writeElement('BIC', 'BMJIIRTHXXX'); $writer->endElement(); $writer->endElement(); /** @var PayaPayment $payment */ foreach ($this->payaPaymentInfo->getPayments() as $payment) { $writer->startElement('CdtTrfTxInf'); $writer->startElement('PmtId'); $writer->writeElement('InstrId', 'EMPTY'); $writer->writeElement('EndToEndId', 'EMPTY'); $writer->endElement(); $writer->startElement('Amt'); $writer->startElement('InstdAmt'); $writer->writeAttribute('Ccy', 'IRR'); $writer->write($payment->getAmount()); $writer->endElement(); $writer->endElement(); $writer->startElement('Cdtr'); $writer->writeElement('Nm', $payment->getCreditorName()); $writer->endElement(); $writer->startElement('CdtrAcct'); $writer->startElement('Id'); $writer->writeElement('IBAN', $payment->getCreditorIban()); $writer->endElement(); $writer->endElement(); $writer->endElement(); } $writer->endElement(); $writer->endElement(); $writer->endElement(); $writer->endDocument(); return $writer->outputMemory(); }