/**
  * 
  * @return SimpleXmlElement
  */
 public function GetSimpleXml()
 {
     /** @var SimpleXmlElmenet */
     $xml = EpsXmlElement::CreateEmptySimpleXml('epsp:EpsProtocolDetails xmlns:epsp="' . XMLNS_epsp . '" xmlns:atrul="http://www.stuzza.at/namespaces/eps/austrianrules/2013/02" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:epi="' . XMLNS_epi . '" xmlns:eps="' . XMLNS_eps . '" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.stuzza.at/namespaces/eps/protocol/2013/02 EPSProtocol-V25.xsd" SessionLanguage="DE"');
     $ShopResponseDetails = $xml->addChildExt('ShopResponseDetails', '', 'epsp');
     if (!empty($this->ErrorMsg)) {
         if (!empty($this->ErrorMsg)) {
             $ShopResponseDetails->addChildExt('ErrorMsg', $this->ErrorMsg, 'epsp');
         }
     } else {
         if (!empty($this->SessionId)) {
             $ShopResponseDetails->addChildExt('SessionId', $this->SessionId, 'epsp');
         }
         $ShopConfirmationDetails = $ShopResponseDetails->addChildExt('ShopConfirmationDetails', '', 'eps');
         $ShopConfirmationDetails->addChildExt('StatusCode', $this->StatusCode, 'eps');
         if (isset($this->PaymentReferenceIdentifier)) {
             $ShopConfirmationDetails->addChildExt('PaymentReferenceIdentifier', $this->PaymentReferenceIdentifier, 'eps');
         }
     }
     return $xml;
 }
 /**
  * 
  * @return SimpleXMLElement
  */
 public function GetSimpleXml()
 {
     /** @var SimpleXmlElmenet */
     $xml = EpsXmlElement::CreateEmptySimpleXml('epsp:EpsProtocolDetails SessionLanguage="DE" xsi:schemaLocation="http://www.stuzza.at/namespaces/eps/protocol/2013/02 EPSProtocol-V25.xsd" xmlns:atrul="http://www.stuzza.at/namespaces/eps/austrianrules/2013/02" xmlns:epi="http://www.stuzza.at/namespaces/eps/epi/2013/02" xmlns:eps="http://www.stuzza.at/namespaces/eps/payment/2013/02" xmlns:epsp="http://www.stuzza.at/namespaces/eps/protocol/2013/02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"');
     $TransferInitiatorDetails = $xml->addChildExt('TransferInitiatorDetails', '', 'epsp');
     $PaymentInitiatorDetails = $TransferInitiatorDetails->addChildExt('PaymentInitiatorDetails', '', 'eps');
     $TransferMsgDetails = $TransferInitiatorDetails->addChildExt('TransferMsgDetails', '', 'epsp');
     $TransferMsgDetails->addChildExt('ConfirmationUrl', $this->TransferMsgDetails->ConfirmationUrl, 'epsp');
     $TransactionOkUrl = $TransferMsgDetails->addChildExt('TransactionOkUrl', $this->TransferMsgDetails->TransactionOkUrl, 'epsp');
     $TransactionNokUrl = $TransferMsgDetails->addChildExt('TransactionNokUrl', $this->TransferMsgDetails->TransactionNokUrl, 'epsp');
     if (!empty($this->TransferMsgDetails->TargetWindowOk)) {
         $TransactionOkUrl->addAttribute('TargetWindow', $this->TransferMsgDetails->TargetWindowOk);
     }
     if (!empty($this->TransferMsgDetails->TargetWindowNok)) {
         $TransactionNokUrl->addAttribute('TargetWindow', $this->TransferMsgDetails->TargetWindowNok);
     }
     if (!empty($this->WebshopArticles)) {
         $WebshopDetails = $TransferInitiatorDetails->addChildExt('WebshopDetails', '', 'epsp');
         foreach ($this->WebshopArticles as $article) {
             $WebshopArticle = $WebshopDetails->addChildExt('WebshopArticle', '', 'epsp');
             $WebshopArticle->addAttribute('ArticleName', $article->Name);
             $WebshopArticle->addAttribute('ArticleCount', $article->Count);
             $WebshopArticle->addAttribute('ArticlePrice', $article->Price);
         }
     }
     $AuthenticationDetails = $TransferInitiatorDetails->addChildExt('AuthenticationDetails', '', 'epsp');
     $AuthenticationDetails->addChildExt('UserId', $this->UserId, 'epsp');
     $AuthenticationDetails->addChildExt('MD5Fingerprint', $this->GetMD5Fingerprint(), 'epsp');
     $EpiDetails = $PaymentInitiatorDetails->addChildExt('EpiDetails', '', 'epi');
     $IdentificationDetails = $EpiDetails->addChildExt("IdentificationDetails", '', 'epi');
     $PartyDetails = $EpiDetails->addChildExt('PartyDetails', '', 'epi');
     $PaymentInstructionDetails = $EpiDetails->addChildExt('PaymentInstructionDetails', '', 'epi');
     if ($this->UnstructuredRemittanceIdentifier == null) {
         $PaymentInstructionDetails->addChildExt('RemittanceIdentifier', $this->RemittanceIdentifier, 'epi');
     } else {
         $PaymentInstructionDetails->addChildExt('UnstructuredRemittanceIdentifier', $this->UnstructuredRemittanceIdentifier, 'epi');
     }
     $InstructedAmount = $PaymentInstructionDetails->addChildExt('InstructedAmount', $this->InstructedAmount, 'epi');
     $InstructedAmount->addAttribute('AmountCurrencyIdentifier', $this->AmountCurrencyIdentifier);
     $PaymentInstructionDetails->addChildExt('ChargeCode', 'SHA', 'epi');
     $BfiPartyDetails = $PartyDetails->addChildExt('BfiPartyDetails', '', 'epi');
     $BfiPartyDetails->addChildExt('BfiBicIdentifier', $this->BfiBicIdentifier, 'epi');
     $BeneficiaryPartyDetails = $PartyDetails->addChildExt('BeneficiaryPartyDetails', '', 'epi');
     $BeneficiaryPartyDetails->addChildExt('BeneficiaryNameAddressText', $this->BeneficiaryNameAddressText, 'epi');
     $BeneficiaryPartyDetails->addChildExt('BeneficiaryAccountIdentifier', $this->BeneficiaryAccountIdentifier, 'epi');
     $IdentificationDetails->addChildExt('Date', $this->Date, 'epi');
     $IdentificationDetails->addChildExt('ReferenceIdentifier', $this->ReferenceIdentifier, 'epi');
     if (!empty($this->OrderingCustomerOfiIdentifier)) {
         $IdentificationDetails->addChildExt('OrderingCustomerOfiIdentifier', $this->OrderingCustomerOfiIdentifier, 'epi');
     }
     $AustrianRulesDetails = $PaymentInitiatorDetails->addChildExt('AustrianRulesDetails', '', 'atrul');
     $AustrianRulesDetails->addChildExt('DigSig', 'SIG', 'atrul');
     if (!empty($this->ExpirationTime)) {
         $AustrianRulesDetails->AddChildExt('ExpirationTime', $this->ExpirationTime, 'atrul');
     }
     return $xml;
 }