携号转网之后如何通过号段判断手机号码的运营商?

携号转网给用户带来了方便,使得运营商之间进入良性竞争。

但是由此带来了一些小问题,原来我们可以清楚的知道139号码是移动运营商 131是联通 133是电信。

可是现在这一切都不能再准确的判断用户的运营商了。这样对于一些依靠运营商对号码进行区分的业务变得困难,比如短信接口,充值接口,有客户找我想办法解决这一问题,但是如何判断所属真实的运营商呢?

解铃还须系铃人,直接找运营商问是不现实的。我们只能通过公开的渠道来判断。原理很简单  那就是 三大运营商的官网

比如139XXXX8888 目测此号码一定是移动。我们先在移动官网对此号码进行充值,如果号码此号码是移动号码 那么可以继续充值步骤 如果不是移动号码 会有相应的提示,然后再到联通官网做充值测试,最后到电信官网做同样的测试。那么解决问题就非常简单了 每个号码 在三大运营官网 进行充值判断即可。在对此流程做一个自动化处理软件 问题 解决。

凡是总有解决办法。下面附上 软件截图和部分代码。

 

携号转网之后如何通过号段判断手机号码的运营商?_第1张图片

部分实现逻辑:

 switch (qzOrder.myPropDic["原始运营商"])
                {
                    case "中国移动":

                        GetBaseInfo_YD(qzOrder, ChannelArgs);

                        if (qzOrder.myPropDic["中国移动"] == "否")
                        {
                            GetBaseInfo_LT(qzOrder, ChannelArgs);

                            if (qzOrder.myPropDic["中国联通"] == "否")
                            {
                                GetBaseInfo_DX(qzOrder, ChannelArgs);

                                if (qzOrder.myPropDic["中国电信"] == "是")
                                {
                                    qzOrder.myPropDic["新运营商"] = "中国电信";
                                }

                            }
                            else
                            {
                                qzOrder.myPropDic["新运营商"] = "中国联通";
                            }
                        }
                        
                       
                        break;

                    case "中国联通":

                       
                        GetBaseInfo_LT(qzOrder, ChannelArgs);
                        if (qzOrder.myPropDic["中国联通"] == "否")
                        {

                            GetBaseInfo_YD(qzOrder, ChannelArgs);

                            if (qzOrder.myPropDic["中国移动"] == "否")
                            {
                                GetBaseInfo_DX(qzOrder, ChannelArgs);

                                if (qzOrder.myPropDic["中国电信"] == "是")
                                {
                                    qzOrder.myPropDic["新运营商"] = "中国电信";
                                }
                            }
                            else
                            {
                                qzOrder.myPropDic["新运营商"] = "中国移动";

                            }
                        }

                        break;
                    case "中国电信":


                        GetBaseInfo_DX(qzOrder, ChannelArgs);
                        if (qzOrder.myPropDic["中国电信"] == "否")
                        {

                            GetBaseInfo_YD(qzOrder, ChannelArgs);

                            if (qzOrder.myPropDic["中国移动"] == "否")
                            {
                                GetBaseInfo_LT(qzOrder, ChannelArgs);
                                if (qzOrder.myPropDic["中国联通"] == "是")
                                {
                                    qzOrder.myPropDic["新运营商"] = "中国联通";
                                }

                            }
                            else
                            {
                                qzOrder.myPropDic["新运营商"] = "中国移动";

                            }
                        }

                        break;

                    default:

                        qzOrder.myPropDic["原始运营商"] = "未知";

                        break;
                         
                }

 

 

你可能感兴趣的:(携号转网之后如何通过号段判断手机号码的运营商?)