中国联通短信如何 对接
目前,联通短信定购流程如下: 第一步 用户上行 用户按照要求书写信息内容并提交到指定号码。 例如:用户填写3611发送到9929。 第二步 联通验证 联通检查用户上行信息,并匹配业务代码。如果匹配成功,联通将会直接将该业务的相关信息传递给用户,等待用户再次确认。用户发送的该上行信息将不透传给SP。 例如:联通的系统在接收到3611以后,发现有对应的服务。并将该服务的相关信息下发到用户手机上。 第三步 用户确认 用户再次发送同样的信息到指定的号码: 例如:用户再次填写3611发送到9929。 第四步 定购确认 联通检查用户上行信息,并匹配业务代码。如果匹配成功且已经下行确认过一次,联通将直接将该用户的上行信息透传给SP。SP收到的用户上行信息中将会有一个LinkID。 例如:联通的系统在接收到3611以后,发现有对应的服务,并且用户已经确认过,那么将该信息透传给SP。SP此时将收到一条上行信息。 常用SQL语句(详细的操作方式请参考技术手册): insert into cmpp_submit (service_id,dest_terminal_id,registered_delivery,msg_content,link_id) values ('3611','13331020460',1,HEXTORAW('3031'),'64137398'); 第五步 成功定购 SP在接收到用户的确认信息后,应该立即下行一条信息。下行信息中应该带有LinkID。联通如果收到了SP下行的信息,那么定购关系才生效,且发送一条定购成功的消息给用户。否则如果SP没有在规定时间内应答(5秒内),那么联通将认为定购失败。 第六步 下发信息 在用户定购成功以后,才可能下发定制信息。否则,下发的信息可能接收不到。而且在收条中会返回18号错误(用户没有定购相关业务)。下发的时候,可以不需要LinkID,但是Service ID和其他相关信息必须正确。 常用SQL语句(详细的操作方式请参考技术手册): insert into cmpp_submit (service_id,dest_terminal_id,registered_delivery,msg_content) values ('3611','13331020460',1,HEXTORAW('3031')); 第七步 用户退订 用户发送0000或者00000到特别号码上。联通将直接返回定购取消的信息。此时SP收不到任何相关的信息。 回页首华为收条13号错误 error_code = 13 业务代码错误,或者没有申请该业务代码。 注意:华为的网关区分大小写。 回页首华为收条18号错误 Error_code = 18 用户没有定购相关业务。 注意:如果用户没有定购相关业务,直接下发将被屏蔽。 回页首华为收条32号错误 Error_code = 32 数据包里无service_type。 注意:下发的时候,一定要携带service_type,如果为空则会返回该错误。 回页首如果用户已经定购了,用户再定购,那么这个MO,会传递给SP吗? 联通的系统将会透传。但是下行信息会拦截,错误代码为28。 回页首中国联通割接步骤 联通在信SP公司,您好! 请按照此步骤将贵公司sp业务割接到新网关: 1、上下行业务测试: 联通短信中心用130xxxxxxxx发送一条mo消息到sp接入代码; SP下行一条消息到手机130xxxxxxxx; SP下行一条130xxxxxxxx用户的包月信息到网关; 新网关的ip地址是211.xxx.xxx.xxx,序列号为30xxx+企业代码,mt消息的用户名和密码均为 接入代码,mo上行消息的用户名和密码也均为接入代码; 发送消息时,请联系联通短信中心人员进行测试跟踪;联通短信中心人员跟踪查看以上3条消 息包信息的正确性; 此步骤只是测试,并非割接到新网关; 2、若联通短信中心认证以上3条消息测试成功,短信中心另行邮件通知sp具体割接的时间,割 接的参数使用测试时使用的参数; 3、割接到新网关后,请联系省计费,做进一步的计费测试。 回页首定制按条业务如何申报? 允许按照定制按条方式填写,及定制类业务有两种:定制包月、定制按条。 回页首非每月给用户扣费的定制业务如何申报? 按定制包月类业务申报。 回页首SP业务资料中业务申请时间和收费时间如何填写? 业务申请时间即sp向联通的业务申报时间,收费时间即联通允许该sp正式运营该业务的时间。 回页首点播代码、定制代码是否需要精确匹配? 用户的MO指令与计费无关,点播业务的MO指令不能为空是出于规范业务资料,sp管理对此无严格要求;定制业务的MO指令指手机用户定制该业务的命令(即注册命令),其作用仅仅是手机用户用来定制某业务,至于定制业务日常如果有MO的话,其指令sp管理系统并不关心,只要不与定制命令重复即可(如果重复会被sp管理系统认为用户在重复定制该业务而被拦截)。 回页首申报SP业务资料时,#是什么意思? 点播类业务不能有定制、退定代码 ;定制类业务不能有点播指令。比如一个点播业务,在SP业务资料的定购指令,退定指令两个字段需用#号代替 ;比如一个定制业务,在SP业务资料的点播指令字段需用#号代替。 回页首一般聊天类业务如何申报? 按定制类包月业务申报,定制指令、业务代码、退定指令必须唯一。SP管理系统只在手机用户定制该业务时做校验,手机用户定制业务成功后,发送什么内容SP管理系统不关心。 回页首类似赛事直播节目如何给用户扣费(可能上个月里有,下个月里没有)? 这种业务上sp管理系统会按照普通定制业务来处理,即用户定制成功后,sp可以在接下来的月份里连续下包月话单。 回页首SP基本资料中接入地点字段,山东代码为多少? 山东代码为11。 回页首点播类业务只有首条代计费下发,费率如何界定,是否还是原来的最高收费2元/条? sp管理系统对于第一条下行的具体费率大小并不关心,只关心SP下行消息时填的费率是否和申报的一致。
我的聊天业务在定制时接入号是8800,在开展业务时接入号是8800123,请问如何处理? 该业务接入号按8800申报。SP管理系统只关心定制时的接入号,定制成功以后手机用户发到哪个子接入号SP管理系统不关心。 回页首如果我的点播业务或者定制业务,下发条数不固定,在SP业务资料中如何填写?填写的格式如何? 按下发最大条数填写。格式任意。点播类例如:2条/次,定制类例如:2条/月、2条/周、2条/天。 回页首SPMS Web调用接口错误代码含义 0 成功 60000 系统错误 60001 请求参数个数不符 60002 解密不正确, 包括密钥使用不正确 60011 SP接入号不正确: 在EncodeStr里加密前的SpNumber必须等于包体中的SpNumber,不能为长号码 60012 订购(点播)时间不正确: 在EncodeStr里加密前的AccessTime必须等于包体中的AccessTime 60013 手机号不正确: 必须为11位联通的手机号码 60014 订购(点播)操作命令字不正确 60015 SP接入号和命令字代码不匹配 60099 其他错误 回页首湖北联通SPMS鉴权中心错误代码含义 错误代码201:业务代码未分配 原因:根据MT话单里的接入号和业务代码找不到对应的申报项。 错误代码202:业务资费类型错误 原因:MT话单里填写的信息费大于SP实际申报的信息费或者对订制/点播失败的通知信息没有将CHARGENUMBER填为21个0。该情况下SP不用对此包重发,SP管理系统会将此包资费修正后发送。 错误代码203:LINKID不匹配 原因:根据用户的命令字解析出的是订制类业务,但SP返回的业务代码却是非订制业务。 错误代码204:用户未订购 原因:SP下发的是一个订制业务,但用户并未订制该业务,或用户为非订制状态。 也有可能用户做的是点播业务,SP下发的却是订制类业务代码; 错误代码205:下发用户数不为1 原因:MT话单里的USERCOUNT不为1,该字段只能填1,不允许群发。 错误代码206:该包格式错误 原因:1、MT话单的用户号码为空或者CHARGENUMBER为空或者SPNUMBER为空或者CORPID为空或者SERVICETYPE为空都会返回此错误。2、MT包里没有LINKID但根据业务代码判断却又不是订制类业务。 错误代码207:下发的MT超过最大条数 原因:对点播类业务使用同一个LINKID下发的MT条数不能超过申报的数,默认为3条。 错误代码208:第三方付费 原因:定制类MT话单里的CHARGENUMBER和USERNUMBER不同且不是SP付费。 错误代码209:SP不能将MOFLAG填为3 原因:按新规定,SP下发的MT包(除包月话单)中MOFLAG字段不能填3。 错误代码210:WEB点播命令字不存在 原因:WEB点播的时候,SP送过来的命令字是未申报的。此种情况下可让将命令字填4个#。 错误代码211:通知信息被拦截 原因:以后SP下发订制/退订的通知信息将只被用来确认订制关系,但不会下发到用户手机上,改由SPMS通知,此消息在定制成功时正常。 错误代码212:包月话单不许下发 原因:每月10日前不许下发包月话单,订制用户自订制起三日内不许发包月话单,用户在20号以后订购,当月不能下包月话单 回页首基本业务流程 ◆ MO订制流程 1、 发订制命令字到分配给Sp接入号。 2、 鉴权中心鉴权通过后SP会收到一条USERNUMBER为测试手机的短信,内容用户发送的订制命令字,此时该条MO短信的RESERVED字段内带有LINKID。 3、 SP如果处理该条订制业务成功则发一条订制成功的通知信息给用户,注意该通知MT必须带上步骤3中返回的LINKID,且ServiceType一定是该用户订制业务对应的ServiceType;如果SP处理该订制业务不成功则发一条订制失败的通知信息给用户,通知失败的MT的SERVIECTYPE必须填‘ERROR‘,CHARGENUMBER填21个0。 4、 测试手机会收到您下发的订制成功或失败通知,流程结束。 ◆ MO退订的流程 流程和MO订制一样,不同的只是命令字不同; ◆ MO点播流程 1、 发点播命令字到分配给Sp接入号。 2、 鉴权中心鉴权通过后SP会收到一条USERNUMBER为测试手机的短信,内容用户发送的点播命令字,此时该条MO短信的RESERVED字段内带有LINKID。 3、 SP如果处理该条订制业务成功则发一条订制成功的通知信息给用户,注意该通知MT必须带上步骤3中返回的LINKID,且ServiceType一定是该用户订制业务对应的ServiceType;如果SP处理该订制业务不成功则发一条订制失败的通知信息给用户,通知失败的MT的SERVIECTYPE必须填‘ERROR‘,CHARGENUMBER填21个0。 4、 测试手机会收到您下发的点播内容或失败通知,流程结束。 5、 ◆ WEB订制 1、 用户在SP网站定制,SP调用网上定购接口,注意填写的命令字所对应的业务一定是您已经申报的; 2、 如果您填写的订制信息没有问题,则测试手机上会收到一个来自SP接入号的确认短信,提示用户输入订购业务的命令字; 3、 其余流程同手机MO订制的流程; ◆ WEB退订流程 1、到网上定购接口(URL地址已经下发给各测试SP)取消一个业务,注意填写的命令字所对应的业务一定是您已经订制成功的; 2、 用户手机收到退定通知信息。 ◆ WEB点播流程 1、 SP按照接口规范调用Web点播接口,发点播命令字(可以是4个#); 2、 用户手机收到SPMS系统的以SP接入号发送的校验码通知短信以后,在SP网站上填入校验码。 3、 SP根据用户的请求下发MT,该MT一定要带上步骤2中所填的校验码作为LINKID,如果点播命令字确实有对应点播业务那么您下发的MT的SERVICETYPE必须是该点播业务的SERVICETYPE,如果点播命令字只对SP本身有特殊意义的则有SP自己根据对命令字解析下发一个MT,该MT必须带上LINKID且只能是点播类的业务,如果SP处理点播请求失败,则下发一个失败通知的MT(必须带LINKID,SERVICETYPE填ERROR,CHARGENUMBER填21个0); 4、 用户手机收到点播下发的MT或者失败通知的MT; ◆ 业务MT下发流程 1、 对用户已经订制了的业务,SP下发业务MT的时候SERVICETYPE,FEETYPE,FEEVALUE一定要和所申报的一致且业务MT一定不能带LINKID; 2、 如果SERVICETYPE不是用户已经订制了的,该MT不能被下发;如果SERVICETYPE是订制了的但填写的信息费超过所申报的,则该MT也会被拦截但鉴权中心会重新下发一个纠正了资费后的MT给用户,同时记录SP本次的违规行为供审核用;如果都填写正确用户将收到该MT包,如果是月租话单,用户会收到一个通知短信; 通知MT不同于业务MT,通知MT是一定要带LINKID的; 回页首湖北联通填写各数据包注意事项 ◆ 对订制业务,发MO订制的时候命令字要和您申报的该业务的订制命令字(即用户发的订制命令)相符合,订制命令字只能为字母或数字,不能为汉字和符号;系统支持UNICODE的订制命令字和长号码的SPNUMBER; ◆ 订制类业务的业务MT和包月计费包下发时不能带LINKID,其他情况下MT要带LINKID; ◆ 订制/退订业务的成功通知MT、订制业务的业务MT、成功的点播对应下发的MT其SERCICETYPE一定要和用户真实订制/点播的业务相符合; ◆ 月租包的判断依据是MOFLAG=3&&REPORTFLAG=3&&FEETYPE=3; ◆ 对订制类业务的MT,除了SP付费的情况允许CHARGENUMBER填21个0以外,其他情况下下必须是USERNUMBER和CHARGENUMBER相同,不允许订制类业务有第三方付费的情况; ◆ MT的MOFLG标志一律不允许填3(包月话单除外); ◆ MT的USERCOUNT字段只能填1; ◆ 点播/订制/退订等的失败通知SERVICETYPE一律填ERROR,CHARGENUMBER填21个0; ◆ 当用户发送‘0000’全部退订某SP的业务时,SP的通知MT的SERVICETYPE填‘0000’; 回页首其他问题 ◆ SP收到的所有MO都是带有LINKID的,最长为8位,可以不足8位。对不足8位的在后面补二进制的0,不能补字符0; ◆ 用户不需要申报业务代码0000和ERROR的业务,系统默认此两种业务代码分别为退定所有业务和错误通知信息下发。 ◆ 目前发现有SP收REPORT报告和MT比较慢的问题,有时在一个发送订制请求一个小时后才收到确认MT或者下发的业务MT间隔一段时间才能收到。这并不是由于鉴权中心引起的(目前测试阶段业务量很小,不存在性能问题),如果您测试的时候发现这种情况请选择在用户使用增值业务比较少的时段测试; ◆ 状态报告错误代码的问题,参考REPORT报告返回的错误代码对了解MT包那里填写不规范有一些帮助,附录有REPORT报告错误代码对应的错误信息供参考; ◆ 业务命令字的命名最好避免一些有歧义性的东西,特别是对一些需要用户回复的业务。比如某SP申报某业务A的订制命令字申请为“OK“,而该SP恰好有一个业务B可能需要用户的回复(比如聊天类或者游戏互动类)。业务B的订制用户在聊天后者游戏过程中可能回复OK表示某种意思,由于该回复恰好又是业务A的订制命令字,这样鉴权系统就会认为该MO是一个订制业务A的请求而不是普通的回复MO,SP也就收不到该回复的MO了,影响业务运行。 ◆ 当用户发送一个未申报的命令字到SP的时候,鉴权中心对其的处理同处理####的情况; 回页首业务举例 比如有以接入号为3099,CORPID 11999的SP申报了一个点播业务和一个订制业务,资料分别如下: 点播业务资料信息: 点播命令字--DBXW,业务代码--TYXW,业务类型—点播类,信息费-20 订制业务资料信息: 订制命令字---DZXH,业务代码—HHXW,业务类型—订制类,退定命令字—TDXH,月租500,信息费 0, 用户(13300000000)订制业务的时候直接在手机输入DZXH发往3099即可; SP会收到一条USERNUMBER为13300000000,短信内容为DZXH,且带上了LINKID(值为50000000)的MO,SP此时应下发一条通知用户盯制成功的短信,业务代码填HHXW,且带上LINKID(值为50000000),下发该MT后用户(1330000000)将收到该条通知短信。 用户订制成功后SP可以下发业务MT给用户了,此时下发的业务MT的SERVICETYPE必须填HHXW,且LINKID为空,信息费填0,下发后用户将收到该MT; 下发该业务的包月话单时,SERVICETYPE必须填HHXW,且LINKID为空,信息费填500,MOFLAG填2,FEETYPE填3,REPROTFLAG填3,下发后用户将收到一条收取月租费的通知短信(该功能联通还未开放); 退订时在手机输入TDXH发送到3099,剩余步骤同订制时步骤; 用户点播业务的时候直接在手机输入DBXW发往3099,3099会收到一条来自13300000000,内容为DBXW,且带有LINKID(比如45678)的MO,3099成功处理该MO后下发一条对应的MT给用户且SERVICETYPE 填TYXW,FEEVALUE填5,带上LINKID(45678)下发给用户,稍后用户将收到该点播所引起的MT。 回页首有关网上订购和点播接口URL以及加密算法 点播:http://点播服务器地址:端口号/WebOrder.aspx 订制:http://订制服务器地址:端口号/WebSubscription.aspx 采用3DES加密, ECB模式/使用PKCS7方式填充不足位, 目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串 以下为一个加密的例子: 密钥的base64编码是: 27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46 DECODE后密钥是: key={-37,-72,-21,91,61,-84,-58,-75,91,71,-22,103,-54,14,-93,88,120,96,54,78,44,102,-114,58}; 源字符串是:3033?$D10-02-24 16:19:27 其数组为: {51,48,51,51,36,49,51,51,49,49,48,56,51,48,54,48,36,68,49,48,36,50,48,48,52,45,48,50,45,50,52,32,49,54,58,49,57,58,50,55} 加密后的数组是: {42,-121,-80,127,7,5,-114,-32,112,-105,53,78,-121,-107,14,83,113,84,-1,-52,30,93,7,125,7,84,104,45,-27,82,-35,64,-87,-11,-91,95,66,-24,-81,125,36,-21,38,-121,-25,-1,-73,125} Base编码后: KoewfwcFjuBwlzVOh5UOU3FU/8weXQd9B1RoLeVS3UCp9aVfQuivfSTrJofn/7d9 回页首企业号(CorpId)与接入号(SpNumber)的关系? 一个SP具有唯一一个企业号,特殊情况下一个SP允许向联通申请多个接入号,即企业号与接入号可为一对多的关系。 回页首MT消息的分类? SP能够下发的MT消息只有点播和订制两类,订制消息包括订制通知包、订制后的业务消息、退订后的通知包、月租计费包四种,除此外SP不能向用户下发其它类型的MT消息。 SP申报业务代码时,业务代码对应的业务类别(RequestType)只有两类:1为点播,2为订制。 回页首长号码的问题? SP申报定制业务时,不能使用长号码,但SP可使用长号码开展业务,如QQ聊天类业务,接入号可为9777+QQ号,长号码的解析由SP自行定义,申报业务时以短号码申报。 在点播类业务中,SP可使用长号码(MO和MT都可以),申报时要说明(word文档格式,按原有的申报流程)。在提供给SPMS的SP业务资料同步接口中,SPNumber以短号方式提交,实际开展业务时,解析由SP自行定义。 回页首MO指令中如何区分业务? SPMS系统以短号码+命令字来区分业务,SP申报业务时,只能使用短号码进行申报,不能使用长号码。如接入号9163加命令字ABC和接入号916301加命令ABC会被解析为同一个业务请求。 回页首命令字如何解析? 命令字最大长度为12位字符,命令字只能由“0-9”、“A-Z”、“a-z”、“-_”此64个字符构成,不能使用其它特殊字符,SPMS解析命令字时,遇到除此64个字符外的其它字符,即认为命令字已结束,如TQDZ 010、TQDZ 020 、TQDZ#020会被解析为同一个业务请求。 在某些SP的业务中,存在如下情况,如对于天气预报业务,订制北京天气预报指令为DZTQ 010,订制广州天气预报指令为DZTQ 020,这种情况下SP应分为多个业务,将指令分开,不能都用DZTQ。 在MO业务请求消息中,建议命令字与其它内容以空格或#号分隔。 回页首SP是否能提供第3方付费业务? 目前不允许开通第3方付费的订制业务,对于付费号码和接收号码不一致的订制类业务,SPMS将不允许下发;点播类第3方付费业务,目前仍然支持。 回页首SPMS系统开通后,正常业务流程如何实现? A. MO方式点播业务:用户发起MO业务点播请求->SPMS生成点播关系及LinkID->SP在下发的Submit包中填写对应Deliver包中的LinkID->SPMS根据LinkID及点播关系进行鉴权。 B. MO方式订制业务:用户发起业务订制请求->SPMS生成临时订制关系,向用户下发订制确认短信->用户重新回复命令字确认订制->SPMS转发Deliver包给SP(带LinkID)->SP下发订制成功/失败通知包给用户(需要带LinkID,失败通知包用业务代码ERROR下发,此业务代码不用申报)->SPMS根据通知包生成正式订制关系,拦截SP的订制成功通知,采用平台统一格式下发订制成功通知,返回错误代码211->SP根据订制规则向用户下发业务消息(不带LinkID)->SPMS根据用户订制关系进行鉴权。 C. MO方式退订业务:用户发起业务退订请求-> SPMS退订用户业务,转发Deliver包给SP(带LinkID)->SP到Deliver包,进行退订处理。 D. 用户在WEB上注册SP社区用户:用户在WEB上注册SP社区用户->SP调用SPMS点播接口,挂起用户请求,等待用户输入确认码->SPMS向用户下发确认码短信->用户收到确认码短信,在WEB上输入确认码->SP向用户下发密码通知消息,将用户输入的确认码填在LinkID字段->SPMS根据确认码及点播关系进行鉴权->用户使用SP下发的密码登录SP社区。 E. WEB方式点播业务:用户登录SP社区->用户在网上点播业务->SP调用SPMS点播接口,挂起用户请求,等待用户输入确认码->SPMS向用户下发确认码短信->用户收到确认码短信,在WEB上输入确认码->SP下发点播消息,将用户输入的确认码填在Sumit包LinkID字段->SPMS根据确认码及点播关系进行鉴权。 F. WEB方式订制业务:用户在WEB上发起业务订制请求->SP调用SPMS提供的定购接口->SPMS生成临时订制关系,向用户下发订制确认短信,提示用户发送命令字到SP接入号->用户发送命令字MO确认订制->SPMS发Deliver包给SP(带LinkID)->SP下发订制成功/失败通知包用户(需要带LinkID,失败通知包用业务代码ERROR下发,此业务代码不用申报)->SPMS根据通知包生成正式订制关系->SP根据订制规则向用户下发业务消息(不带LinkID)->SPMS根据用户订制关系进行鉴权。 G. WEB方式退订业务:用户在WEB上发起业务退订请求->SP调用SPMS提供的业务退订接口-> SPMS退订用户业务,转发Deliver包给SP(带LinkID)-> SP到Deliver包,进行退订处理。 回页首MT消息中SP如何填写LinkID? A. MO点播引起的MT:SP必须在Submit包中填写对应的MO点播请求Deliver消息中的LinkID。 B. WEB点播引起的MT:SP必须在Submit包中填写用户在WEB上输入的由SPMS下发给用户的确认码,该确认码作为MT消息的LinkID。 C. 订制或退订引起的通知MT:SP必须在Submit包中填写对应的订制/退订请求Deliver消息中的LinkID。 D. 订制成功后引起MT业务消息、月租包消息:不需要填写LinkID,Submit包Reserve字段填空。 回页首用户发起命令字为0000的业务退订请求如何处理? 用户发起命令字为0000的业务请求,表示用户退订此SP的所有业务,SPMS会处理用户业务全退订请求,SP也必须处理该指令,将用户的全部业务定购取消。 0000的命令字所对应的业务代码为0000;信息费为0,付费号码填写21个字符0(即SP支付通道费)。 回页首是否支持00000返回菜单形式的业务退订形式? 不支持! 回页首SP付费业务如何处理? SP提供的SP付费业务必须作为一种订制业务提供给用户,SP只能向订制此类业务的用户发送SP付费的消息,计费号码填全0,信息费填0,通信费由SP支付。 回页首SP下发的MT消息中ServiceType、MoMtFlag、FeeType、FeeValue等字段如何填写? 订制或退订成功的通知包中,业务代码字段填写该业务对应的业务代码;订制或退订失败的通知包中,业务代码固定填写ERROR,表示SP端订制或退订失败。 假设正常的业务代码为ABCD,则SP下发的MT消息中各字体填写规则如下:(**表示具体的值) A. 短信点播类:ServiceType=ABCD,MoMtFlag=0/1,FeeType=2,FeeValue=** B. 网上点播类:ServiceType=ABCD,MoMtFlag=0/1,FeeType=2,FeeValue=** C. 订制成功通知包:ServiceType=ABCD,MoMtFlag=0,FeeType=1,FeeValue=0 D. 订制失败通知包:ServiceType=ERROR,MoMtFlag=2,FeeType=1,FeeValue=0,Chargenumber=000000000000000000000 E. 退订成功通知包:ServiceType=ABCD,MoMtFlag=0,FeeType=1,FeeValue=0 F. 退订失败通知包:ServiceType=ERROR,MoMtFlag=2,FeeType=1,FeeValue=0,Chargenumber=000000000000000000000 G. 包月计费类订制业务包:ServiceType=ABCD,MoMtFlag=2,FeeType=1,FeeValue=0 H. 按条计费类订制业务包:ServiceType=ABCD,MoMtFlag=2,FeeType=2,FeeValue=** I. 月租计费包:ServiceType=ABCD,MoMtFlag=2,ReportFlag=3、FeeType=3,FeeValue=** J. SP付费包:ChargeNumber=00000000000000000000,ServiceType=ABCD,FeeType=4,FeeValue=0 K. 0000命令字对应的退订命令包:ServiceType=0000,MoMtFlag=0,FeeType=1,FeeValue=0 回页首是否有WEB形式的定购取消接口 WEB形式的订制取消和订制使用同一个接口,SPMS根据命令字自动判断该请求是订制请求还是退订请求。 回页首在SP业务资料同步接口中,一个业务的订制和退订是否是2行记录? 在SP业务资料同步接口中,一个订制业务只有一行记录,订制命令字和退订命令字是一行数据中的两个字段。 回页首SP基本资料接口中,XML文件的XSD定义是什么? <?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="SPMS"> <xs:complexType> <xs:sequence> <xs:element ref="SpBasicInfo" maxOccurs="100000" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SpBasicInfo"> <xs:complexType> <xs:sequence> <xs:element ref="CorpID" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ShortName" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpChName" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpEnName" minOccurs="1" maxOccurs="1" /> <xs:element ref="CorpType" minOccurs="1" maxOccurs="1" /> <xs:element ref="CreateDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="StockFlag" minOccurs="1" maxOccurs="1" /> <xs:element ref="ArtificialPerson" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChiefOfficer" minOccurs="1" maxOccurs="1" /> <xs:element ref="TotalMember" minOccurs="1" maxOccurs="1" /> <xs:element ref="RegisterFund" minOccurs="1" maxOccurs="1" /> <xs:element ref="Introduction" minOccurs="1" maxOccurs="1" /> <xs:element ref="WebAddress" minOccurs="0" maxOccurs="1" /> <xs:element ref="ServiceDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ProvinceCode" minOccurs="1" maxOccurs="1" /> <xs:element ref="AreaCode" minOccurs="0" maxOccurs="1" /> <xs:element ref="TeleSvcLicense" minOccurs="0" maxOccurs="1" /> <xs:element ref="TeleSvcLicensedBy" minOccurs="0" maxOccurs="1" /> <xs:element ref="License" minOccurs="1" maxOccurs="1" /> <xs:element ref="LicensedBy" minOccurs="1" maxOccurs="1" /> <xs:element ref="DealInScope" minOccurs="1" maxOccurs="1" /> <xs:element ref="BankName" minOccurs="0" maxOccurs="1" /> <xs:element ref="BankAccount" minOccurs="0" maxOccurs="1" /> <xs:element ref="Address" minOccurs="1" maxOccurs="1" /> <xs:element ref="ZipCode" minOccurs="1" maxOccurs="1" /> <xs:element ref="PhoneNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="FaxNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="DisputationNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="EffectiveDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="ExpireDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeUser" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeUserDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeTelNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeMobilePhone" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeEmail" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactName" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactUserDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactTelNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactMobilePhone" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactEmail" minOccurs="1" maxOccurs="1" /> <xs:element ref="RegisterDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="AccesssDate" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="timeType"> <xs:restriction base="xs:string"> <xs:length value="10" /> <xs:pattern value="\d{4}-((0?[1-9])|(1[0-2]))-((0?[1-9])|([1-2][0-9])|(3[0-1]))" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="MDNType"> <xs:restriction base="xs:string"> <xs:length value="11" /> <xs:pattern value="13[0|1|3]\d{8}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="StockFlagType"> <xs:restriction base="xs:string"> <xs:enumeration value="0" /> <xs:enumeration value="1" /> </xs:restriction> </xs:simpleType> <xs:element name="CorpID" type="xs:string"></xs:element> <xs:element name="SpNumber" type="xs:string"></xs:element> <xs:element name="ShortName" type="xs:string"></xs:element> <xs:element name="SpChName" type="xs:string"></xs:element> <xs:element name="SpEnName" type="xs:string"></xs:element> <xs:element name="CorpType" type="xs:string"></xs:element> <xs:element name="CreateDate" type="timeType"></xs:element> <xs:element name="StockFlag" type="StockFlagType"></xs:element> <xs:element name="ArtificialPerson" type="xs:string"></xs:element> <xs:element name="ChiefOfficer" type="xs:string"></xs:element> <xs:element name="TotalMember" type="xs:string"></xs:element> <xs:element name="RegisterFund" type="xs:string"></xs:element> <xs:element name="Introduction" type="xs:string"></xs:element> <xs:element name="WebAddress" type="xs:string"></xs:element> <xs:element name="ServiceDesc" type="xs:string"></xs:element> <xs:element name="ProvinceCode" type="xs:string"></xs:element> <xs:element name="AreaCode" type="xs:string"></xs:element> <xs:element name="TeleSvcLicense" type="xs:string"></xs:element> <xs:element name="TeleSvcLicensedBy" type="xs:string"></xs:element> <xs:element name="License" type="xs:string"></xs:element> <xs:element name="LicensedBy" type="xs:string"></xs:element> <xs:element name="DealInScope" type="xs:string"></xs:element> <xs:element name="BankName" type="xs:string"></xs:element> <xs:element name="BankAccount" type="xs:string"></xs:element> <xs:element name="Address" type="xs:string"></xs:element> <xs:element name="ZipCode" type="xs:string"></xs:element> <xs:element name="PhoneNum" type="xs:string"></xs:element> <xs:element name="FaxNum" type="xs:string"></xs:element> <xs:element name="DisputationNum" type="xs:string"></xs:element> <xs:element name="EffectiveDate" type="timeType"></xs:element> <xs:element name="ExpireDate" type="timeType"></xs:element> <xs:element name="ChargeUser" type="xs:string"></xs:element> <xs:element name="ChargeUserDesc" type="xs:string"></xs:element> <xs:element name="ChargeTelNumber" type="xs:string"></xs:element> <xs:element name="ChargeMobilePhone" type="xs:string"></xs:element> <xs:element name="ChargeEmail" type="xs:string"></xs:element> <xs:element name="ContactName" type="xs:string"></xs:element> <xs:element name="ContactUserDesc" type="xs:string"></xs:element> <xs:element name="ContactTelNumber" type="xs:string"></xs:element> <xs:element name="ContactMobilePhone" type="MDNType"></xs:element> <xs:element name="ContactEmail" type="xs:string"></xs:element> <xs:element name="RegisterDate" type="timeType"></xs:element> <xs:element name="AccesssDate" type="timeType"></xs:element> </xs:schema> 回页首如果SP处理定制的MO包不成功,如何下发通知信息? 平台提供了统一的ERROR的业务代码,该业务代码所对应的信息费资费必须为0,付费号码必须填写21个字符0(SP支付通道费)。 回页首SP能否提供帮助的业务代码? SP必须单独申报,如果申报成功,该业务代码所对应的信息费自费必须为0,付费号码必须填写21个字符0(SP支付通道费)。 回页首密钥的获取方式是什么? 各SP登陆到SP自服务系统上,在菜单上选择获取密钥,SPMS系统就会将密钥以BASE64的方式编码后的ASCII码字符串发送到SP在基本资料同步接口上提供的联系人EMAIL邮箱中去。 回页首铃声图片点播业务中, SP如何下发MT包? 这种情况下,SP需要将MT包拆分;所有的拆分包中,业务代码填写该业务对应的业务代码,LinkID填写用户MO包或在网上填写的确认码;第一个包填写应收的信息费,其他包的信息费必须为0。 回页首目前华为网关返回的错误码与SGIP规范定义的有一些不同,以这份资料为准 0 :无错误,命令正确接收 1 :非法登录,如登录名、口令出错、登录名与口令不符等。 2 :重复登录,如在同一TCP/IP连接中连续两次以上请求登录。 3 :连接过多,指单个节点要求同时建立的连接数过多。 4 :登录类型错,指bind命令中的logintype字段出错。 5 :参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。 6 :非法手机号码,协议中所有手机号码字段出现非86130号码或手机号码前未加"86"时都应报错。 7 :消息ID错 8 :信息长度错 9 :非法序列号,包括序列号重复、序列号格式错误等 10 :SPName与SPID匹配错 11 :节点编号错误 12 :SPNumber未分配或不合法 13 :业务代码未分配 14 :业务资费类型填错 15 :业务信息费率填写错误 16 :用户未定制的SP非法下发 17 :LinkID不匹配(MT与MO) 18 :用户未订购 19 :下发用户数不为1 20 :节点忙,指本节点存储队列满或其他原因,暂时不能提供服务的情况 21 :停机用户鉴权不通过,无法下发 22 :离网用户鉴权不通过,无法下发 24 :计费号码无效,鉴权不成功时反馈的错误信息 25 :不提供此功能 26 :应答接收超时 27 :系统失败 28 :用户已经定购该业务 29 :未到规定收取包月费的时间不能收取包月费 30 :已经达到SP每天允许下发的最大条数 说明:目前华为网关返回的错误码与SGIP规范定义的有一些不同,以这份资料为准。 回页首深圳奥天网关错误代码表 0 全部 成功 1 全部 非法登陆,一般为用户名密码错误 2 全部 重复登陆 3 全部 连接过多,超过限制 4 全部 登陆类型错误 5 全部 参数格式错误 6 SPPROXY 非法手机号码,一般指ChargeNumber和UserNumber的填写不规范 7 消息ID错 8 SPPROXY,SMGPROXY 消息长度错误 9 SPPROXY,SMGPROXY 非法序列号,指序列号重复,第一个序列号即源节点编码错误 23 CENTER 路由不存在 32 全部 系统失败,一般是申请内存失败或者创建线程失败 33 SPPROXY,SMGPROXY 超过流量限制,指发送方在一秒内的流量已经达到限制,拒绝发送 34 SPPROXY,SMGPROXY 登陆太频繁,指同一个SP或者SMG在一分钟内登陆次数已经达到限制,拒绝登陆 51 SAFEPROXY 无法连接016监控中心 52 SAFEPROXY 安全检查超时 61 SAFEPROXY 安全检查不通过 69 SMGPROXY 没有目的网关的信息 70 SMGPROXY 发送到异地网关的缓冲区满 71 SMGPROXY 发送MT到异地网关接收RESPONSE超时 72 SMGPROXY 连接异地网关失败 73 SMGPROXY 连接断开 74 SMGPROXY 发送BIND到异地网关失败 75 SMGPROXY 接收异地网关返回的BIND_RESP失败 76 SMGPROXY 异地网关返回登陆失败 77 SMGPROXY 异地网关返回的BIND_RESP长度错误 78 SMGPROXY 接收异地网关的BIND_RESP超时 79 SMGPROXY 连接关闭 80 SMGPROXY 发送信息到异地网关失败 81 SMGPROXY 接收异地网关的RESPONSE失败 82 SMGPROXY 异地网关返回的RESPONSE的COMMANDID不匹配 83 SMGPROXY 接收异地网关的RESPONSE超时 84 SMGPROXY 发送到异地网关的缓冲区满 93 CENTER 监权失败 100 CENTER 达到系统最大容量 102 CENTER 系统失败,创建线程失败 5001 SPPROXY 连接SP失败 5002 SPPROXY 发送BIND到SP失败 5003 SPPROXY 接收SP的BIND_RESP失败 5004 SPPROXY SP返回BIND_RESP登陆失败 5005 SPPROXY SP返回的BIND_RESP长度错误 5007 SPPROXY SP返回BIND_RESP超时 5011 SPPROXY 发送MO,REPORT到SP失败 5012 SPPROXY 接收MO,REPORT的RESPONSE失败 5014 SPPROXY SP返回的RESPONSE的CommandID不匹配 5015 SPPROXY 与SP连接断开 5017 SPPROXY SP返回RESPONSE超时 5020 SPPROXY 发送到SP的缓冲区满 5021 SPPROXY 与SP的连接关闭 回页首广东SMG常见错误代码 错误码 错误说明 0 无错误,命令正确 1 非法登录(用于RESP应答) 2 重复登录(用于RESP应答) 3 连接过多(用于RESP应答) 4 登录类型错(用于RESP应答) 5 参数格式错(用于RESP应答) 6 非法手机号码(用于RESP应答) 7 消息ID错(用于RESP应答) 8 信息长度错(用于RESP应答) 9 非法序列号(用于RESP应答) 32 系统失败(一般指系统消息队列满) 33 MT超过流量限制(用于RESP应答) 34 频繁登录次数过多(用于RESP应答) 90 SGIP包长度错误(用于RESP应答) 21 目的地址不可达 22 路由错 23 路由不存在 24 计费号码无效 25 用户不能通信 26 手机内存不足 27 手机不支持短消息 28 手机接收短消息出现错误 29 不知道的用户 30 不提供此功能 31 非法设备 93 后付费用户鉴权失败 94 预付费用户扣费失败 错误码 错误说明 201 业务代码未分配 202 业务资费类型错误 202 信息费错误 203 LINKID不匹配 204 用户未订购 205 下发用户数不为1 206 该包格式错误 207 下发的MT超过最大条数 208 第三方付费 209 SP不能将MOFLAG填为3 210 WEB点播命令字不存在 211 订制关系成功建立,但通知由SP管理平台发送,SP的MT被拦截 212 包月话单被拦截 213 SPNUMBER未分或不合法 214 停机用户 215 离网用户 216 计费号码错 217 重复订购 218 重复点播 219 被禁止的SP 219 非法登录 220 重复登录 221 连接过多 222 登录类型错 223 参数格式错 224 非法手机号码 225 消息ID错 226 信息长度错 227 非法序列号 228 SP节点编号错 229 节点忙 230 不提供此功能 231 等待应答超时 232 系统错 233 将发NOTISP包,原流程需要终止 234 将发NOTIUSER包,原流程需要终止 235 鉴权中心处理超时 236 超过最大重试次数 237 白名单SP,直接返回鉴权成功 238 手机短信到SPPORTAL定制且不需要确认,这时返回该错误同时发一个NOTITOSP 239 MO鉴权的时候LINKID异常 240 用户确认的时候回复N,流程终止,MO不上发 241 错误的包类型 242 包长度错误 243 MD5验证码错误 回页首联通北京全网发送话单,state = 2但是error_code = 0是啥意思? 这种情况是各省自己定义的错误代码,但是总体还是出错。扣费没成功。 回页首北京联通全网SPMS鉴权中心错误代码含义 错误代码13:业务代码未分配 原因:根据MT话单里的接入号和业务代码找不到对应的申报项。 错误代码14:业务资费类型错误 原因:MT话单里填写的信息费大于SP实际申报的信息费或者对订制/点播失败的通知信息没有将CHARGENUMBER填为21个0。该情况下将对应字段填入正确值下发 错误代码17:LINKID不匹配 原因:根据用户的命令字解析出的是订制类业务,但SP返回的业务代码却是非订制业务。 错误代码18:用户未订购 原因:SP下发的是一个订制业务,但用户并未订制该业务,或用户为非订制状态。 也有可能用户做的是点播业务,SP下发的却是定制类业务代码; 错误代码19:下发用户数不为1 原因:MT话单里的USERCOUNT不为1,该字段只能填1,不允许群发。 错误代码32:该包格式错误 原因:1、MT话单的用户号码为空或者CHARGENUMBER为空或者SPNUMBER为空或者CORPID为空或者SERVICETYPE为空都会返回此错误。2、MT包里没有LINKID但根据业务代码判断却又不是订制类业务。 错误代码38:下发的MT超过最大条数 原因:对点播类业务使用同一个LINKID下发的MT条数不能超过申报的数,默认为5条。 错误代码39:第三方付费 原因:定制类MT话单里的CHARGENUMBER和USERNUMBER不同且不是SP付费。 错误代码40:SP不能将MOFLAG填为3 原因:按新规定,SP下发的MT包中MOFLAG字段不能填3。 错误代码43:WEB点播命令字不存在 原因:WEB点播的时候,SP送过来的命令字是未申报的。此种情况下可让将命令字填4个#。 错误代码44:通知信息被拦截 原因:以后SP下发订制/退订的通知信息将只被用来确认订制关系,但不会下发到用户手机上,改由SPMS通知,此消息在定制成功时正常。 错误代码95:包月话单不许下发 原因:每月10日前不许下发包月话单,订制用户自订制起三日内不许发包月话单; 回页首北京联通全网填写各数据包注意事项 ◆ 对订制业务,发MO订制的时候命令字要和您申报的该业务的订制命令字(即用户发的订制命令)相符合,订制命令字只能为字母或数字,不能为汉字和符号;系统支持UNICODE的订制命令字和长号码的SPNUMBER; ◆ 订制类业务的业务MT和包月计费包下发时不能带LINKID,其他情况下MT要带LINKID; ◆ 订制/退订业务的成功通知MT、订制业务的业务MT、成功的点播对应下发的MT其SERCICETYPE一定要和用户真实订制/点播的业务相符合; ◆ 月租包的判断依据是MOFLAG=2&&REPORTFLAG=3&&FEETYPE=3; ◆ 对订制类业务的MT,除了SP付费的情况允许CHARGENUMBER填21个0以外,其他情况下下必须是USERNUMBER和CHARGENUMBER相同,不允许订制类业务有第三方付费的情况; ◆ MT的MOFLG标志一律不允许填3; ◆ MT的USERCOUNT字段只能填1; ◆ 点播/订制/退订等的失败通知SERVICETYPE一律填ERROR,CHARGENUMBER填21个0; ◆ 当用户发送‘0000’全部退订某SP的业务时,SP的通知MT的SERVICETYPE填‘0000’; 其他问题 ◆ SP收到的所有MO都是带有LINKID的,最长为8位,可以不足8位。对不足8位的在后面补二进制的0,不能补字符0; ◆ 用户不需要申报业务代码0000和ERROR的业务,系统默认此两种业务代码分别为退定所有业务和错误通知信息下发。 ◆ 目前发现有SP收REPORT报告和MT比较慢的问题,有时在一个发送订制请求一个小时后才收到确认MT或者下发的业务MT间隔一段时间才能收到。这并不是由于鉴权中心引起的(目前测试阶段业务量很小,不存在性能问题),如果您测试的时候发现这种情况请选择在用户使用增值业务比较少的时段测试; ◆ 状态报告错误代码的问题,参考REPORT报告返回的错误代码对了解MT包那里填写不规范有一些帮助,附录有REPORT报告错误代码对应的错误信息供参考; ◆ 业务命令字的命名最好避免一些有歧义性的东西,特别是对一些需要用户回复的业务。比如某SP申报某业务A的订制命令字申请为“OK“,而该SP恰好有一个业务B可能需要用户的回复(比如聊天类或者游戏互动类)。业务B的订制用户在聊天后者游戏过程中可能回复OK表示某种意思,由于该回复恰好又是业务A的订制命令字,这样鉴权系统就会认为该MO是一个订制业务A的请求而不是普通的回复MO,SP也就收不到该回复的MO了,影响业务运行。 ◆ 当用户发送一个未申报的命令字到SP的时候,鉴权中心对其的处理同处理####的情况; 回页首北京联通全网有关网上订购和点播接口URL以及加密算法 点播:http://220.194.49.19:9555/WebOrder.aspx 订制:http://220.194.49.19:9666/WebSubscription.aspx 采用3DES加密, ECB模式/使用PKCS7方式填充不足位, 目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串 以下为一个加密的例子: 密钥的base64编码是: 27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46 DECODE后密钥是: key={-37,-72,-21,91,61,-84,-58,-75,91,71,-22,103,-54,14,-93,88,120,96,54,78,44,102,-114,58}; 源字符串是:3033?$D10-02-24 16:19:27 其数组为: {51,48,51,51,36,49,51,51,49,49,48,56,51,48,54,48,36,68,49,48,36,50,48,48,52,45,48,50,45,50,52,32,49,54,58,49,57,58,50,55} 加密后的数组是: {42,-121,-80,127,7,5,-114,-32,112,-105,53,78,-121,-107,14,83,113,84,-1,-52,30,93,7,125,7,84,104,45,-27,82,-35,64,-87,-11,-91,95,66,-24,-81,125,36,-21,38,-121,-25,-1,-73,125} Base编码后: KoewfwcFjuBwlzVOh5UOU3FU/8weXQd9B1RoLeVS3UCp9aVfQuivfSTrJofn/7d9 回页首北京联通全网SPMS Web调用接口错误代码含义 错误代码 说明 0 成功 60000 系统错误 60001 请求参数个数不符 60002 解密不正确, 包括密钥使用不正确 60011 SP接入号不正确: 在EncodeStr里加密前的SpNumber必须等于包体中的SpNumber 60012 订购(点播)时间不正确: 在EncodeStr里加密前的AccessTime必须等于包体中的AccessTime 60013 手机号不正确: 必须为11位联通的手机号码 60014 订购(点播)操作命令字不正确 60015 SP接入号和命令字代码不匹配 60099 其他错误 回页首山东联通错误码——SGIP协议登录错误码(bind响应) 错误码 含义 1 无权限(登陆帐号或密码错误) 2 非法源地址 3 认证错 4 登陆类型错误 55 超过系统接口数 56 超过帐号设置接口数 57 SP登陆IP错误 59~ 保留 88 (英斯克定义) CP MT 流控错误 93 SGIP协议SP节点编号错 回页首山东联通错误码——网关错误码 错误码 含义 1 消息结构错 2 命令字错误 3 消息序列号重复 4 消息长度错 5 资费代码错 6 超过最大信息长 7 业务代码错 8 流量控制错(user_phone单填写CDMA号码不在白名单中或charge_phone和user_phone填写的CDMA号码不在白名单) 9 本网关不负责此计费号码(如意通和外省号码) 10 Src_ID错(手机因关机或内存满消息超时删除返回的状态报告) 11 CorpID错(如是MT消息出现很多,可能是他的提交submit消息接口与回状态报告的接口冲突,建议SP不要使用手机上行接口来下发SUBMIT消息;还有一种情况是corp_id填写错误) 12 计费地址错(user_phone单填写GSM号码不在白名单中或charge_phone和user_phone填写的GSM号码不在白名单) 13 目的地址错 14~49 扩展 23(英斯克定义) 路由错误。路由不存在,指消息路由的节点在路由表中不存在 24(英斯克定义) 黑名单用户。计费号码无效,鉴权不成功时反馈的错误信息 40(英斯克定义) 网关对如意通用户进行拦截 50(英斯克定义) 短消息内容非法 51 尚未建立连接 52 尚未成功登录 53 发送消息失败 54 超时未接收到响应消息(一般是tp_udhi一项填写不对,应该填写0) 55 等待状态报告超时 56 用户鉴权时用户状态不正常(charge_phone不在白名单) 60 保留 61 有效时间已经过期(charge_phone和user_phone填写的GSM号码不在白名单) 62 定时发送时间已经过期 63 不能识别的FeeType 64 发送服务源地址鉴权失败 65 发送服务目的地址鉴权失败 66 接收服务源地址鉴权失败(手机内存满或关机等待下发已经到达10条后,SP再发就会出现此错误) 67 接收服务目的地址鉴权失败 68 用户鉴权失败 69 此用户为黑名单用户 70 网络断连或目的设备关闭接口 71 超过最大节点数 72 找不到路由 73 等待应答超时 74 送SCP失败 75 送SCP鉴权等待应答超时 76 信息安全鉴权失败 77 超过最大Submit提交数 78 SPID 为空 79 业务类型为空 80 CPCode错误 81 发送接收接口重复 82 循环路由 83 超过接收侧短消息MTU 84 送DSMP重发失败 85 DSMP系统忙重发 86 DSMP系统忙,且缓存满重发 87 DSMP流控重发 88 流控错误,流量超过最大限制 89 90 SGIP消息等待处理 91 SGIP协议状态报告请求标识错误 92 SGIP协议MT标识错 93 SGIP协议SP节点编号错 94 没有配置帐号 回页首山东联通错误码——SPMS常用错误代码 101 /* 定购业务失败 */ 102 /* 退定业务失败 */ 103 /* 非法SP */ 104 /* 非法用户 */ 105 /* 用户未定购此项业务,鉴权失败 */ 106 /* 非法费用,鉴权失败 */ 107 /* 重复包月话单 */ 108 /* 非法指令*/ 109 /* 非法业务代码*/ 110 /* 已定购该业务 */ 111 /*--需要用户回复的定制信息--*/ 112 /*--需要用户回复的定制信息--*/ 113 /*--需要用户回复的定制信息--*/ 114 /*--用户回复的定制信息不存在--*/ 115 /*--SP回复的定制信息不存在--*/ 116 /* 用户未点播此项业务,鉴权失败 */ 117 /* 等待用户作二次确认*/ 118 /* 等待sp作定制确认*/ 119 /* sp定制确认返回ERROR定制不成功要求复位*/ 121 /* 下行对应多个目的号码*/ 199 /* SPMS 修正了SUBMIT */ 122 /* 非法SERVICE */ 123 /* 非法SERVICE */
我的聊天业务在定制时接入号是8800,在开展业务时接入号是8800123,请问如何处理? 该业务接入号按8800申报。SP管理系统只关心定制时的接入号,定制成功以后手机用户发到哪个子接入号SP管理系统不关心。 回页首如果我的点播业务或者定制业务,下发条数不固定,在SP业务资料中如何填写?填写的格式如何? 按下发最大条数填写。格式任意。点播类例如:2条/次,定制类例如:2条/月、2条/周、2条/天。 回页首SPMS Web调用接口错误代码含义 0 成功 60000 系统错误 60001 请求参数个数不符 60002 解密不正确, 包括密钥使用不正确 60011 SP接入号不正确: 在EncodeStr里加密前的SpNumber必须等于包体中的SpNumber,不能为长号码 60012 订购(点播)时间不正确: 在EncodeStr里加密前的AccessTime必须等于包体中的AccessTime 60013 手机号不正确: 必须为11位联通的手机号码 60014 订购(点播)操作命令字不正确 60015 SP接入号和命令字代码不匹配 60099 其他错误 回页首湖北联通SPMS鉴权中心错误代码含义 错误代码201:业务代码未分配 原因:根据MT话单里的接入号和业务代码找不到对应的申报项。 错误代码202:业务资费类型错误 原因:MT话单里填写的信息费大于SP实际申报的信息费或者对订制/点播失败的通知信息没有将CHARGENUMBER填为21个0。该情况下SP不用对此包重发,SP管理系统会将此包资费修正后发送。 错误代码203:LINKID不匹配 原因:根据用户的命令字解析出的是订制类业务,但SP返回的业务代码却是非订制业务。 错误代码204:用户未订购 原因:SP下发的是一个订制业务,但用户并未订制该业务,或用户为非订制状态。 也有可能用户做的是点播业务,SP下发的却是订制类业务代码; 错误代码205:下发用户数不为1 原因:MT话单里的USERCOUNT不为1,该字段只能填1,不允许群发。 错误代码206:该包格式错误 原因:1、MT话单的用户号码为空或者CHARGENUMBER为空或者SPNUMBER为空或者CORPID为空或者SERVICETYPE为空都会返回此错误。2、MT包里没有LINKID但根据业务代码判断却又不是订制类业务。 错误代码207:下发的MT超过最大条数 原因:对点播类业务使用同一个LINKID下发的MT条数不能超过申报的数,默认为3条。 错误代码208:第三方付费 原因:定制类MT话单里的CHARGENUMBER和USERNUMBER不同且不是SP付费。 错误代码209:SP不能将MOFLAG填为3 原因:按新规定,SP下发的MT包(除包月话单)中MOFLAG字段不能填3。 错误代码210:WEB点播命令字不存在 原因:WEB点播的时候,SP送过来的命令字是未申报的。此种情况下可让将命令字填4个#。 错误代码211:通知信息被拦截 原因:以后SP下发订制/退订的通知信息将只被用来确认订制关系,但不会下发到用户手机上,改由SPMS通知,此消息在定制成功时正常。 错误代码212:包月话单不许下发 原因:每月10日前不许下发包月话单,订制用户自订制起三日内不许发包月话单,用户在20号以后订购,当月不能下包月话单 回页首基本业务流程 ◆ MO订制流程 1、 发订制命令字到分配给Sp接入号。 2、 鉴权中心鉴权通过后SP会收到一条USERNUMBER为测试手机的短信,内容用户发送的订制命令字,此时该条MO短信的RESERVED字段内带有LINKID。 3、 SP如果处理该条订制业务成功则发一条订制成功的通知信息给用户,注意该通知MT必须带上步骤3中返回的LINKID,且ServiceType一定是该用户订制业务对应的ServiceType;如果SP处理该订制业务不成功则发一条订制失败的通知信息给用户,通知失败的MT的SERVIECTYPE必须填‘ERROR‘,CHARGENUMBER填21个0。 4、 测试手机会收到您下发的订制成功或失败通知,流程结束。 ◆ MO退订的流程 流程和MO订制一样,不同的只是命令字不同; ◆ MO点播流程 1、 发点播命令字到分配给Sp接入号。 2、 鉴权中心鉴权通过后SP会收到一条USERNUMBER为测试手机的短信,内容用户发送的点播命令字,此时该条MO短信的RESERVED字段内带有LINKID。 3、 SP如果处理该条订制业务成功则发一条订制成功的通知信息给用户,注意该通知MT必须带上步骤3中返回的LINKID,且ServiceType一定是该用户订制业务对应的ServiceType;如果SP处理该订制业务不成功则发一条订制失败的通知信息给用户,通知失败的MT的SERVIECTYPE必须填‘ERROR‘,CHARGENUMBER填21个0。 4、 测试手机会收到您下发的点播内容或失败通知,流程结束。 5、 ◆ WEB订制 1、 用户在SP网站定制,SP调用网上定购接口,注意填写的命令字所对应的业务一定是您已经申报的; 2、 如果您填写的订制信息没有问题,则测试手机上会收到一个来自SP接入号的确认短信,提示用户输入订购业务的命令字; 3、 其余流程同手机MO订制的流程; ◆ WEB退订流程 1、到网上定购接口(URL地址已经下发给各测试SP)取消一个业务,注意填写的命令字所对应的业务一定是您已经订制成功的; 2、 用户手机收到退定通知信息。 ◆ WEB点播流程 1、 SP按照接口规范调用Web点播接口,发点播命令字(可以是4个#); 2、 用户手机收到SPMS系统的以SP接入号发送的校验码通知短信以后,在SP网站上填入校验码。 3、 SP根据用户的请求下发MT,该MT一定要带上步骤2中所填的校验码作为LINKID,如果点播命令字确实有对应点播业务那么您下发的MT的SERVICETYPE必须是该点播业务的SERVICETYPE,如果点播命令字只对SP本身有特殊意义的则有SP自己根据对命令字解析下发一个MT,该MT必须带上LINKID且只能是点播类的业务,如果SP处理点播请求失败,则下发一个失败通知的MT(必须带LINKID,SERVICETYPE填ERROR,CHARGENUMBER填21个0); 4、 用户手机收到点播下发的MT或者失败通知的MT; ◆ 业务MT下发流程 1、 对用户已经订制了的业务,SP下发业务MT的时候SERVICETYPE,FEETYPE,FEEVALUE一定要和所申报的一致且业务MT一定不能带LINKID; 2、 如果SERVICETYPE不是用户已经订制了的,该MT不能被下发;如果SERVICETYPE是订制了的但填写的信息费超过所申报的,则该MT也会被拦截但鉴权中心会重新下发一个纠正了资费后的MT给用户,同时记录SP本次的违规行为供审核用;如果都填写正确用户将收到该MT包,如果是月租话单,用户会收到一个通知短信; 通知MT不同于业务MT,通知MT是一定要带LINKID的; 回页首湖北联通填写各数据包注意事项 ◆ 对订制业务,发MO订制的时候命令字要和您申报的该业务的订制命令字(即用户发的订制命令)相符合,订制命令字只能为字母或数字,不能为汉字和符号;系统支持UNICODE的订制命令字和长号码的SPNUMBER; ◆ 订制类业务的业务MT和包月计费包下发时不能带LINKID,其他情况下MT要带LINKID; ◆ 订制/退订业务的成功通知MT、订制业务的业务MT、成功的点播对应下发的MT其SERCICETYPE一定要和用户真实订制/点播的业务相符合; ◆ 月租包的判断依据是MOFLAG=3&&REPORTFLAG=3&&FEETYPE=3; ◆ 对订制类业务的MT,除了SP付费的情况允许CHARGENUMBER填21个0以外,其他情况下下必须是USERNUMBER和CHARGENUMBER相同,不允许订制类业务有第三方付费的情况; ◆ MT的MOFLG标志一律不允许填3(包月话单除外); ◆ MT的USERCOUNT字段只能填1; ◆ 点播/订制/退订等的失败通知SERVICETYPE一律填ERROR,CHARGENUMBER填21个0; ◆ 当用户发送‘0000’全部退订某SP的业务时,SP的通知MT的SERVICETYPE填‘0000’; 回页首其他问题 ◆ SP收到的所有MO都是带有LINKID的,最长为8位,可以不足8位。对不足8位的在后面补二进制的0,不能补字符0; ◆ 用户不需要申报业务代码0000和ERROR的业务,系统默认此两种业务代码分别为退定所有业务和错误通知信息下发。 ◆ 目前发现有SP收REPORT报告和MT比较慢的问题,有时在一个发送订制请求一个小时后才收到确认MT或者下发的业务MT间隔一段时间才能收到。这并不是由于鉴权中心引起的(目前测试阶段业务量很小,不存在性能问题),如果您测试的时候发现这种情况请选择在用户使用增值业务比较少的时段测试; ◆ 状态报告错误代码的问题,参考REPORT报告返回的错误代码对了解MT包那里填写不规范有一些帮助,附录有REPORT报告错误代码对应的错误信息供参考; ◆ 业务命令字的命名最好避免一些有歧义性的东西,特别是对一些需要用户回复的业务。比如某SP申报某业务A的订制命令字申请为“OK“,而该SP恰好有一个业务B可能需要用户的回复(比如聊天类或者游戏互动类)。业务B的订制用户在聊天后者游戏过程中可能回复OK表示某种意思,由于该回复恰好又是业务A的订制命令字,这样鉴权系统就会认为该MO是一个订制业务A的请求而不是普通的回复MO,SP也就收不到该回复的MO了,影响业务运行。 ◆ 当用户发送一个未申报的命令字到SP的时候,鉴权中心对其的处理同处理####的情况; 回页首业务举例 比如有以接入号为3099,CORPID 11999的SP申报了一个点播业务和一个订制业务,资料分别如下: 点播业务资料信息: 点播命令字--DBXW,业务代码--TYXW,业务类型—点播类,信息费-20 订制业务资料信息: 订制命令字---DZXH,业务代码—HHXW,业务类型—订制类,退定命令字—TDXH,月租500,信息费 0, 用户(13300000000)订制业务的时候直接在手机输入DZXH发往3099即可; SP会收到一条USERNUMBER为13300000000,短信内容为DZXH,且带上了LINKID(值为50000000)的MO,SP此时应下发一条通知用户盯制成功的短信,业务代码填HHXW,且带上LINKID(值为50000000),下发该MT后用户(1330000000)将收到该条通知短信。 用户订制成功后SP可以下发业务MT给用户了,此时下发的业务MT的SERVICETYPE必须填HHXW,且LINKID为空,信息费填0,下发后用户将收到该MT; 下发该业务的包月话单时,SERVICETYPE必须填HHXW,且LINKID为空,信息费填500,MOFLAG填2,FEETYPE填3,REPROTFLAG填3,下发后用户将收到一条收取月租费的通知短信(该功能联通还未开放); 退订时在手机输入TDXH发送到3099,剩余步骤同订制时步骤; 用户点播业务的时候直接在手机输入DBXW发往3099,3099会收到一条来自13300000000,内容为DBXW,且带有LINKID(比如45678)的MO,3099成功处理该MO后下发一条对应的MT给用户且SERVICETYPE 填TYXW,FEEVALUE填5,带上LINKID(45678)下发给用户,稍后用户将收到该点播所引起的MT。 回页首有关网上订购和点播接口URL以及加密算法 点播:http://点播服务器地址:端口号/WebOrder.aspx 订制:http://订制服务器地址:端口号/WebSubscription.aspx 采用3DES加密, ECB模式/使用PKCS7方式填充不足位, 目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串 以下为一个加密的例子: 密钥的base64编码是: 27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46 DECODE后密钥是: key={-37,-72,-21,91,61,-84,-58,-75,91,71,-22,103,-54,14,-93,88,120,96,54,78,44,102,-114,58}; 源字符串是:3033?$D10-02-24 16:19:27 其数组为: {51,48,51,51,36,49,51,51,49,49,48,56,51,48,54,48,36,68,49,48,36,50,48,48,52,45,48,50,45,50,52,32,49,54,58,49,57,58,50,55} 加密后的数组是: {42,-121,-80,127,7,5,-114,-32,112,-105,53,78,-121,-107,14,83,113,84,-1,-52,30,93,7,125,7,84,104,45,-27,82,-35,64,-87,-11,-91,95,66,-24,-81,125,36,-21,38,-121,-25,-1,-73,125} Base编码后: KoewfwcFjuBwlzVOh5UOU3FU/8weXQd9B1RoLeVS3UCp9aVfQuivfSTrJofn/7d9 回页首企业号(CorpId)与接入号(SpNumber)的关系? 一个SP具有唯一一个企业号,特殊情况下一个SP允许向联通申请多个接入号,即企业号与接入号可为一对多的关系。 回页首MT消息的分类? SP能够下发的MT消息只有点播和订制两类,订制消息包括订制通知包、订制后的业务消息、退订后的通知包、月租计费包四种,除此外SP不能向用户下发其它类型的MT消息。 SP申报业务代码时,业务代码对应的业务类别(RequestType)只有两类:1为点播,2为订制。 回页首长号码的问题? SP申报定制业务时,不能使用长号码,但SP可使用长号码开展业务,如QQ聊天类业务,接入号可为9777+QQ号,长号码的解析由SP自行定义,申报业务时以短号码申报。 在点播类业务中,SP可使用长号码(MO和MT都可以),申报时要说明(word文档格式,按原有的申报流程)。在提供给SPMS的SP业务资料同步接口中,SPNumber以短号方式提交,实际开展业务时,解析由SP自行定义。 回页首MO指令中如何区分业务? SPMS系统以短号码+命令字来区分业务,SP申报业务时,只能使用短号码进行申报,不能使用长号码。如接入号9163加命令字ABC和接入号916301加命令ABC会被解析为同一个业务请求。 回页首命令字如何解析? 命令字最大长度为12位字符,命令字只能由“0-9”、“A-Z”、“a-z”、“-_”此64个字符构成,不能使用其它特殊字符,SPMS解析命令字时,遇到除此64个字符外的其它字符,即认为命令字已结束,如TQDZ 010、TQDZ 020 、TQDZ#020会被解析为同一个业务请求。 在某些SP的业务中,存在如下情况,如对于天气预报业务,订制北京天气预报指令为DZTQ 010,订制广州天气预报指令为DZTQ 020,这种情况下SP应分为多个业务,将指令分开,不能都用DZTQ。 在MO业务请求消息中,建议命令字与其它内容以空格或#号分隔。 回页首SP是否能提供第3方付费业务? 目前不允许开通第3方付费的订制业务,对于付费号码和接收号码不一致的订制类业务,SPMS将不允许下发;点播类第3方付费业务,目前仍然支持。 回页首SPMS系统开通后,正常业务流程如何实现? A. MO方式点播业务:用户发起MO业务点播请求->SPMS生成点播关系及LinkID->SP在下发的Submit包中填写对应Deliver包中的LinkID->SPMS根据LinkID及点播关系进行鉴权。 B. MO方式订制业务:用户发起业务订制请求->SPMS生成临时订制关系,向用户下发订制确认短信->用户重新回复命令字确认订制->SPMS转发Deliver包给SP(带LinkID)->SP下发订制成功/失败通知包给用户(需要带LinkID,失败通知包用业务代码ERROR下发,此业务代码不用申报)->SPMS根据通知包生成正式订制关系,拦截SP的订制成功通知,采用平台统一格式下发订制成功通知,返回错误代码211->SP根据订制规则向用户下发业务消息(不带LinkID)->SPMS根据用户订制关系进行鉴权。 C. MO方式退订业务:用户发起业务退订请求-> SPMS退订用户业务,转发Deliver包给SP(带LinkID)->SP到Deliver包,进行退订处理。 D. 用户在WEB上注册SP社区用户:用户在WEB上注册SP社区用户->SP调用SPMS点播接口,挂起用户请求,等待用户输入确认码->SPMS向用户下发确认码短信->用户收到确认码短信,在WEB上输入确认码->SP向用户下发密码通知消息,将用户输入的确认码填在LinkID字段->SPMS根据确认码及点播关系进行鉴权->用户使用SP下发的密码登录SP社区。 E. WEB方式点播业务:用户登录SP社区->用户在网上点播业务->SP调用SPMS点播接口,挂起用户请求,等待用户输入确认码->SPMS向用户下发确认码短信->用户收到确认码短信,在WEB上输入确认码->SP下发点播消息,将用户输入的确认码填在Sumit包LinkID字段->SPMS根据确认码及点播关系进行鉴权。 F. WEB方式订制业务:用户在WEB上发起业务订制请求->SP调用SPMS提供的定购接口->SPMS生成临时订制关系,向用户下发订制确认短信,提示用户发送命令字到SP接入号->用户发送命令字MO确认订制->SPMS发Deliver包给SP(带LinkID)->SP下发订制成功/失败通知包用户(需要带LinkID,失败通知包用业务代码ERROR下发,此业务代码不用申报)->SPMS根据通知包生成正式订制关系->SP根据订制规则向用户下发业务消息(不带LinkID)->SPMS根据用户订制关系进行鉴权。 G. WEB方式退订业务:用户在WEB上发起业务退订请求->SP调用SPMS提供的业务退订接口-> SPMS退订用户业务,转发Deliver包给SP(带LinkID)-> SP到Deliver包,进行退订处理。 回页首MT消息中SP如何填写LinkID? A. MO点播引起的MT:SP必须在Submit包中填写对应的MO点播请求Deliver消息中的LinkID。 B. WEB点播引起的MT:SP必须在Submit包中填写用户在WEB上输入的由SPMS下发给用户的确认码,该确认码作为MT消息的LinkID。 C. 订制或退订引起的通知MT:SP必须在Submit包中填写对应的订制/退订请求Deliver消息中的LinkID。 D. 订制成功后引起MT业务消息、月租包消息:不需要填写LinkID,Submit包Reserve字段填空。 回页首用户发起命令字为0000的业务退订请求如何处理? 用户发起命令字为0000的业务请求,表示用户退订此SP的所有业务,SPMS会处理用户业务全退订请求,SP也必须处理该指令,将用户的全部业务定购取消。 0000的命令字所对应的业务代码为0000;信息费为0,付费号码填写21个字符0(即SP支付通道费)。 回页首是否支持00000返回菜单形式的业务退订形式? 不支持! 回页首SP付费业务如何处理? SP提供的SP付费业务必须作为一种订制业务提供给用户,SP只能向订制此类业务的用户发送SP付费的消息,计费号码填全0,信息费填0,通信费由SP支付。 回页首SP下发的MT消息中ServiceType、MoMtFlag、FeeType、FeeValue等字段如何填写? 订制或退订成功的通知包中,业务代码字段填写该业务对应的业务代码;订制或退订失败的通知包中,业务代码固定填写ERROR,表示SP端订制或退订失败。 假设正常的业务代码为ABCD,则SP下发的MT消息中各字体填写规则如下:(**表示具体的值) A. 短信点播类:ServiceType=ABCD,MoMtFlag=0/1,FeeType=2,FeeValue=** B. 网上点播类:ServiceType=ABCD,MoMtFlag=0/1,FeeType=2,FeeValue=** C. 订制成功通知包:ServiceType=ABCD,MoMtFlag=0,FeeType=1,FeeValue=0 D. 订制失败通知包:ServiceType=ERROR,MoMtFlag=2,FeeType=1,FeeValue=0,Chargenumber=000000000000000000000 E. 退订成功通知包:ServiceType=ABCD,MoMtFlag=0,FeeType=1,FeeValue=0 F. 退订失败通知包:ServiceType=ERROR,MoMtFlag=2,FeeType=1,FeeValue=0,Chargenumber=000000000000000000000 G. 包月计费类订制业务包:ServiceType=ABCD,MoMtFlag=2,FeeType=1,FeeValue=0 H. 按条计费类订制业务包:ServiceType=ABCD,MoMtFlag=2,FeeType=2,FeeValue=** I. 月租计费包:ServiceType=ABCD,MoMtFlag=2,ReportFlag=3、FeeType=3,FeeValue=** J. SP付费包:ChargeNumber=00000000000000000000,ServiceType=ABCD,FeeType=4,FeeValue=0 K. 0000命令字对应的退订命令包:ServiceType=0000,MoMtFlag=0,FeeType=1,FeeValue=0 回页首是否有WEB形式的定购取消接口 WEB形式的订制取消和订制使用同一个接口,SPMS根据命令字自动判断该请求是订制请求还是退订请求。 回页首在SP业务资料同步接口中,一个业务的订制和退订是否是2行记录? 在SP业务资料同步接口中,一个订制业务只有一行记录,订制命令字和退订命令字是一行数据中的两个字段。 回页首SP基本资料接口中,XML文件的XSD定义是什么? <?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="SPMS"> <xs:complexType> <xs:sequence> <xs:element ref="SpBasicInfo" maxOccurs="100000" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SpBasicInfo"> <xs:complexType> <xs:sequence> <xs:element ref="CorpID" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ShortName" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpChName" minOccurs="1" maxOccurs="1" /> <xs:element ref="SpEnName" minOccurs="1" maxOccurs="1" /> <xs:element ref="CorpType" minOccurs="1" maxOccurs="1" /> <xs:element ref="CreateDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="StockFlag" minOccurs="1" maxOccurs="1" /> <xs:element ref="ArtificialPerson" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChiefOfficer" minOccurs="1" maxOccurs="1" /> <xs:element ref="TotalMember" minOccurs="1" maxOccurs="1" /> <xs:element ref="RegisterFund" minOccurs="1" maxOccurs="1" /> <xs:element ref="Introduction" minOccurs="1" maxOccurs="1" /> <xs:element ref="WebAddress" minOccurs="0" maxOccurs="1" /> <xs:element ref="ServiceDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ProvinceCode" minOccurs="1" maxOccurs="1" /> <xs:element ref="AreaCode" minOccurs="0" maxOccurs="1" /> <xs:element ref="TeleSvcLicense" minOccurs="0" maxOccurs="1" /> <xs:element ref="TeleSvcLicensedBy" minOccurs="0" maxOccurs="1" /> <xs:element ref="License" minOccurs="1" maxOccurs="1" /> <xs:element ref="LicensedBy" minOccurs="1" maxOccurs="1" /> <xs:element ref="DealInScope" minOccurs="1" maxOccurs="1" /> <xs:element ref="BankName" minOccurs="0" maxOccurs="1" /> <xs:element ref="BankAccount" minOccurs="0" maxOccurs="1" /> <xs:element ref="Address" minOccurs="1" maxOccurs="1" /> <xs:element ref="ZipCode" minOccurs="1" maxOccurs="1" /> <xs:element ref="PhoneNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="FaxNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="DisputationNum" minOccurs="1" maxOccurs="1" /> <xs:element ref="EffectiveDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="ExpireDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeUser" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeUserDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeTelNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeMobilePhone" minOccurs="1" maxOccurs="1" /> <xs:element ref="ChargeEmail" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactName" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactUserDesc" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactTelNumber" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactMobilePhone" minOccurs="1" maxOccurs="1" /> <xs:element ref="ContactEmail" minOccurs="1" maxOccurs="1" /> <xs:element ref="RegisterDate" minOccurs="1" maxOccurs="1" /> <xs:element ref="AccesssDate" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="timeType"> <xs:restriction base="xs:string"> <xs:length value="10" /> <xs:pattern value="\d{4}-((0?[1-9])|(1[0-2]))-((0?[1-9])|([1-2][0-9])|(3[0-1]))" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="MDNType"> <xs:restriction base="xs:string"> <xs:length value="11" /> <xs:pattern value="13[0|1|3]\d{8}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="StockFlagType"> <xs:restriction base="xs:string"> <xs:enumeration value="0" /> <xs:enumeration value="1" /> </xs:restriction> </xs:simpleType> <xs:element name="CorpID" type="xs:string"></xs:element> <xs:element name="SpNumber" type="xs:string"></xs:element> <xs:element name="ShortName" type="xs:string"></xs:element> <xs:element name="SpChName" type="xs:string"></xs:element> <xs:element name="SpEnName" type="xs:string"></xs:element> <xs:element name="CorpType" type="xs:string"></xs:element> <xs:element name="CreateDate" type="timeType"></xs:element> <xs:element name="StockFlag" type="StockFlagType"></xs:element> <xs:element name="ArtificialPerson" type="xs:string"></xs:element> <xs:element name="ChiefOfficer" type="xs:string"></xs:element> <xs:element name="TotalMember" type="xs:string"></xs:element> <xs:element name="RegisterFund" type="xs:string"></xs:element> <xs:element name="Introduction" type="xs:string"></xs:element> <xs:element name="WebAddress" type="xs:string"></xs:element> <xs:element name="ServiceDesc" type="xs:string"></xs:element> <xs:element name="ProvinceCode" type="xs:string"></xs:element> <xs:element name="AreaCode" type="xs:string"></xs:element> <xs:element name="TeleSvcLicense" type="xs:string"></xs:element> <xs:element name="TeleSvcLicensedBy" type="xs:string"></xs:element> <xs:element name="License" type="xs:string"></xs:element> <xs:element name="LicensedBy" type="xs:string"></xs:element> <xs:element name="DealInScope" type="xs:string"></xs:element> <xs:element name="BankName" type="xs:string"></xs:element> <xs:element name="BankAccount" type="xs:string"></xs:element> <xs:element name="Address" type="xs:string"></xs:element> <xs:element name="ZipCode" type="xs:string"></xs:element> <xs:element name="PhoneNum" type="xs:string"></xs:element> <xs:element name="FaxNum" type="xs:string"></xs:element> <xs:element name="DisputationNum" type="xs:string"></xs:element> <xs:element name="EffectiveDate" type="timeType"></xs:element> <xs:element name="ExpireDate" type="timeType"></xs:element> <xs:element name="ChargeUser" type="xs:string"></xs:element> <xs:element name="ChargeUserDesc" type="xs:string"></xs:element> <xs:element name="ChargeTelNumber" type="xs:string"></xs:element> <xs:element name="ChargeMobilePhone" type="xs:string"></xs:element> <xs:element name="ChargeEmail" type="xs:string"></xs:element> <xs:element name="ContactName" type="xs:string"></xs:element> <xs:element name="ContactUserDesc" type="xs:string"></xs:element> <xs:element name="ContactTelNumber" type="xs:string"></xs:element> <xs:element name="ContactMobilePhone" type="MDNType"></xs:element> <xs:element name="ContactEmail" type="xs:string"></xs:element> <xs:element name="RegisterDate" type="timeType"></xs:element> <xs:element name="AccesssDate" type="timeType"></xs:element> </xs:schema> 回页首如果SP处理定制的MO包不成功,如何下发通知信息? 平台提供了统一的ERROR的业务代码,该业务代码所对应的信息费资费必须为0,付费号码必须填写21个字符0(SP支付通道费)。 回页首SP能否提供帮助的业务代码? SP必须单独申报,如果申报成功,该业务代码所对应的信息费自费必须为0,付费号码必须填写21个字符0(SP支付通道费)。 回页首密钥的获取方式是什么? 各SP登陆到SP自服务系统上,在菜单上选择获取密钥,SPMS系统就会将密钥以BASE64的方式编码后的ASCII码字符串发送到SP在基本资料同步接口上提供的联系人EMAIL邮箱中去。 回页首铃声图片点播业务中, SP如何下发MT包? 这种情况下,SP需要将MT包拆分;所有的拆分包中,业务代码填写该业务对应的业务代码,LinkID填写用户MO包或在网上填写的确认码;第一个包填写应收的信息费,其他包的信息费必须为0。 回页首目前华为网关返回的错误码与SGIP规范定义的有一些不同,以这份资料为准 0 :无错误,命令正确接收 1 :非法登录,如登录名、口令出错、登录名与口令不符等。 2 :重复登录,如在同一TCP/IP连接中连续两次以上请求登录。 3 :连接过多,指单个节点要求同时建立的连接数过多。 4 :登录类型错,指bind命令中的logintype字段出错。 5 :参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。 6 :非法手机号码,协议中所有手机号码字段出现非86130号码或手机号码前未加"86"时都应报错。 7 :消息ID错 8 :信息长度错 9 :非法序列号,包括序列号重复、序列号格式错误等 10 :SPName与SPID匹配错 11 :节点编号错误 12 :SPNumber未分配或不合法 13 :业务代码未分配 14 :业务资费类型填错 15 :业务信息费率填写错误 16 :用户未定制的SP非法下发 17 :LinkID不匹配(MT与MO) 18 :用户未订购 19 :下发用户数不为1 20 :节点忙,指本节点存储队列满或其他原因,暂时不能提供服务的情况 21 :停机用户鉴权不通过,无法下发 22 :离网用户鉴权不通过,无法下发 24 :计费号码无效,鉴权不成功时反馈的错误信息 25 :不提供此功能 26 :应答接收超时 27 :系统失败 28 :用户已经定购该业务 29 :未到规定收取包月费的时间不能收取包月费 30 :已经达到SP每天允许下发的最大条数 说明:目前华为网关返回的错误码与SGIP规范定义的有一些不同,以这份资料为准。 回页首深圳奥天网关错误代码表 0 全部 成功 1 全部 非法登陆,一般为用户名密码错误 2 全部 重复登陆 3 全部 连接过多,超过限制 4 全部 登陆类型错误 5 全部 参数格式错误 6 SPPROXY 非法手机号码,一般指ChargeNumber和UserNumber的填写不规范 7 消息ID错 8 SPPROXY,SMGPROXY 消息长度错误 9 SPPROXY,SMGPROXY 非法序列号,指序列号重复,第一个序列号即源节点编码错误 23 CENTER 路由不存在 32 全部 系统失败,一般是申请内存失败或者创建线程失败 33 SPPROXY,SMGPROXY 超过流量限制,指发送方在一秒内的流量已经达到限制,拒绝发送 34 SPPROXY,SMGPROXY 登陆太频繁,指同一个SP或者SMG在一分钟内登陆次数已经达到限制,拒绝登陆 51 SAFEPROXY 无法连接016监控中心 52 SAFEPROXY 安全检查超时 61 SAFEPROXY 安全检查不通过 69 SMGPROXY 没有目的网关的信息 70 SMGPROXY 发送到异地网关的缓冲区满 71 SMGPROXY 发送MT到异地网关接收RESPONSE超时 72 SMGPROXY 连接异地网关失败 73 SMGPROXY 连接断开 74 SMGPROXY 发送BIND到异地网关失败 75 SMGPROXY 接收异地网关返回的BIND_RESP失败 76 SMGPROXY 异地网关返回登陆失败 77 SMGPROXY 异地网关返回的BIND_RESP长度错误 78 SMGPROXY 接收异地网关的BIND_RESP超时 79 SMGPROXY 连接关闭 80 SMGPROXY 发送信息到异地网关失败 81 SMGPROXY 接收异地网关的RESPONSE失败 82 SMGPROXY 异地网关返回的RESPONSE的COMMANDID不匹配 83 SMGPROXY 接收异地网关的RESPONSE超时 84 SMGPROXY 发送到异地网关的缓冲区满 93 CENTER 监权失败 100 CENTER 达到系统最大容量 102 CENTER 系统失败,创建线程失败 5001 SPPROXY 连接SP失败 5002 SPPROXY 发送BIND到SP失败 5003 SPPROXY 接收SP的BIND_RESP失败 5004 SPPROXY SP返回BIND_RESP登陆失败 5005 SPPROXY SP返回的BIND_RESP长度错误 5007 SPPROXY SP返回BIND_RESP超时 5011 SPPROXY 发送MO,REPORT到SP失败 5012 SPPROXY 接收MO,REPORT的RESPONSE失败 5014 SPPROXY SP返回的RESPONSE的CommandID不匹配 5015 SPPROXY 与SP连接断开 5017 SPPROXY SP返回RESPONSE超时 5020 SPPROXY 发送到SP的缓冲区满 5021 SPPROXY 与SP的连接关闭 回页首广东SMG常见错误代码 错误码 错误说明 0 无错误,命令正确 1 非法登录(用于RESP应答) 2 重复登录(用于RESP应答) 3 连接过多(用于RESP应答) 4 登录类型错(用于RESP应答) 5 参数格式错(用于RESP应答) 6 非法手机号码(用于RESP应答) 7 消息ID错(用于RESP应答) 8 信息长度错(用于RESP应答) 9 非法序列号(用于RESP应答) 32 系统失败(一般指系统消息队列满) 33 MT超过流量限制(用于RESP应答) 34 频繁登录次数过多(用于RESP应答) 90 SGIP包长度错误(用于RESP应答) 21 目的地址不可达 22 路由错 23 路由不存在 24 计费号码无效 25 用户不能通信 26 手机内存不足 27 手机不支持短消息 28 手机接收短消息出现错误 29 不知道的用户 30 不提供此功能 31 非法设备 93 后付费用户鉴权失败 94 预付费用户扣费失败 错误码 错误说明 201 业务代码未分配 202 业务资费类型错误 202 信息费错误 203 LINKID不匹配 204 用户未订购 205 下发用户数不为1 206 该包格式错误 207 下发的MT超过最大条数 208 第三方付费 209 SP不能将MOFLAG填为3 210 WEB点播命令字不存在 211 订制关系成功建立,但通知由SP管理平台发送,SP的MT被拦截 212 包月话单被拦截 213 SPNUMBER未分或不合法 214 停机用户 215 离网用户 216 计费号码错 217 重复订购 218 重复点播 219 被禁止的SP 219 非法登录 220 重复登录 221 连接过多 222 登录类型错 223 参数格式错 224 非法手机号码 225 消息ID错 226 信息长度错 227 非法序列号 228 SP节点编号错 229 节点忙 230 不提供此功能 231 等待应答超时 232 系统错 233 将发NOTISP包,原流程需要终止 234 将发NOTIUSER包,原流程需要终止 235 鉴权中心处理超时 236 超过最大重试次数 237 白名单SP,直接返回鉴权成功 238 手机短信到SPPORTAL定制且不需要确认,这时返回该错误同时发一个NOTITOSP 239 MO鉴权的时候LINKID异常 240 用户确认的时候回复N,流程终止,MO不上发 241 错误的包类型 242 包长度错误 243 MD5验证码错误 回页首联通北京全网发送话单,state = 2但是error_code = 0是啥意思? 这种情况是各省自己定义的错误代码,但是总体还是出错。扣费没成功。 回页首北京联通全网SPMS鉴权中心错误代码含义 错误代码13:业务代码未分配 原因:根据MT话单里的接入号和业务代码找不到对应的申报项。 错误代码14:业务资费类型错误 原因:MT话单里填写的信息费大于SP实际申报的信息费或者对订制/点播失败的通知信息没有将CHARGENUMBER填为21个0。该情况下将对应字段填入正确值下发 错误代码17:LINKID不匹配 原因:根据用户的命令字解析出的是订制类业务,但SP返回的业务代码却是非订制业务。 错误代码18:用户未订购 原因:SP下发的是一个订制业务,但用户并未订制该业务,或用户为非订制状态。 也有可能用户做的是点播业务,SP下发的却是定制类业务代码; 错误代码19:下发用户数不为1 原因:MT话单里的USERCOUNT不为1,该字段只能填1,不允许群发。 错误代码32:该包格式错误 原因:1、MT话单的用户号码为空或者CHARGENUMBER为空或者SPNUMBER为空或者CORPID为空或者SERVICETYPE为空都会返回此错误。2、MT包里没有LINKID但根据业务代码判断却又不是订制类业务。 错误代码38:下发的MT超过最大条数 原因:对点播类业务使用同一个LINKID下发的MT条数不能超过申报的数,默认为5条。 错误代码39:第三方付费 原因:定制类MT话单里的CHARGENUMBER和USERNUMBER不同且不是SP付费。 错误代码40:SP不能将MOFLAG填为3 原因:按新规定,SP下发的MT包中MOFLAG字段不能填3。 错误代码43:WEB点播命令字不存在 原因:WEB点播的时候,SP送过来的命令字是未申报的。此种情况下可让将命令字填4个#。 错误代码44:通知信息被拦截 原因:以后SP下发订制/退订的通知信息将只被用来确认订制关系,但不会下发到用户手机上,改由SPMS通知,此消息在定制成功时正常。 错误代码95:包月话单不许下发 原因:每月10日前不许下发包月话单,订制用户自订制起三日内不许发包月话单; 回页首北京联通全网填写各数据包注意事项 ◆ 对订制业务,发MO订制的时候命令字要和您申报的该业务的订制命令字(即用户发的订制命令)相符合,订制命令字只能为字母或数字,不能为汉字和符号;系统支持UNICODE的订制命令字和长号码的SPNUMBER; ◆ 订制类业务的业务MT和包月计费包下发时不能带LINKID,其他情况下MT要带LINKID; ◆ 订制/退订业务的成功通知MT、订制业务的业务MT、成功的点播对应下发的MT其SERCICETYPE一定要和用户真实订制/点播的业务相符合; ◆ 月租包的判断依据是MOFLAG=2&&REPORTFLAG=3&&FEETYPE=3; ◆ 对订制类业务的MT,除了SP付费的情况允许CHARGENUMBER填21个0以外,其他情况下下必须是USERNUMBER和CHARGENUMBER相同,不允许订制类业务有第三方付费的情况; ◆ MT的MOFLG标志一律不允许填3; ◆ MT的USERCOUNT字段只能填1; ◆ 点播/订制/退订等的失败通知SERVICETYPE一律填ERROR,CHARGENUMBER填21个0; ◆ 当用户发送‘0000’全部退订某SP的业务时,SP的通知MT的SERVICETYPE填‘0000’; 其他问题 ◆ SP收到的所有MO都是带有LINKID的,最长为8位,可以不足8位。对不足8位的在后面补二进制的0,不能补字符0; ◆ 用户不需要申报业务代码0000和ERROR的业务,系统默认此两种业务代码分别为退定所有业务和错误通知信息下发。 ◆ 目前发现有SP收REPORT报告和MT比较慢的问题,有时在一个发送订制请求一个小时后才收到确认MT或者下发的业务MT间隔一段时间才能收到。这并不是由于鉴权中心引起的(目前测试阶段业务量很小,不存在性能问题),如果您测试的时候发现这种情况请选择在用户使用增值业务比较少的时段测试; ◆ 状态报告错误代码的问题,参考REPORT报告返回的错误代码对了解MT包那里填写不规范有一些帮助,附录有REPORT报告错误代码对应的错误信息供参考; ◆ 业务命令字的命名最好避免一些有歧义性的东西,特别是对一些需要用户回复的业务。比如某SP申报某业务A的订制命令字申请为“OK“,而该SP恰好有一个业务B可能需要用户的回复(比如聊天类或者游戏互动类)。业务B的订制用户在聊天后者游戏过程中可能回复OK表示某种意思,由于该回复恰好又是业务A的订制命令字,这样鉴权系统就会认为该MO是一个订制业务A的请求而不是普通的回复MO,SP也就收不到该回复的MO了,影响业务运行。 ◆ 当用户发送一个未申报的命令字到SP的时候,鉴权中心对其的处理同处理####的情况; 回页首北京联通全网有关网上订购和点播接口URL以及加密算法 点播:http://220.194.49.19:9555/WebOrder.aspx 订制:http://220.194.49.19:9666/WebSubscription.aspx 采用3DES加密, ECB模式/使用PKCS7方式填充不足位, 目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串 以下为一个加密的例子: 密钥的base64编码是: 27jrWz2sxrVbR+pnyg6jWHhgNk4sZo46 DECODE后密钥是: key={-37,-72,-21,91,61,-84,-58,-75,91,71,-22,103,-54,14,-93,88,120,96,54,78,44,102,-114,58}; 源字符串是:3033?$D10-02-24 16:19:27 其数组为: {51,48,51,51,36,49,51,51,49,49,48,56,51,48,54,48,36,68,49,48,36,50,48,48,52,45,48,50,45,50,52,32,49,54,58,49,57,58,50,55} 加密后的数组是: {42,-121,-80,127,7,5,-114,-32,112,-105,53,78,-121,-107,14,83,113,84,-1,-52,30,93,7,125,7,84,104,45,-27,82,-35,64,-87,-11,-91,95,66,-24,-81,125,36,-21,38,-121,-25,-1,-73,125} Base编码后: KoewfwcFjuBwlzVOh5UOU3FU/8weXQd9B1RoLeVS3UCp9aVfQuivfSTrJofn/7d9 回页首北京联通全网SPMS Web调用接口错误代码含义 错误代码 说明 0 成功 60000 系统错误 60001 请求参数个数不符 60002 解密不正确, 包括密钥使用不正确 60011 SP接入号不正确: 在EncodeStr里加密前的SpNumber必须等于包体中的SpNumber 60012 订购(点播)时间不正确: 在EncodeStr里加密前的AccessTime必须等于包体中的AccessTime 60013 手机号不正确: 必须为11位联通的手机号码 60014 订购(点播)操作命令字不正确 60015 SP接入号和命令字代码不匹配 60099 其他错误 回页首山东联通错误码——SGIP协议登录错误码(bind响应) 错误码 含义 1 无权限(登陆帐号或密码错误) 2 非法源地址 3 认证错 4 登陆类型错误 55 超过系统接口数 56 超过帐号设置接口数 57 SP登陆IP错误 59~ 保留 88 (英斯克定义) CP MT 流控错误 93 SGIP协议SP节点编号错 回页首山东联通错误码——网关错误码 错误码 含义 1 消息结构错 2 命令字错误 3 消息序列号重复 4 消息长度错 5 资费代码错 6 超过最大信息长 7 业务代码错 8 流量控制错(user_phone单填写CDMA号码不在白名单中或charge_phone和user_phone填写的CDMA号码不在白名单) 9 本网关不负责此计费号码(如意通和外省号码) 10 Src_ID错(手机因关机或内存满消息超时删除返回的状态报告) 11 CorpID错(如是MT消息出现很多,可能是他的提交submit消息接口与回状态报告的接口冲突,建议SP不要使用手机上行接口来下发SUBMIT消息;还有一种情况是corp_id填写错误) 12 计费地址错(user_phone单填写GSM号码不在白名单中或charge_phone和user_phone填写的GSM号码不在白名单) 13 目的地址错 14~49 扩展 23(英斯克定义) 路由错误。路由不存在,指消息路由的节点在路由表中不存在 24(英斯克定义) 黑名单用户。计费号码无效,鉴权不成功时反馈的错误信息 40(英斯克定义) 网关对如意通用户进行拦截 50(英斯克定义) 短消息内容非法 51 尚未建立连接 52 尚未成功登录 53 发送消息失败 54 超时未接收到响应消息(一般是tp_udhi一项填写不对,应该填写0) 55 等待状态报告超时 56 用户鉴权时用户状态不正常(charge_phone不在白名单) 60 保留 61 有效时间已经过期(charge_phone和user_phone填写的GSM号码不在白名单) 62 定时发送时间已经过期 63 不能识别的FeeType 64 发送服务源地址鉴权失败 65 发送服务目的地址鉴权失败 66 接收服务源地址鉴权失败(手机内存满或关机等待下发已经到达10条后,SP再发就会出现此错误) 67 接收服务目的地址鉴权失败 68 用户鉴权失败 69 此用户为黑名单用户 70 网络断连或目的设备关闭接口 71 超过最大节点数 72 找不到路由 73 等待应答超时 74 送SCP失败 75 送SCP鉴权等待应答超时 76 信息安全鉴权失败 77 超过最大Submit提交数 78 SPID 为空 79 业务类型为空 80 CPCode错误 81 发送接收接口重复 82 循环路由 83 超过接收侧短消息MTU 84 送DSMP重发失败 85 DSMP系统忙重发 86 DSMP系统忙,且缓存满重发 87 DSMP流控重发 88 流控错误,流量超过最大限制 89 90 SGIP消息等待处理 91 SGIP协议状态报告请求标识错误 92 SGIP协议MT标识错 93 SGIP协议SP节点编号错 94 没有配置帐号 回页首山东联通错误码——SPMS常用错误代码 101 /* 定购业务失败 */ 102 /* 退定业务失败 */ 103 /* 非法SP */ 104 /* 非法用户 */ 105 /* 用户未定购此项业务,鉴权失败 */ 106 /* 非法费用,鉴权失败 */ 107 /* 重复包月话单 */ 108 /* 非法指令*/ 109 /* 非法业务代码*/ 110 /* 已定购该业务 */ 111 /*--需要用户回复的定制信息--*/ 112 /*--需要用户回复的定制信息--*/ 113 /*--需要用户回复的定制信息--*/ 114 /*--用户回复的定制信息不存在--*/ 115 /*--SP回复的定制信息不存在--*/ 116 /* 用户未点播此项业务,鉴权失败 */ 117 /* 等待用户作二次确认*/ 118 /* 等待sp作定制确认*/ 119 /* sp定制确认返回ERROR定制不成功要求复位*/ 121 /* 下行对应多个目的号码*/ 199 /* SPMS 修正了SUBMIT */ 122 /* 非法SERVICE */ 123 /* 非法SERVICE */