需要开发短信验证码功能,有什么好的短信接口API推荐吗?

新用户注册场景解决方案

在用户注册验证手机号环节,用户可能会遇到以下主要问题:


产生原因

因用户退订、投诉、运营商通道故障、通道拥堵、用户手机问题等因素,导致一部分客户无法收到验证码短信,从而影响贵公司的推广转化。


不利后果

新注册用户收不到验证码短信,会产生如下影响:

因用户收不到注册验证短信导致客户流失;

部分收不到短信的用户,会向公司客服反馈,增加售后工作压力;

对公司品牌的认可度降低。

解决方案

为了最大限度的提升验证码短信的到达率,无线验证码短信接口还提供如下增值服务:

失败自动补发:实时侦测短信送达状态,如遇失败,系统实时自动使用另一条短信通道进行补发;

异常自动补发:针对某些特殊情况,如遇客户未在10秒内(时间可设置)收到注册验证短信,系统会自动调用另外一条短信通道重发一条;

语音自动补呼:可设置用户在第三次点击获取验证码短信按钮时,系统以电话语音的方式给客户播报验证码数字。


短信接口开发流程

已封装的成熟的短信接口,让您最快可以在15分钟内完成接入

* 接口类型:触发短信接口,支持发送验证码短信、订单通知短信,节日祝福等。

* 账户注册:请通过该地址开通账户 http://user.ihuyi.com/?exClaO

* 注意事项:

*(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。

*(2)请使用 用户名 及 APIkey来调用接口,APIkey在会员中心可以获取;

*(3)该代码仅供接入短信接口参考使用,客户可根据实际需要自行编写;

/开启SESSION

session_start();

header("Content-type:text/html; charset=UTF-8");

//请求数据到短信接口,检查环境是否 开启 curl init。

function Post($curlPost,$url){

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_HEADER, false);

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($curl, CURLOPT_NOBODY, true);

        curl_setopt($curl, CURLOPT_POST, true);

        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);

        $return_str = curl_exec($curl);

        curl_close($curl);

        return $return_str;

}

//将 xml数据转换为数组格式。

function xml_to_array($xml){

    $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";

    if(preg_match_all($reg, $xml, $matches)){

        $count = count($matches[0]);

        for($i = 0; $i < $count; $i++){

        $subxml= $matches[2][$i];

        $key = $matches[1][$i];

            if(preg_match( $reg, $subxml )){

                $arr[$key] = xml_to_array( $subxml );

            }else{

                $arr[$key] = $subxml;

            }

        }

    }

    return $arr;

}

//random() 函数返回随机整数。

function random($length = 6 , $numeric = 0) {

    PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);

    if($numeric) {

        $hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));

    } else {

        $hash = '';

        $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';

        $max = strlen($chars) - 1;

        for($i = 0; $i < $length; $i++) {

            $hash .= $chars[mt_rand(0, $max)];

        }

    }

    return $hash;

}

//短信接口地址

$target = "http://106.ihuyi.com/webservice/sms.php?method=Submit";

//获取手机号

$mobile = $_POST['mobile'];

//获取验证码

$send_code = $_POST['send_code'];

//生成的随机数

$mobile_code = random(4,1);

if(empty($mobile)){

    exit('手机号码不能为空');

}

//防用户恶意请求

if(empty($_SESSION['send_code']) or $send_code!=$_SESSION['send_code']){

    exit('请求超时,请刷新页面后重试');

}

$post_data = "account=用户名&password=密码&mobile=".$mobile."&content=".rawurlencode("您的验证码是:".$mobile_code."。请不要把验证码泄露给其他人。");

//查看用户名 登录用户中心->验证码通知短信>产品总览->API接口信息->APIID

//查看密码 登录用户中心->验证码通知短信>产品总览->API接口信息->APIKEY

$gets =  xml_to_array(Post($post_data, $target));

if($gets['SubmitResult']['code']==2){

    $_SESSION['mobile'] = $mobile;

    $_SESSION['mobile_code'] = $mobile_code;

}

echo $gets['SubmitResult']['msg'];

你可能感兴趣的:(需要开发短信验证码功能,有什么好的短信接口API推荐吗?)