P
pping
Unregistered / Unconfirmed
GUEST, unregistred user!
在华为的API中submit时如何填写多个手机号码?<br>function corp_SubmitAExEx(<br> const OrgTON: Byte; //源地址号码类型 1<br> const OrgNPI: Byte; //源地址编码方案 1<br> const OrgAddr: PChar; //源地址 char[MAX_ADDR_LEN] 10692000522XXXX<br> const DestTON: Byte; //目标地址号码类型 2<br> const DestNPI: Byte; //目标地址编码方案 1<br> const DestAddr: PChar; //目标地址 char[MAX_ADDR_LEN] ''<br> const PRI: Byte; //SM优先级 0<br> const RD: Byte; //当源地址和目的地址相同时,是否替换存在的短消息。 0<br> const RP: Byte; //回应路径 0<br> const SRR: Byte; //是否需要状态报告 1<br> const MR: Byte; //消息索引 0<br> const DCS: Byte; //数据编码方案 15<br> const PID: Byte; //协议类型 0<br> const Schedule: PChar; //定时 char[MAX_TIMESTAMP_LEN] ''<br> const Expire: PChar; //超时时间 char[MAX_TIMESTAMP_LEN] ''<br> const Default_ID: Longint; //缺省短消息 0<br> const UDHI: Byte; //1表示UD为一个结构,0表示缺省 0<br> const UDLen: Longint; //表示UD的长度 140<br> const UserData: PChar; //用户信息,短消息正文 'test'<br> const sServiceType: PChar; //业务子类型 by ycl 2001.7.9<br> byMsgID: PChar; //MAX_MSG_ID,CMPP的字段,消息ID<br> byPKTotal: Byte; //相同Msg_id的消息总条数,从1开始<br> byPKNumber: Byte; //相同Msg_id的消息序号,从1开始<br> byMsglevel: Byte; //信息级别<br> byFeeUserType: Byte; //计费用户类型字段,0:对目的终端MSISDN计费;1:对源终端MSISDN计费;2:对SP计费;3:表示本字段无效<br> sSPID: PChar; //MAX_SPID_LEN,信息内容来源<br> sFeeType: PChar; //MAX_FEE_TYPE_LEN,资费类别<br> sFeeAddr: PChar; //MAX_ADDR_LEN,被计费用户地址<br> sFeeCode: PChar; //MAX_FEE_CODE_LEN,资费代码<br> byUserNum: PChar; //接收消息的用户数量<br> sDestAddrs: PChar; //目的地址,最多100个,CMPP使用<br> SM_ID: PChar; //返回:短消息ID<br> FCS: PChar //返回:失败原因<br>  : integer; stdcall; external SMEIDLL;<br><br><br>如下这样可以发送一个号码:<br>procedure TFrmMain.Button1Click(Sender: TObject);<br>var<br> iResult : integer;<br> byMsgID: array[0..22] of Byte; //返回:短消息ID<br> MsgFmt, byUserNum, UDHI : integer;<br> msgLen : Longint;<br> destID, msg, s, spID : string;<br> SM_ID, FCS: PChar;<br> sDestAddrs: PChar;<br>begin<br><br> FillChar(byMsgID, 23, 0);<br> destID := '106920005521001000';<br> msg := '我是一个中国人,上海市.';<br> msgLen := length(msg);<br> MsgFmt := 15;<br> {<br> s := strtohex(msg);<br> msgLen := trunc(length(s)/2);<br> msgBin := hexStrToBin(s);<br> MsgFmt := 4;<br> }<br> spID := '200552';<br> byUserNum := 1;<br> sDestAddrs:= '13800000000';<br> UDHI := 0;<br><br> iResult := corp_SubmitAExEx(Byte(2), Byte(1), PChar(destID), Byte(2), Byte(1), PChar(''), Byte(0), Byte(0), Byte(0), Byte(1), Byte(0), Byte(MsgFmt), Byte(0),<br> PChar(''), PChar(''), 0, Byte(UDHI), msgLen, PChar(msg), PChar(''), @byMsgID, Byte(1),<br> Byte(1), Byte(0), Byte(2), PChar(spID), PChar('01'), PChar(''), PChar('000000'),<br> PChar(byUserNum), sDestAddrs, @SM_ID, @FCS);<br> logit(StrPas(PChar(@byMsgID)));<br>end;<br><br>如何将多个号码放入sDestAddrs进行发送?<br><br>在华为API中sDestAddrs的定义如下<br>byUserNum 类型:unsigned char<br> 适用协议:CMPP<br> 意义:接收消息的用户数量<br>sDestAddrs 类型:LPCSTR,21* byUserNum个ASCII字符串<br> 适用协议:CMPP<br> 意义:接收业务的MSISDN号码,最多100个MSISDN号码。