用Java实现第三方验证码,竟然只要100行代码!
现在在网络上哪个网站、软件、游戏等等都需要用手机号来注册账号,可能自己往往只有一个手机号,又想注册多个账号,手机号不够用怎么办?
可以用第三方收短信平台获取一个手机号,注册时填写这个手机号,然后用平台返回的验证码来注册账号。这样,我们就可以不用自己的手机号注册各种账号了,同时也可以多领注册奖励了。

发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较。
一般的第三方短信平台都会有他们自己的短信接口,只要读懂他们的接口稍作稍作改变就能满足自己的需求。
首先将短信平台接口代码列出:这里要下载三个jar包commons-logging-1.1.1.jar,commons-httpclient-3.1.jar,commons-codec-1.4.jar
实现代码如下:

不难看出,我们想要发送的信息是在这行代码里面:NameValuePair[] data ={ new NameValuePair("Uid", "本站用户名"),new NameValuePair("Key", "接口安全秘钥"),new NameValuePair("smsMob","手机号码"),new NameValuePair("smsText","验证码:8888")};
该接口中还有一个result信息,它的作用是告诉用户短信发送的状态,1表示发送成功,其他的小于0的为失败,这里只要知道1是成功即可。
我们实际的操作中,验证码肯定是要我们自己生成的。将result信息与验证码一起得到,于是很容易想到用一个HashMap集合。下面是以项目自己的需求对接口的更改:

***表示的是在第三方平台注册的账号密码。
ACTION层:

这样就能发送成功了。
测试:
利用POSTMAN在本地进行测试:

实现效果如下:


如果有想学习java的同学,可来我们的java技术学习QQ群:928204055,免费送整套系统的java视频教程!我每晚上8点还会在群内直播讲解Java知识,这是一个仅供粉丝朋友们学习交流的群,欢迎大家前来学习哦~不是学习Java的小伙伴非诚勿扰哦下面是部分资料截图:

欢迎关注胖胖爱Java的简书号,可视化学习java,每天更新文章,让Java学习更加简单。
声明:本文内容来源于网络,如有侵权请联系删除