예제 #1
0
 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;
 }