<?php /** * User: Hossein Moradgholi * Date: 10/25/15 * Time: 12:01 AM */ error_reporting(E_ERROR); use Fisharebest\ExtCalendar\GregorianCalendar; use Fisharebest\ExtCalendar\PersianCalendar; use Nikapps\BatchPayment\Paya\PayaCollection; use Nikapps\BatchPayment\Paya\PayaPayment; use Nikapps\BatchPayment\Paya\PayaPaymentInfo; require "../vendor/autoload.php"; $payaCollection = new PayaCollection(); $payaPaymentInfo = new PayaPaymentInfo(); $persianCalendar = new PersianCalendar(); $gregorianCalendar = new GregorianCalendar(); $requestDateTime = implode('-', $persianCalendar->jdToYmd($gregorianCalendar->ymdToJd(date('Y'), date('m'), date('d')))) . "T" . date('H:i:s'); $payaPaymentInfo->setRequestDate($requestDateTime); $payaPaymentInfo->setPayerIban('IR360560080133100002001001940612002'); $payaPaymentInfo->setPayerName('نام من'); $payaPayment = new PayaPayment(); $payaPayment->setAmount(2080000); $payaPayment->setCreditorIban('IR020540110180001974695003'); $payaPayment->setCreditorName('امیرحسین صادقی'); $payaPayment->setDescription('تست سیستم'); $payaPaymentInfo->addPayment($payaPayment); $payaCollection->setPayaPaymentInfo($payaPaymentInfo); $payaCollection->exportXml();
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(); }