搜索
系统检测到您的用户名不符合规范:

分享即信云通讯短信/语音平台API

浏览:1294 发布日期:2017年04月08日 分类:用法示例
分享即信云通讯短信/语音平台API
找了好多这种类型的平台,想找到一个支持语音通知的平台(其他平台要么使用语音通知费用高,要么就有充值最小限制),无意间发现了这个平台,平台很不错,支持的功能已经满足我的需求,短信发送的速度很快,并且充值也没有限制。平台支持四种功能:短信验证码,短信通知,语音验证码,语音通知。

而我主要是使用的短信通知和语音通知,但是该平台的API不太完善,官网也没有提供PHP相关的例子可供参考,我要了几好次也一直没有给,没有办法,自己研究吧,不过最后还是被我给研究出来了。

前期准备:
1、先到https://www.139130.com/注册帐号并认证。
2、创建应用 (并设置相关功能和请求白名单IP)
3、到短信和语音模板中创建模板并审核通过
4、在应用管理中上线该应用
5、接口开接。

在对接之前,要先获取到 Account Sid、Auth Token、APP ID、短信模板ID(或语音模板ID),这些信息都可以在它的管理中心获取到。

1、把函数加入到TP的公共函数中(把xxx的地方换成你自己的):

function jiXin($type , $tel , $content){

$rootUrl = "https://api.139130.com:8889/api/v1.0.0";

$accountSid = "xxxxxxxxxxxxx";
$authToken ="xxxxxxxxxxxxxxxx";
$timestamp= date('YmdHis',time());
$sig =sha1($accountSid.$authToken.$timestamp);

$appId ="xxxxxxxxxxxxxxxxxxx";

if($type == 1){
$template_id = "xxx";//短信模板
$url = $rootUrl . "/sms-notice/send?sig=".$sig;
}else{
$template_id = "xxx";//语音模板
$url = $rootUrl ."/voice-notice/send?sig=".$sig;
}

$authorization = base64_encode($accountSid.':'.$timestamp);
$headers = array("Authorization:{$authorization}", "sig:{$sig}" , "Accept:application/json;charset=utf-8","Content-Type:application/json;charset=utf-8");
$data=array('params'=>$content,'templateId'=>$template_id,'appId'=>$appId,'to'=>$tel);
$result = http_request($url, $headers ,json_encode($data));
return json_decode($result,true) ;
}



//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
function http_request($url, $header , $data = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}

curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}



短信和语音的模板在创建的时候有如下格式:
你好,{1},您的地址是:{2}
$params 这个数组就是替换模板中的{1} {2} 的,所以,你模板中用了几个替换符,在数组中传入几个。
$params = array('替换内容','替换内容2');

调用方法:$ret = jiXin( $type , $row['tel'], $params); //type 1为短信,2为语音

关于返回值$ret 是返回的数组,它接口原来返回的是JSON格式,返回的值如下:

返回成功时:
{
"code": "0",
"msg": "success",
"uuid": "ad524a1b-5ffd-4b57-a296-504194922b41",
"created": "20160825153024"
}

返回失败时:
{
"code": "1000",
"msg": "参数错误",
"suggest": "请参考接口协议XXX",
"created": "20160825153024"
}

我已经在返回值中把JSON处理成数组了,那你如果获取返回值时,可以直接用 $ret['code']....


有PHP经验的同学,可自行修改函数部分和调用部分的代码完成自己的需求,也可以到官网上面API中查看其他接口的方法。
收藏
liuyan814
积分:2597 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /