php接口,免认证的短信接口,每天单个号码140条以上

下面介绍一下kewail平台的短信php接口。官网链接:www.kewail.com

// Works well with php5.3 and php5.6.

namespace Kewail\Sms;

require_once(‘SmsSenderUtil.php‘);

class SmsSingleSender {
var $url;
var $accesskey;
var $secretkey;
var $util;

function __construct($accesskey, $secretkey) {
    $this->url = "https://live.kewail.com/sms/v1/sendsinglesms";
    $this->accesskey =  $accesskey;
    $this->secretkey = $secretkey;
    $this->util = new SmsSenderUtil();
}

/**
 * 普通单发,明确指定内容,如果有多个签名,请在内容中以【】的方式添加到信息内容中,否则系统将使用默认签名
 * @param int $type 短信类型,0 为普通短信,1 营销短信
 * @param string $nationCode 国家码,如 86 为中国
 * @param string $phoneNumber 不带国家码的手机号
 * @param string $msg 信息内容,必须与申请的模板格式一致,否则将返回错误
 * @param string $extend 扩展码,可填空串
 * @param string $ext 服务端原样返回的参数,可填空串
 * @return string json string { "result": xxxxx, "errmsg": "xxxxxx" ... },被省略的内容参见协议文档
 */
function send($type, $nationCode, $phoneNumber, $msg, $extend = "", $ext = "") {

/
请求包体
{
"tel": {
"nationcode": "86",
"mobile": "13788888888"
},
"type": 0,
"msg": "你的验证码是1234",
"sig": "fdba654e05bc0d15796713a1a1a2318c",
"time": 1479888540,
"extend": "",
"ext": ""
}
应答包体
{
"result": 0,
"errmsg": "OK",
"ext": "",
"sid": "xxxxxxx",
"fee": 1
}
/
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?accesskey=" . $this->accesskey . "&random=" . $random;

    // 按照协议组织 post 包体
    $data = new \stdClass();
    $tel = new \stdClass();
    $tel->nationcode = "".$nationCode;
    $tel->mobile = "".$phoneNumber;

    $data->tel = $tel;
    $data->type = (int)$type;
    $data->msg = $msg;
    $data->sig = hash("sha256",
        "secretkey=".$this->secretkey."&random=".$random."&time=".$curTime."&mobile=".$phoneNumber, FALSE);
    $data->time = $curTime;
    $data->extend = $extend;
    $data->ext = $ext;
    return $this->util->sendCurlPost($wholeUrl, $data);
}

/**
 * 指定模板单发
 * @param string $nationCode 国家码,如 86 为中国
 * @param string $phoneNumber 不带国家码的手机号
 * @param int $templId 模板 id
 * @param array $params 模板参数列表,如模板 {1}...{2}...{3},那么需要带三个参数
 * @param string $sign 签名,如果填空串,系统会使用默认签名
 * @param string $extend 扩展码,可填空串
 * @param string $ext 服务端原样返回的参数,可填空串
 * @return string json string { "result": xxxxx, "errmsg": "xxxxxx"  ... },被省略的内容参见协议文档
 */
function sendWithParam($nationCode, $phoneNumber, $templId = 0, $params, $sign = "", $extend = "", $ext = "") {

/
请求包体
{
"tel": {
"nationcode": "86",
"mobile": "13788888888"
},
"sign": "Kewail",
"tpl_id": 19,
"params": [
"验证码",
"1234",
"4"
],
"sig": "fdba654e05bc0d15796713a1a1a2318c",
"time": 1479888540,
"extend": "",
"ext": ""
}
应答包体
{
"result": 0,
"errmsg": "OK",
"ext": "",
"sid": "xxxxxxx",
"fee": 1
}
/
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?sdkaccesskey=" . $this->accesskey . "&random=" . $random;

    // 按照协议组织 post 包体
    $data = new \stdClass();
    $tel = new \stdClass();
    $tel->nationcode = "".$nationCode;
    $tel->mobile = "".$phoneNumber;

    $data->tel = $tel;
    $data->sig = $this->util->calculateSigForTempl($this->secretkey, $random, $curTime, $phoneNumber);
    $data->tpl_id = $templId;
    $data->params = $params;
    $data->sign = $sign;
    $data->time = $curTime;
    $data->extend = $extend;
    $data->ext = $ext;
    return $this->util->sendCurlPost($wholeUrl, $data);
}

}

class SmsMultiSender {
var $url;
var $accesskey;
var $secretkey;
var $util;

function __construct($accesskey, $secretkey) {
    $this->url = "https://live.kewail.com/sms/v1/sendsinglesms";
    $this->accesskey =  $accesskey;
    $this->secretkey = $secretkey;
    $this->util = new SmsSenderUtil();
}

/**
 * 普通群发,明确指定内容,如果有多个签名,请在内容中以【】的方式添加到信息内容中,否则系统将使用默认签名
 * 【注意】海外短信无群发功能
 * @param int $type 短信类型,0 为普通短信,1 营销短信
 * @param string $nationCode 国家码,如 86 为中国
 * @param string $phoneNumbers 不带国家码的手机号列表
 * @param string $msg 信息内容,必须与申请的模板格式一致,否则将返回错误
 * @param string $extend 扩展码,可填空串
 * @param string $ext 服务端原样返回的参数,可填空串
 * @return string json string { "result": xxxxx, "errmsg": "xxxxxx" ... },被省略的内容参见协议文档
 */
function send($type, $nationCode, $phoneNumbers, $msg, $extend = "", $ext = "") {

/
请求包体
{
"tel": [
{
"nationcode": "86",
"mobile": "13788888888"
},
{
"nationcode": "86",
"mobile": "13788888889"
}
],
"type": 0,
"msg": "你的验证码是1234",
"sig": "fdba654e05bc0d15796713a1a1a2318c",
"time": 1479888540,
"extend": "",
"ext": ""
}
应答包体
{
"result": 0,
"errmsg": "OK",
"ext": "",
"detail": [
{
"result": 0,
"errmsg": "OK",
"mobile": "13788888888",
"nationcode": "86",
"sid": "xxxxxxx",
"fee": 1
},
{
"result": 0,
"errmsg": "OK",
"mobile": "13788888889",
"nationcode": "86",
"sid": "xxxxxxx",
"fee": 1
}
]
}
/
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?accesskey=" . $this->accesskey . "&random=" . $random;
$data = new \stdClass();
$data->tel = $this->util->phoneNumbersToArray($nationCode, $phoneNumbers);
$data->type = $type;
$data->msg = $msg;
$data->sig = $this->util->calculateSig($this->secretkey, $random, $curTime, $phoneNumbers);
$data->time = $curTime;
$data->extend = $extend;
$data->ext = $ext;
return $this->util->sendCurlPost($wholeUrl, $data);
}

/**
 * 指定模板群发
 * 【注意】海外短信无群发功能
 * @param string $nationCode 国家码,如 86 为中国
 * @param array $phoneNumbers 不带国家码的手机号列表
 * @param int $templId 模板 id
 * @param array $params 模板参数列表,如模板 {1}...{2}...{3},那么需要带三个参数
 * @param string $sign 签名,如果填空串,系统会使用默认签名
 * @param string $extend 扩展码,可填空串
 * @param string $ext 服务端原样返回的参数,可填空串
 * @return string json string { "result": xxxxx, "errmsg": "xxxxxx" ... },被省略的内容参见协议文档
 */
function sendWithParam($nationCode, $phoneNumbers, $templId, $params, $sign = "", $extend ="", $ext = "") {

/
请求包体
{
"tel": [
{
"nationcode": "86",
"mobile": "13788888888"
},
{
"nationcode": "86",
"mobile": "13788888889"
}
],
"sign": "Kewail",
"tpl_id": 19,
"params": [
"验证码",
"1234",
"4"
],
"sig": "fdba654e05bc0d15796713a1a1a2318c",
"time": 1479888540,
"extend": "",
"ext": ""
}
应答包体
{
"result": 0,
"errmsg": "OK",
"ext": "",
"detail": [
{
"result": 0,
"errmsg": "OK",
"mobile": "13788888888",
"nationcode": "86",
"sid": "xxxxxxx",
"fee": 1
},
{
"result": 0,
"errmsg": "OK",
"mobile": "13788888889",
"nationcode": "86",
"sid": "xxxxxxx",
"fee": 1
}
]
}
/
$random = $this->util->getRandom();
$curTime = time();
$wholeUrl = $this->url . "?accesskey=" . $this->accesskey . "&random=" . $random;
$data = new \stdClass();
$data->tel = $this->util->phoneNumbersToArray($nationCode, $phoneNumbers);
$data->sign = $sign;
$data->tpl_id = $templId;
$data->params = $params;
$data->sig = $this->util->calculateSigForTemplAndPhoneNumbers(
$this->secretkey, $random, $curTime, $phoneNumbers);
$data->time = $curTime;
$data->extend = $extend;
$data->ext = $ext;
return $this->util->sendCurlPost($wholeUrl, $data);
}
}

更多,欢迎关注云服务-Kewail科技
官网:https://www.kewail.com/
免认证专用注册: https://www.kewail.com/register.html?uid=1542971565991

原文地址:https://blog.51cto.com/14326858/2393962

时间: 2024-11-08 22:44:12

php接口,免认证的短信接口,每天单个号码140条以上的相关文章

摩杜云通用免认证的短信接口,每天单个号码100条以上

下面介绍一下摩杜云平台的短信php接口.demo下载:https://www.mordula.com/experience.html#anchor-1 // Works well with php5.3 and php5.6.namespace Moduyun\Sms;require_once('SmsSenderUtil.php');class SmsSingleSender {var $url;var $accesskey;var $secretkey;var $util;function

Web服务之简单短信接口开发

--order by yang 最近没事看了一下关于WCF的技术,也学了一点点,菜鸟级别.无奈无处用WCF,无意间看到短信验证码,就想使用WCF创建一个短信接口!说起短信接口,搞开发的都一定不会陌生,但一般中大型的互联网网站使用的短信接口我想都是移动或者联通电信已经做好的短信接口,无奈环境制约,想要调用他们的接口肯定有一套很复杂的申请流程,而且也不是所有人都能申请到的.作为个人学习更是不可能.无奈只能另辟办法,想到自己有一部安卓手机,于是打起它的主意.接下来就理所应当的想到了adb工具.那么AD

php短信接口,免认证限制少的接口,手机短信,短信验证码

下面介绍一下kewail的短信接口,链接:https://www.kewail.com/ // Works well with php5.3 and php5.6. namespace Kewail\Sms; require_once('SmsSenderUtil.php'); class SmsSingleSender {var $url;var $accesskey;var $secretkey;var $util; function __construct($accesskey, $sec

如何防范短信接口被恶意调用(被刷)(转)

本文转自:https://zhuanlan.zhihu.com/p/20879468 一.什么是短信轰炸(短信接口被刷) 短信轰炸一般基于 WEB 方式(基于客户端方式的原理与之类似),由两个模块组成,包括:一个前端 Web 网页,提供输入被攻击者手机号码的表单:一个后台攻击页面(如 PHP),利用从各个网站上找到的动态短信 URL 和 前端输入的被攻击者手机号码,发送 HTTP 请求,每次请求给用户发送一个动态短信. - 被攻击者大量接收非自身请求的短信,造成无法正常使用移动运营商业务.- 短

聚合API-短信接口,THINKPHP整合聚合api短信接口

觉得发个短信验证码挺简单的,但是之前没写过,就想写一个看看,阿里大于的太贵了,只能用其他平台的数据接口, 第一步:聚合官网登录.注册,网址如下:https://www.juhe.cn/login(登录),https://www.juhe.cn/register(注册) 第二步:申请数据-短信api服务,网址如下:https://www.juhe.cn/docs/api/id/54,申请数据, 申请的时候送10条数据,如果想以后也想用,可以选择现在特价的9元300条数据. 第三步:进入个人中心,我

THINKPHP3.2.3增加阿里云短信接口思路整理

https://help.aliyun.com/document_detail/55359.html?spm=5176.product44282.4.7.O4lc1n 阿里云短信服务地址,感冒的下载看看 1 文件存放位置的问题 阿里云的短信接口 属于第三方扩展 所以文件放在 thinkphp\vendor\ 比如起名message 把SDK的文件都存到里面 2 把实现功能的代码 写好 放在message目录 不过注意文件的路径 代码里面的文件头 引用的文件地址用类似的 require_once

关于手机短信接口优化

项目:目前需要支持手机号码注册,流程如下: 1)用户输入手机号码 2)点击获取手机校验码 3)收到短信息后,填入验证码.完成注册 有个问题,在项目中前期设计问题,导致短信接口被恶意调用. 调整方案: 网络提供方案: 推荐的对接方式:1.流程限定--将手机短信验证和用户名密码设置分成两个步骤,用户在注册成功用户名密码后,下一步才进行手机短信验证.(推荐)2.绑定图型校验码--将图形校验码和手机验证码进行绑定,这样能比较有效的防止软件恶意点击.(推荐) 不推荐的对接方式:3.短信发送间隔设置--设置

阿里大鱼短信接口

阿里大于短信验证实现完整代码分享 http://bbs.2ccc.com/topic.asp?topicid=515649 补充:跨平台的例子可以去csdn下载这位大神的demo http://download.csdn.net/detail/hansxia888/9603061 1 这两天搞那个sign,搞的烦躁,问了一下论坛的那位同学,开口500. 2 唉,delphi这种偏门的就是这样,啥都贵. 3 后来想想用C#按阿里那边的帮助文档写了个,可以正常发送.然后把C#翻译成Delphi就可以

短信接口调用——阿里大于API开发心得

互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短信费用是计数缴纳的,作为个人开发者,我使用的服务产生的费用为0.45¥/条(10万条以下). 现在要实现一个例会短信群发通知的功能,所有被通知对象信息均存于Mysql中,应用架构采用asp.net MVC .首先准备好获取的API各项(以下各项服务参数都需要在大于官网上申请), 申请好自己的短信签名