⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsclient.java

📁 java支持的短信平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.khan.sms;

import java.util.List;
import java.util.ArrayList;
import com.khan.db.DBConPool;
import com.khan.db.DBPoolCon;

import java.io.*;
import com.khan.file.LoadResourceIni;


/**
 * <p>Title: 收发短信 </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class SmsClient {

    private String DBDriver= DBConPool.MYSQL_DRIVER;
    private String DBURL="jdbc:mysql://192.168.13.10:3306/cmgw?useUnicode=true&characterEncoding=GBK";//"jdbc:postgresql://127.0.0.1:9055/smscgw";
    private String DBUser ="liukun";
    private String DBPassword="liukun";//"52play2*0*0*5";
    private int MaxConnection = 3;
    private int ConnectionTimeOut = 60;

    private boolean isjndi =false;
    private String JndiName = "";
    private String Enerprise_code = "999999";

    DBConPool dbp = null;//new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);

    String SP_Port = "86138";

    /**
     * 构造器
     * @param sp_port String 主端口号
     */
    public SmsClient(String sp_port) {

        this.SP_Port = sp_port;
        dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);

    }


    public SmsClient(){
        com.khan.file.LoadResourceIni li = new  com.khan.file.LoadResourceIni("dbpool.properties");

        try {
            DBDriver=li.readINI("DBDriver");
            DBURL=li.readINI("DBURL");
            DBUser=li.readINI("DBUser");
            DBPassword=li.readINI("DBPassword");
            MaxConnection=Integer.parseInt( li.readINI("MaxConnection") );
            ConnectionTimeOut =Integer.parseInt( li.readINI("ConnectionTimeOut") );
            SP_Port = li.readINI("SP_Port");
            isjndi =Boolean.parseBoolean(li.readINI("is_jndi"));
            JndiName = li.readINI("jndi_name");
            Enerprise_code= li.readINI("Enerprise_code");
            System.out.println("out.loadResourceIni sucess! isJndi = " + isjndi);
            //System.out.println(isjndi);
        } catch (IOException ex) {
            return;
        } catch (Exception ex) {
            return;
        }
        if(!isjndi)
          dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);

    }

    /**
     *
     * @param sp_port String
     * @param strjndi_name String

    public SmsControl(String sp_port, String strjndi_name) {

        this.SP_Port = sp_port;
        this.isjndi =true;

    }
   */
    public SmsClient(String sp_port,String db_Driver, String db_Url, String db_User, String db_Password, int max_Connection, int connection_TimeOut) {
      this.DBDriver = db_Driver;
      this.DBURL = db_Url;
      this.DBUser = db_User;
      this.DBPassword = db_Password;
      this.MaxConnection = max_Connection;
      this.ConnectionTimeOut = connection_TimeOut;

      this.SP_Port = sp_port;
      dbp = new DBConPool(DBDriver, DBURL, DBUser,DBPassword , MaxConnection, ConnectionTimeOut);
    }


    public String getFeeCode(String ServiceID){
        String sqlstr="Select FeeCode, ServiceName From ServiceID Where ServiceID='"+ServiceID+"'";
        String strs[][]= null;
        if(this.isjndi)
            strs = com.khan.util.common.getRecord(sqlstr, JndiName);
        else {
            DBPoolCon dpc = dbp.get();
            strs = com.khan.util.common.poolGetRecord(dpc, sqlstr);
            dbp.release(dpc);
        }
        if (strs.length < 1)
            return "";
        return strs[0][0];
    }

    /**
     * 发送短信
     * @param Src_Port   String 发送源号码
     * @param Dest_NO    String  目标接收号码
     * @param ServiceID  String 服务代码
     * @param Msg_Fmt    int 消息格式 见Msg_Fmt类
     * @param Msg_Content  String 消息内容
     * @param Fee_UserType int 计费用户类型 见Fee_UserType类
     * @param FeeCode     String 费用
     * @param FeeType      String 资费类别 见FeeType类
     * @param FeeAddr      String 计费手机号码 Fee_UserType =INVALID 时 不填
     * @param Registered_Delivery   int 是否需要状态报告,见Registered_Delivery类
     * @param MsgLevel     int 消息发送优先级
     * @return int
     */
    public int SendSMS(String Src_Port,
                       List Dest_NO,
                       String ServiceID,
                       int Msg_Fmt,
                       String Msg_Content,
                       int Fee_UserType,
                       String FeeCode,
                       String FeeType,
                       String FeeAddr,
                       int Registered_Delivery,
                       int MsgLevel){

        if (Fee_UserType == com.khan.sms.Fee_UserType.INVALID){
            FeeAddr="";
        }
        int Len = 140;
        if (Msg_Fmt == com.khan.sms.Msg_Fmt.ASCII_STYLE){
            Len = 160;

        }
        String sqlstr="";

        int result =0;
        for(int i=0; i<Dest_NO.size(); i++){
            sqlstr = "INSERT INTO `mt` ( `LocalMsgID`, "
                     + "`RespMsgID`, `SendStatus`,"
                     + "`SendResult`, `SendCount`, "
                     + "`OrgAddr`, `DestAddr_Count`, "
                     + "`DestAddr`, `FeeAddr`, "
                     + "`ServiceID`, `FeeCode`, "
                     + "`FeeType`, `NeedReport`,"
                     + "`FeeUserType`, `UserData_Len`, "
                     + "`UserData`, `BuildeTime`, "
                     + "`SendTime`, `MsgFmt`, "
                     + "`ReportStatus`, `MsgLevel`, "
                     + "`At_Time`, `ValID_Time`, "
                     + "`PID`, `UDHI`, "
                     + "`PK_Total`, `PK_Number`, "
                     + "`SPID`, `SendLevel`, "
                     + "`Reserve`) "
                     + "VALUES ('',"
                     + "'',0,"
                     + "-1,0,"
                     + "'" + SP_Port + Src_Port + "',1,"
                     + "'" + (String)Dest_NO.get(i) + "','" + FeeAddr + "',"
                     + "'" + ServiceID + "','" + FeeCode + "',"
                     + "'" + FeeType + "'," + Registered_Delivery + ","
                     + "" + Fee_UserType + "," + Len + ","
                     + "'" + Msg_Content + "',NOW(),"
                     + "NULL," + Msg_Fmt + ","
                     + "1,1,"
                     + "'','',"
                     + "0,0,"
                     + "1,1,"
                     + "'" + this.Enerprise_code + "'," + MsgLevel + ""
                     + ",'')";
            //System.out.println(sqlstr);
            if(this.isjndi){
                result = com.khan.util.common.excuteSql(sqlstr, JndiName);
            }else{
                DBPoolCon dpc = dbp.get();
                result = com.khan.util.common.PoolExcuteSql(dpc, sqlstr);
                dbp.release(dpc);
            }
        }

      return result;
    }


    /**
     * 发送短信
     * @param Src_Port String
     * @param Dest_NO List
     * @param ServiceID String
     * @param Msg_Fmt int
     * @param Msg_Content String
     * @param Fee_UserType int
     * @param FeeType String
     * @param FeeAddr String
     * @param Registered_Delivery int
     * @param MsgLevel int
     * @return int
     */
    public int SendSMS(String Src_Port,
                       List Dest_NO,
                       String ServiceID,
                       int Msg_Fmt,
                       String Msg_Content,
                       int Fee_UserType,
                       String FeeType,
                       String FeeAddr,
                       int Registered_Delivery,
                       int MsgLevel){
        String FeeCode = this.getFeeCode(ServiceID);

        if (null == FeeCode){
          System.out.println("ServiceID:"+ServiceID +"在 Service表中查不到对应资费!");
          return -1;
        }

        return SendSMS( Src_Port, Dest_NO, ServiceID, Msg_Fmt,
                        Msg_Content, Fee_UserType, FeeCode, FeeType,
                        FeeAddr, Registered_Delivery,  MsgLevel);
    }

    /**
     * 发送短消息
     * @param Dest_NO List
     * @param ServiceID String
     * @param Msg_Fmt int
     * @param Msg_Content String
     * @param Fee_UserType int
     * @param FeeCode String
     * @param FeeType String
     * @param FeeAddr String
     * @param Registered_Delivery int
     * @param MsgLevel int
     * @return int
     */
    public int SendSMS(List Dest_NO,
                   String ServiceID,
                   int Msg_Fmt,
                   String Msg_Content,
                   int Fee_UserType,
                   String FeeCode,
                   String FeeType,
                   String FeeAddr,
                   int Registered_Delivery,
                   int MsgLevel){
        return SendSMS( "", Dest_NO, ServiceID, Msg_Fmt,
                        Msg_Content, Fee_UserType, FeeCode, FeeType,
                        FeeAddr, Registered_Delivery,  MsgLevel);

⌨️ 快捷键说明

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