第一次接触使用mas发短信,开发的过程中出现了不少问题,为避免日后忘记,故在此处记下。
问题一:发出短信内容存在乱码。
api提供的发送函数无论是
int SubmitShortMessage(char * AtTime, char * SourceAddr, char * DestAddr, char * Content, ul ContentLen, int NeedStateReport, char * ServiceID, char * FeeType, char * FeeCode);
还是
int SubmitShortMessageEX(char * AtTime, char * SourceAddr, char * DestAddr, char * Content, ul ContentLen, int NeedStateReport, char * ServiceID, char * FeeType, char * FeeCode,char * CreatorID,int SMType,char * MessageID,int DestAddrType);
都存在ContentLen ,它代表的是所发送的短信的内容字节长度,即若发送内容为“1234567”,ContentLen就为“1234567”的字节长度,而不是发送内容限制的最大长度。若将ContentLen设为最大字节长度,那长度不足的部分就会被乱码补足。
问题二:以为发送扩展短信,设置的参数在收到回复时会带回来。
接收到的短信是不会携带任何所带的参数,唯一能作为标识的只有接收到的短信的目标号码。即我以 00000123发送给用户13477778888一条短信,那回复的短信能标志的只有他是发给 00000123的。所以要对数据进行复杂操作,需要传id之类的只能放入号码中如上文中的123就是id。