PHP整合華為企業資訊機

gudesheng發表於2008-01-03

華為資訊機雖然只提供了DLL和Java的介面,但是其它的語言還是可以呼叫,方法就是使用它的儲存過程。下面是一個PHP呼叫的例子

<?php


class PHPSMS {
    var $dbHost   = "ip:1433";
    var $dbName   = "DB_CustomSMS";
    var $dbUser   = "sa";
    var $dbPass   = "";
    var $name     = "0005";
    var $pass     = "";
   
    var $db;


    function init() {
     $this->db = &ADONewConnection('mssql');
      $this->db->Connect($this->dbHost,$this->dbUser,$this->dbPass,$this->dbName) or die($db->ErrorMsg().'
');
    }
   
    function addSMtoSend($pDestAddr,$pSmContent) {
     
      $pOrgAddr = '1068×××××'.$this->name;
      $pSendTime = date("Y-m-d H:i:s");
      $pNeedStateReport = 0;
      $pServiceID = "EIES";
      $pFeeType = "02" ;
      $pFeeCode = "0";
      $pSMType = 0;
      $pMessageID = "0";
      $pDestaddrType = 0;
      $pCreatorID = $this->name;
      $pSuccess = -1;
     
      $stmt = $this->db->PrepareSP('addSMtoSend');
      $this->db->InParameter($stmt,$pOrgAddr,'pOrgAddr');
      $this->db->InParameter($stmt,$pDestAddr,'pDestAddr');
      $this->db->InParameter($stmt,$pSmContent,'pSmContent');
      $this->db->InParameter($stmt,$pSendTime,'pSendTime');
      $this->db->InParameter($stmt,$pNeedStateReport,'pNeedStateReport');
      $this->db->InParameter($stmt,$pServiceID,'pServiceID');
      $this->db->InParameter($stmt,$pFeeType,'pFeeType');
      $this->db->InParameter($stmt,$pFeeCode,'pFeeCode');
      $this->db->InParameter($stmt,$pSMType,'pSMType');
      $this->db->InParameter($stmt,$pMessageID,'pMessageID');
      $this->db->InParameter($stmt,$pDestaddrType,'pDestaddrType');
      $this->db->InParameter($stmt,$pCreatorID,'pCreatorID');

      $this->db->OutParameter($stmt,$pSuccess,'pSuccess');     
     
      $this->db->Execute($stmt);
     
      if($pSuccess>=0)  return 1;
     
     else return 0;
     
    } 
   
    function fetchSMRequest(&$SourceAddr,&$Content,&$RecvTime) {
     
     $DestAddrMask = '1068×××××'.$this->name;

     $DestAddr = '';

     $SMType = 0;
     $pMessageID = "0";
     $OrgAddrType = 0;
     $ActionID = 0;
     $ActionReasonID = 0;
     $ServiceID = "";
     $Ret_Code = 0;
     
     $stmt = $this->db->PrepareSP('FetchSMRequest');
     $this->db->InParameter($stmt,$DestAddrMask,'DestAddrMask');

     $this->db->OutParameter($stmt,$SourceAddr,'SourceAddr');
     $this->db->OutParameter($stmt,$DestAddr,'DestAddr');
     $this->db->OutParameter($stmt,$Content,'Content');
     $this->db->OutParameter($stmt,$RecvTime,'RecvTime');
     $this->db->OutParameter($stmt,$SMType,'SMType');
     $this->db->OutParameter($stmt,$MessageID,'MessageID');
     $this->db->OutParameter($stmt,$OrgAddrType,'OrgAddrType');
     $this->db->OutParameter($stmt,$ActionID,'ActionID');
     $this->db->OutParameter($stmt,$ActionReasonID,'ActionReasonID');
     $this->db->OutParameter($stmt,$ServiceID,'ServiceID');
     $this->db->OutParameter($stmt,$Ret_Code,'Ret_Code');     
     
     $this->db->Execute($stmt);
     
     return $Ret_Code; //0 沒有訊息 1 成功 -1 失敗

    }    
   
}


?> 

使用的時候,先初始化

$sms = new PHPSMS();
$sms->init();

傳送訊息的方法


$re = $sms->addSMtoSend('1385×××××','PHP測試');
if($re = 1) echo "success";
else echo "fail";

接收訊息的方法

$SourceAddr = '';
$Content = '';
$RecvTime = '';
while( $sms->fetchSMRequest($SourceAddr,$Content,$RecvTime) ) {
  echo $SourceAddr."
".$Content."
".$RecvTime;
}



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1632824


相關文章