今天公司提出一个需求, 要在现有项目上收集注册用户的真实手机号, 由于之前没有接触过这一块, 只能寻求度娘的帮助, 经过一天的努力, 终于完成了, 现整理记录下已备查阅.
1 解决方案: 在注册时要求用户进行手机验证.
2 寻找短信供应商: 由于对这一块不是太懂, 大学同学推荐一家他们公司在用的给我.
3 代码实现
首先到互亿无线短信平台注册一个帐号, 并登录到用户中心, 选验证码模块下载接口文档, 文档下载下来是一个压缩包, 我们项目是用 PHP 开发的, 直接找到目录 DEMO/PHP/OOP
提示: 开始之前先看一下官方对接说明文档
第一步 把前端 html 代码整合到注册页面
HTML 代码:
- action="index.php" method="post" name="formUser">
- width="100%" border="0" align="left" cellpadding="5" cellspacing="3">
- align="right">
手机
- id="mobile" name="mobile" type="text" size="25" class="inputBg"
- />
- style="color:#FF0000">
- *
- align="right">
验证码
- type="text" name="gd_code" class="inputBg" size="25" id="gd_code">
- src="code.php" onClick="javascript:this.src=this.src+'?date='+Date();">
- align="right">
手机验证码
- align="left">
- type="text" name="mobile_code" class="inputBg" size="25" />
- id="zphone" type="button" value="获取手机验证码" style="width: 120px"
- onClick="get_mobile_code()">
- align="right">
- type="submit" value="注册" class="button">
JavaScript 代码
- language="javascript">
- function get_mobile_code() {
- $.post('reg.php?send_sms=1', {
- mobile: jQuery.trim($('#mobile').val()),
- send_code: $("#gd_code").val()
- },
- function(msg) {
- alert(jQuery.trim(unescape(msg)));
- if (msg == '提交成功') {
- RemainTime();
- } else {
- // location.reload();
- }
- });
- };
- var iTime = 59;
- var Account;
- function RemainTime() {
- document.getElementById('zphone').disabled = true;
- var iSecond, sSecond = "",
- sTime = "";
- if (iTime>= 0) {
- iSecond = parseInt(iTime % 60);
- iMinute = parseInt(iTime / 60) if (iSecond>= 0) {
- if (iMinute> 0) {
- sSecond = iMinute + "分" + iSecond + "秒";
- } else {
- sSecond = iSecond + "秒";
- }
- }
- sTime = sSecond;
- if (iTime == 0) {
- clearTimeout(Account);
- sTime = '获取手机验证码';
- iTime = 59;
- document.getElementById('zphone').disabled = false;
- } else {
- Account = setTimeout("RemainTime()", 1000);
- iTime = iTime - 1;
- }
- } else {
- sTime = '没有倒计时';
- }
- document.getElementById('zphone').value = sTime;
- }
- </script>
第一步 把后端 PHP 代码整合到程序逻辑中.
注意: 把 sms.class.PHP,code.PHP,config.ihuyi.PHP,font.ttf 这四个文件要上传到项目路径下
- session_start();
- date_default_timezone_set("PRC");
- if(!empty($_GET['send_sms'])){
- include('sms.class.php');
- $sms = new ihuyi_sms;
- $sms -> send_sms($_POST['mobile'],$_POST['send_code']);
- die;
- }
- if($_POST){
- if($_POST['mobile']!=$_SESSION['mobile'] or $_POST['mobile_code']!=$_SESSION['mobile_code'] or empty($_POST['mobile']) or empty($_POST['mobile_code'])){
- exit('手机验证码输入错误.');
- }else{
- $_SESSION['mobile'] = '';
- $_SESSION['mobile_code'] = '';
- // 注册逻辑
- exit('注册成功.');
- }
- }
[源码分享] PHP 怎样接入短信验证码, 对接短信验证码接口
来源: http://www.bubuko.com/infodetail-2813416.html