public static function buildSifAckMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, $zoneVersion, $versionNamespace, $zoneName) { $root = XmlHelper::buildSifMessageBase($zoneVersion, $versionNamespace); $sifMessage = $root->getElementsByTagName('SIF_Message'); $sifAck = $root->createElement('SIF_Ack'); $sifHeader = $root->createElement('SIF_Header'); $sifHeader->appendChild($root->createElement('SIF_MsgId'))->appendChild($root->createTextNode($msgId)); if ($zoneVersion == '1.5r1') { $dateTime = explode("T", $timestamp); $dateTimestamp = $dateTime[0]; $dateTimestamp = str_replace("-", "", $dateTimestamp); $timeTimestamp = $dateTime[1]; $sifHeader->appendChild($root->createElement('SIF_Date'))->appendChild($root->createTextNode($dateTimestamp)); $sifTimeNode = $root->createElement('SIF_Time'); $timeZone = $root->createAttribute("Zone"); $timeZoneValue = $root->createTextNode("UTC" . date('P')); $timeZone->appendChild($timeZoneValue); $sifTimeNode->appendChild($timeZone); $text = $root->createTextNode($timeTimestamp); $sifTimeNode->appendChild($text); $sifHeader->appendChild($sifTimeNode); } else { $sifHeader->appendChild($root->createElement('SIF_Timestamp'))->appendChild($root->createTextNode($timestamp)); } $sifHeader->appendChild($root->createElement('SIF_SourceId'))->appendChild($root->createTextNode($zoneName)); $sifAck->appendChild($sifHeader); $sifAck->appendChild($root->createElement('SIF_OriginalSourceId'))->appendChild($root->createTextNode($originalSourceId)); $sifAck->appendChild($root->createElement('SIF_OriginalMsgId'))->appendChild($root->createTextNode($originalMsgId)); $sifMessage->item(0)->appendChild($sifAck); return $root; }