通过手机号查询运营商以及号码归属地
在很多行业很多项目,比如电商,比如金融,比如O2O等,在用户注册这一块会经常用到手机号。如何判断一个手机号是否存在?在特殊产品需求条件下,我们需要区分用户的运营商(移动、联通、电信),甚至区分用户省份,乃至城市,来方便产品,运营同学对用户进行地区化,个性化服务。为了解决这样的业务、产品需求,就动手写了这个模块。
安装:npm install phone-service
API
插件编写
工具函数
API使用例子
可选参数option说明
/***option = > { parallel:2,//插件通道并发请求数,默认是2,当为0时使用最大(所有可用插件)并发数同时发起查询请求。 timeout:null,//响应超时时间 model:0,//获取手机号码信息模式,目前支持3种:0->只获取手机号运营商,1->获取手机号运营商以及省份,2->获取手机号运营商、省份以及城市(地级市) plugins:[]//指定使用哪些插件通道(当某些通道出问题时,用户可以指定只用这些通道)}*/
查询手机号运营商
var phoneService = ;var option = {};phoneService; // promisephoneService
查询手机号运营商以及省份
var phoneService = ;var option = model:1;phoneService;
查询手机号运营商、省份以及城市(地级市)
var phoneService = ;var option = model:2;phoneService;
var phoneService = ;phoneService === true
var phoneService = ;phoneService === true
var phoneService = ;phoneService === false;
var phoneService = ;phoneService === false;
插件编写(高级功能)
插件扩展开发
如果模块自带的插件不满足或者被插件对应的平台屏蔽了,使用者可以自己开发插件来完成工作。
//插件开发 demovar phoneService = ;var util = phoneServiceutil;var plugin = phoneServiceplugin;//插件对象var pluginMock = name:'navy'//插件名字 { //数据解析,返回json.当所编写的插件: //1.只返回手机号服务商(即插件的model定义为0)时,返回的对象中必须包含key:util.getSupplierKey() //2.返回手机号服务商和归属省份(即插件的model定义为1)时,返回的对象中必须包含key:util.getSupplierKey(),util.getProvinceKey() //3.返回手机号服务商和归属省份以及归属城市(即插件的model定义为2)时,返回的对象中必须包含key:util.getSupplierKey(),util.getProvinceKey(),util.getCityKey() var result = {}; resultutil = '移动'; resultutil = '广东'; resultutil = '广州'; ; } model:2//model可取值:0,1,2,说明请看上面parse函数 { return 'http://xxxx.com?phone='+phone;//返回请求的url } option: //node request module request method param. headers:"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36" encoding:null ;plugin;//注册插件
plugin//使用刚才注册的插件phoneService
当模块自带的插件或者使用者自己开发的插件出问题时(比如被插件对应的平台屏蔽),这时候在调用api前可以卸载有问题的模块
plugin;//卸载自己写的插件plugin;//卸载模块自带的插件//调用query方式时将不再使用360插件了phoneService
工具对象
var phoneService = ;phoneServiceutil;//获取服务商返回的keyphoneServiceutil;//获取省份返回的keyphoneServiceutil;//获取城市(地级市)返回的key
test
//testnpm test//code coverage//npm run cov
code coverage
=============================== Coverage summary ===============================Statements : 87.41% ( 354/405 )Branches : 80.83% ( 156/193 )Functions : 95.95% ( 71/74 )Lines : 87.41% ( 354/405 )================================================================================
发布logs
- 4.0.0 query api 支持promise方式调用
- 3.0.1 添加parallel参数为0时开启最大(当前支持插件)并发数同时发起查询请求
- 3.0.0 修复重大的bug,plugin下try catch 没有return。建议立马升级至3.0.0。