最好用的发短信(验证码、语音短信)接口

使用阿里大鱼短信接口

注册

  1. 进入大鱼页面,如果没有账号,则自行注册,再此不在过多详述。
  2. 注册完成或者有账号的则在首页中点击加入“加入阿里大鱼”,如下:
    这里写图片描述

创建引用

  1. 点击“管理中心”,然后再点击右上角的进入“开发者控制台”。
    这里写图片描述

  2. 点击右上角的“创建应用”。
    这里写图片描述

  3. 点击其他,选择“阿里大鱼”应用标签,创建应用。
    这里写图片描述

  4. 输入应用名称,创建应用即可获得App Key。
    这里写图片描述

  5. 创建应用后自动跳转至应用管理页,通过概览可以查看当前应用的APP证书,查看App Key,App Secret。
    这里写图片描述

申请订阅接口

  1. 进入需要订阅消息的应用。

2.进入“消息服务—订阅消息”,找到alibaba_aliqin_FcSmsDR订阅短信发送结果报告,找到alibaba_aliqin_FcCallCdr订阅语音呼叫结果报告。
这里写图片描述

应用开发

  1. 根据开发语言选择板本生成对应SDK,(控制台-SDK下载,请获取权限后再生成SDK)(大概需3分钟),支持JAVA、PHP、Python、 .NET、 Metadata、 nodejs,这里下载的是PHP的SDK。
    这里写图片描述

  2. 下载sdk,是压缩文件,解压即可,将得到以下文件:
    这里写图片描述

  3. 将代码导入到您的开发工程中

  4. 在top/request中以下标记为我们发送短信中需要使用到的接口文件。
    这里写图片描述

  5. 在API文档中查看调用示例与传参规则。
    这里写图片描述

测试

发送普通短信

appkey = '11111';

//当前短信应用中的App Secret
$c->secretKey = 'aaaaaaaaaaaaaaaaaaaa';
$req = new AlibabaAliqinFcSmsNumSendRequest;

//短信类型,传入值请填写norma,这个参数的配置一定不能写错,也就是不能放在下面配置之后
$req->setSmsType("normal");

//短信签名,传入的短信签名必须是在阿里大鱼“管理中心-短信签名管理”中的可用签名。如“活动验证”已在短信签名管理中通过审核,则可传入”活动验证“(传参时去掉引号)作为短信签名。短信效果示例:【活动验证】验证码123,您正在进行登录身份验证,打死不要告诉别人哦!。
$req->setSmsFreeSignName("活动验证");

//短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,多个变量之间以逗号隔开。示例:针对模板“验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!”,传参时需传入{"code":"1234","product":"免费短信来了"}
$req->setSmsParam("{\"code\":\"1234\",\"product\":\"免费短信来了\"}");

//短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或+86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。示例:18600000000,13911111111,13322222222
$req->setRecNum("13800000000");

//短信模板ID,传入的模板必须是在阿里大鱼“管理中心-短信模板管理”中的可用模板。示例:SMS_585014
$req->setSmsTemplateCode("SMS_585014");

$resp = $c->execute($req);
$resp = obj2Arr($resp);
var_dump($resp);
if ($resp['result']['success']) {
        echo "发送成功!";
} else {
        echo $resp['msg'];
}
//将返回的对象装换成数组
function obj2Arr ($obj) {
    $_arr = is_object($obj) ? get_object_vars($obj) : $obj; 
    foreach ($_arr AS $k => $v) {
            $val = (is_object($v) ? obj2Arr($v) : $v);
            $arr[$k] = $val;
    }
    return $arr;
}

测试成功,发送普通短信就到此结束

文本转语音通知

appkey = '1111';
$c->secretKey = 'aaaaaaaaaaaaaaaaaaaaaaaaa';
$req = new AlibabaAliqinFcTtsNumSinglecallRequest;

//文本转语音(TTS)模板变量,传参规则{"key":"value"},key的名字须和TTS模板中的变量名一致,多个变量之间以逗号隔开,示例:{"name":"xiaoming","code":"1234"}
$req->setTtsParam("{\"AckNum\":\"123456\"}");

//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13700000000");

//被叫号显,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请或购买的号码
$req->setCalledShowNum("4001112222");

//TTS模板ID,传入的模板必须是在阿里大鱼“管理中心-语音TTS模板管理”中的可用模板
$req->setTtsCode("TTS_10001");
$resp = $c->execute($req);

语音通知

appkey = $appkey;
$c->secretKey = $secret;
$req = new AlibabaAliqinFcVoiceNumSinglecallRequest;

//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13700000000");

//被叫号显,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请通过的号码
$req->setCalledShowNum("4001112222");

//语音文件ID,传入的语音文件必须是在阿里大鱼“管理中心-语音文件管理”中的可用语音文件
$req->setVoiceCode("c2e99ebc-2d4c-4e78-8d2a-afbb06cf6216.wav");
$resp = $c->execute($req);

多方通话

appkey = $appkey;
$c->secretKey = $secret;
$req = new AlibabaAliqinFcVoiceNumDoublecallRequest;

//通话超时时长,如接通后到达120秒时,通话会因为超时自动挂断。若无需设置超时时长,可不传。
$req->setSessionTimeOut("120");

//主叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCallerNum("13700000000");

//主叫号码侧的号码显示,传入的显示号码必须是阿里大鱼“管理中心-号码管理”中申请通过的号码。显示号码格式如下057188773344,4001112222,95500
$req->setCallerShowNum("057188773344");

//被叫号码,支持国内手机号与固话号码,格式如下057188773344,13911112222,4001112222,95500
$req->setCalledNum("13800000000");

//被叫号码侧的号码显示,传入的显示号码可以是阿里大鱼“管理中心-号码管理”中申请通过的号码。显示号码格式如下057188773344,4001112222,95500。显示号码也可以为主叫号码。
$req->setCalledShowNum("057188773344");
$resp = $c->execute($req);

短信接口就到处结束

你可能感兴趣的:(php)