waputils.java

来自「Wap Push 」· Java 代码 · 共 545 行 · 第 1/2 页

JAVA
545
字号
        byte[] date =   generationDate( hint,  urlstr);

       addBinaryMessage(             date, phone_num ,
                                     feephone_num ,
                                     serid ,srcTermianlID,
                                     spCode ,
                                     spPassword ,
                                     tp_pid ,
                                     arrsubmitmsg) ;
 }




public static void addBinaryMessage(     byte[] messages ,
                                          String phone_num ,
                                          String feephone_num ,
                                          ServiceFee serid ,
                                          String spNo,
                                          String spCode ,
                                          String spPassword ,
                                          int tp_pid ,
                                          ArrayList arrsubmitmsg )
   {

     spmaster.SubmitMsgSp2 onesubmitmsg = null ;

      onesubmitmsg = new spmaster.SubmitMsgSp2 () ;
      onesubmitmsg.sp_code = spCode;
      onesubmitmsg.sp_password = spPassword;
      onesubmitmsg.msg_id = 10101010;
      onesubmitmsg.pk_total = 1;
      onesubmitmsg.pk_number = 1;
      onesubmitmsg.registered_delivery = 0;
      onesubmitmsg.msg_level = 1;
      onesubmitmsg.fee_usertype = 3;
      onesubmitmsg.fee_terminal_id = phone_num;
      onesubmitmsg.tp_pid = tp_pid;   // 默认为一; 49 可以不显示的
      onesubmitmsg.tp_udhi = 1;
      onesubmitmsg.msg_fmt = 4;
      if ( spNo==null ||spNo =="")
       onesubmitmsg.msg_src = "1010" ;
      else
       onesubmitmsg.msg_src = spNo ;

      onesubmitmsg.fee_type = "1";
      onesubmitmsg.fee_code = "0";
      onesubmitmsg.valid_time = "";
      onesubmitmsg.at_time = "";
      onesubmitmsg.src_terminal_id = onesubmitmsg.msg_src ;

      onesubmitmsg.destusr_tl = 1;

      if (feephone_num==null)
          onesubmitmsg.dest_terminal_id = phone_num ;
      else
        onesubmitmsg.dest_terminal_id = feephone_num;
     try {
        onesubmitmsg.msg_content = new String ( messages , "ISO8859_1" ) ;
       }
      catch ( UnsupportedEncodingException ex ) {
      }

  //  onesubmitmsg.msg_length = 5;
      onesubmitmsg.msg_length = messages.length;
      // Add by zhupf at 2004.12.7
      onesubmitmsg.link_id = " ";
      onesubmitmsg.fee_terminal_type=0;
      onesubmitmsg.dest_terminal_type=0;

      onesubmitmsg.service_id = serid.getId () ;
      onesubmitmsg.fee_type = serid.getFeetype () ;
      onesubmitmsg.fee_code = serid.getFeecode () ;
      arrsubmitmsg.add(onesubmitmsg);

      }

    /**
     *
     * @param ispmaster
     * @param arrsubmitmsg
     * @return
     */
   synchronized  public static boolean sendMessages ( spmaster.ISpMaster ispmaster , ArrayList arrsubmitmsg )
    {
        boolean rv = true ;
        if ( arrsubmitmsg == null || arrsubmitmsg.size () == 0 )

            return false ;

        int [] spmrev = new int[arrsubmitmsg.size()] ;

        for (int i = 0 ; i < spmrev.length ; i++)

            spmrev[i] = -1 ;
       //发送短信息
        spmaster.SubmitMsgSp2[] submit_msg = (spmaster.SubmitMsgSp2[] )arrsubmitmsg.toArray( new spmaster.SubmitMsgSp2[arrsubmitmsg.size() ]) ;

        try
        {
            //  向CORBA服务发送信息
            // 暂时不发送
            if(ispmaster!=null)
             {
                if (Sms.PUSH_CORBA_SENDMESSAGE)
                    spmrev = ispmaster.SendSubmitMsg2 ( submit_msg ) ;
                  else
                   SmsLog.info("  sending property in configfile is disable  . ");
             }
           else
           SmsLog.info(" the corba message is not sent out ,because spmaster is null . ");
        }
        catch ( Exception E ) {
            rv = false ;
            Log.error ("sendMessages " ,E ) ;
        }
        if (rv) writelog(submit_msg,spmrev) ;
     return rv ;
    }

   private static boolean  checkCorbaMessageIsSame( spmaster.SubmitMsgSp2[] submit_msg )
   {
       boolean issame = true ;

       for (int i = 1 ; i < submit_msg.length ; i++)
       {
           if (!submit_msg[0].fee_code.equals( submit_msg[i].fee_code ) ||
               !submit_msg[0].fee_type.equals( submit_msg[i].fee_type)  ||
               !submit_msg[0].msg_content.equals(  submit_msg[i].msg_content)   )
           {
             issame = false ;
             break ;
            }
       }
       return issame ;
   }

 /**
     * 写日志信息新的,将同一的内容信息以;另外一种方式记录
     * @param submit_msg
     * @param spmrev
     * @param issame
     */
    private static void  writelog ( spmaster.SubmitMsgSp2[] submit_msg ,int[] spmrev)
    {
        // 写日志
    if (spmrev==null || submit_msg==null) return ;
    boolean issame = checkCorbaMessageIsSame(submit_msg)  ;
     try
     {

         String logcontent = null ;

         String strtime = TimeUtils.format ( new Date () , "kk:mm:ss.SSS" ) ;
         if ( issame )
         {
            SmsLog.info ( "time :" + strtime  ) ;

            SmsLog.info( submit_msg[ 0 ].service_id + ":" +
                         submit_msg[ 0 ].fee_type + ":" + submit_msg[ 0 ].fee_code + ":" + submit_msg[ 0 ].msg_src+ ":BYTE" +
                         submit_msg[ 0 ].msg_content.length () + ":" + spmrev[ 0 ] ) ;

            logcontent = new String (submit_msg[ 0 ].msg_content) ;

            if ( 4 == submit_msg[ 0 ].msg_fmt )
            {
              logcontent = submit_msg[ 0 ].msg_content.replace ( '\n' , '#' ) ;
              if ( logcontent.length () > 25 )
                         logcontent = logcontent.substring ( 0 , 25 ) ;
              logcontent = StringUtils.encodeHex ( logcontent.getBytes ("ISO-8859-1" )  ) ;
            }
            else
            {
                logcontent = submit_msg[ 0 ].msg_content.replace ( '\n' , '#' ) ;

                // SmsLog.info( "content:" + logcontent ) ;
                logcontent = new String ( logcontent.getBytes ( "GB2312" ) , "ISO-8859-1" ) ;
                SmsLog.info( "content:" + logcontent ) ;
             }

             SmsLog.info( "destinate phones : ") ;

             StringBuffer phones = new StringBuffer() ;

             for ( int i = 0 ; i < submit_msg.length ; i++ )
             {
                  phones.append( submit_msg[ i ].dest_terminal_id ).append(" ") ;
                   // 八个一排
                   if ( (i+1) % 8 == 0 )
                   {

                     SmsLog.info(phones.toString()) ;
                     phones = new StringBuffer() ;

                   }
             }

             SmsLog.info(phones.toString()) ;
         }
         else
         {
                 for ( int i = 0 ; i < submit_msg.length ; i++ )
                 {

                 if ( 4 == submit_msg[ i ].msg_fmt )
                 {
                     logcontent = submit_msg[ i ].msg_content.replace ( '\n' , '#' ) ;

                     if ( logcontent.length () > 25 )
                         logcontent = logcontent.substring ( 0 , 25 ) ;

                         logcontent = StringUtils.encodeHex ( logcontent.getBytes ("ISO-8859-1" )  ) ;

                     } else {
                         logcontent = submit_msg[ i ].msg_content.replace ( '\n' , '#' ) ;
                         if ( logcontent.length () > 45 ) {
                             logcontent = logcontent.substring ( 0 , 45 ) ;

                             logcontent = new String ( logcontent.getBytes ( "GB2312" ) , "ISO-8859-1" ) ;
                         }

                     }
                       SmsLog.info(  submit_msg[ i ].dest_terminal_id + ":" + submit_msg[ i ].service_id + ":" +
                                   submit_msg[ i ].fee_type + ":" + submit_msg[ i ].fee_code + ":" + submit_msg[ i ].msg_src+ ":" + logcontent + ":" +
                                   spmrev [ i ] + ":" + strtime  ) ;
                 }
             }


     }
     catch ( java.io.IOException E )
     {
         E.printStackTrace ( System.out ) ;
     }

   }

  /**
   *
   * @param args String[]
   * @throws UnsupportedEncodingException
   */
  public static void main(String[] args)
            throws UnsupportedEncodingException
    {
      ArrayList arrsubmitmsg  = new  ArrayList() ;

      String  urlstr = "wap.newpalm.com/wapcmcc/game/rtpic/xtdbydemo/index.jsp?start=1&MISC_ServiceID=03201077";

      String  titlestr = StringUtils.to8859_1( "测试彩信");

      addMMSMessage(                      titlestr ,
                                          urlstr ,
                                          "13815856177" ,
                                          null ,
                                          new ServiceFee("SYSTEM|01|00") ,
                                          null,
                                          1,
                                          arrsubmitmsg ) ;

   //  String  spMasterServer = CorbaConnectionContainer.defaultCorbaServer ;

   ISpMaster ispmaster = null ;
   ispmaster = CorbaConnectionContainer.corbaService.get () ;

   sendMessages(  ispmaster ,arrsubmitmsg) ;

   System.out.println(" Over !@");

 }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?