❶ 我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢
移动的接口是什么风格的?是soap的还是自定义的?
调用自定义接口通常有以下步骤:
1、阅读接口文档
2、数据接口一般会提供一些参数。如果是GET接口,请将参数拼接在地址的后面(推荐使用
http_build_query)。如果是POST接口,看我的示例代码。
3、请求数据
4、解析返回的内容,判断调用是否成功。一般返回的内容有xml和json格式。
给你一个CURL调用POST接口的例子:
<?php
$ch=curl_init('省略接口地址,防止屏蔽');
//以下选项设为true,否则接口返回的内容会直接打印在页面上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//连接超时,一定要设置
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
//连接成功后,请求超时,一定要设置
curl_setopt($ch,CURLOPT_TIMEOUT,5);
//使用POST请求
curl_setopt($ch,CURLOPT_POST,1);
//将参数POST过去,$post_data是你的参数组成的关联数组
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
//提交请求,得到反馈
$response=curl_exec($ch);
//解析反馈的内容,略
如果是SOAP风格的,请查阅PHP文档SoapClient类的用法。因为Soap规范不统一,使用其他语言实现的Soap可能和PHP不兼容。
以前我使用过移动梦网的接口(不是移动的接口),它提供两种风格的API。它的Soap就和PHP不兼容。所以我选择了自定义风格的API。
❷ php如何利用云片网实现短信验证码功能
充了2000条短信,莫名其妙被扣完,一查才发现,几天之内他们系统给一个空号频繁发短信,而且都是接收没成功,但是云片网直接扣费了,而且如果我们的接口没有配置好,短信余额不足了,他提醒我们,也会扣我们的费用。反正只要用了云片网,不管发没发成功,都要收费,咨询客服,他们说只要接口给了他们指令,他们就会收费,他们不管手机是不是空号,是不是发成功。2000条就这样被坑了。以下是截图
❸ php如何调用api接口,主要是php调用联通,移动api进行短信的发送
他会提供相应接口给你的,具体调用方法就相当于讲求某个链接。
如:
http://localhost/operate.php?act=get_user_list&type=json
在这里operate.php相当于一个接口,其中get_user_list 是一个API(获取用户列表),讲求返回的数据类型为JSON格式。
你只需要在你PHP代码中执行这条链接他就会返回。
GET方式的直接使用
$file_contents = file_get_content('http://localhost/operate.php?act=get_user_list&type=json')
POST方式得用下面的(需要开启PHP curl支持)。
$url = 'http://localhost/operate.php?act=get_user_list&type=json';
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交
$file_contents = curl_exec ( $ch );
curl_close ( $ch );
❹ php如何调用api接口,主要是php调用联通,移动api进行短信的发送
你没法调移动。联通api的,如果要进行短信发送,可以去找短信接口,一般去运营商购买,然后他们提供api。然后用php对接即可,很简单,比如下面使用的就是某家的api发送:
$this->content = “发送内容”;
$this->name = "短信账号";
$this->pwd= "短信密码";
$this->mobile = "发送的手机号";
$argv = array(
'name'=>$this->name, //必填参数。用户账号
'pwd'=>$this->pwd, //必填参数。(web平台:基本资料中的接口密码)
'content'=>$this->content, //必填参数。发送内容(1-500 个汉字)UTF-8编码
'mobile'=>$this->mobile, //必填参数。手机号码。多个以英文逗号隔开
'stime'=>'', //可选参数。发送时间,填写时已填写的时间发送,不填时为当前时间发送
'sign'=>$this->sign, //必填参数。用户签名。
'type'=>$this->type, //必填参数。固定值 pt
'extno'=>$this->extno //可选参数,扩展码,用户定义扩展码,只能为数字
);
//构造要post的字符串
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$params .= "&";
$flag = 1;
}
$params.= $key."=";
$params.= urlencode($value);
$flag = 1;
}
$url = "http://xxxxxxx.com?".$params; //提交的url
$resultUrl = file_get_contents($url);//获取发送状态
❺ php怎么写短信接口
短信接口可以广泛应用在网站会员手机验证、订单通知、物流提醒等触发类短信应用。技术实现1、用户填写自己的手机号码,点击“获取验证码”按钮2、网站按规则生成短信验证码,并将用户的手机号码和验证码内容通过短信验证接口发送到验证码短信平台。3、验证码短信平台对经过一系列的判断并通过之后(账户余额、内容是否合规、手机号码是否合规、手机号码所属的运营商),将信息提交到相应运营商的服务器。4、运营商将短信内容下发到用户的手机。
❻ php ci框架怎么对接短信接口
相当简单 这个接口调用就是封装一个curl请求的function (sendSMS),代码示例网站上已经有了,使用时:加载这个function, 然后 调用方法sendSMS;
我把源码给你贴一遍,这个里面的账号密码是需要你们自己去申请的;
<?
$username='test';//用户账号
$password='123456';//密码
$mobile='13811299934,18610310066,15210954922';//号手机码
$content='您的短信验证码是:ABCD';//内容
//即时发送
$result=sendSMS($username,$password,$mobile,$content);
echo$result;
functionsendSMS($username,$password,$mobile,$content)
{
$url='http://域名/api/sms.php';
$data=array
(
'username'=>$username,//用户账号
'password'=>$password,//密码
'mobile'=>$mobile,//号码
'content'=>$content,//内容
);
$result=curlSMS($url,$data);//POST方式提交
return$result;
}
functioncurlSMS($url,$post_fields=array()){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,3600);//60秒
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_REFERER,'http://www.yourdomain.com');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);
$data=curl_exec($ch);
curl_close($ch);
$res=explode(" ",$data);
return$res[2];
}
?>
❼ PHP+MYSQL 实现队列 进行发送短信怎么做
最近遇到一个批量发送短信的需求,短信接口是第三方提供的。刚开始想到,获取到手机号之后,循环调用接口发送不就可以了吗?
但很快发现问题:当短信数量很大时,不仅耗时,而且成功率很低。
于是想到,用PHP和MySQL实现一个消息队列,一条一条的发送短信。下面介绍具体的实现方法:
首先,建立一个数据表sms,包含以下字段:
id,
phone, //手机号
content //短信内容
将需要发送的短信和手机号存入sms表中。
接下来,需要用PHP实现一个定时器,定时读取一条记录,并发送短信:
<?php
$db = new Db();
$sms = new Sms();
while(true){
$item = $db->getFirstRecord(); //获取数据表第一条记录
if(!$item){
//如果队列中没有数据,则结束定时器
break;
}
$res = $sms->send($item['phone'],$item['content']); //发送短信
if($res){
$db->deleteFristRecord(); //删除发送成功的记录
echo $item['phone'].'发送成功';
}else{
echo $item['phone'].'发送失败,稍后继续尝试';
}
sleep(10); //每隔十秒循环一次
}
echo '发送完毕!';
?>
将代码保存为timer_sms.php,打开命令行,执行定时器:
php timer_sms.php
好了,php定时器将会根据设定的时间间隔(这里设的是10秒),自动完成发送短信的任务。任务完成后将自动退出定时器,不再占用服务器资源。
根据我的测试,PHP定时器占用资源并不多,不会对服务器造成压力。而且是异步访问数据库,也不会影响数据库的运行。
这种方式的优点是:
1、后台运行,前台无需等待
2、成功率高,失败的记录会自动重发,直到成功
❽ 用PHP,API做一个可以收发短信,打接电话的平台
php本身是没有打电话和收发短信的功能!
只不过,一些这样的运营商, 可以提供一些api接口, 而php,可以调用这些接口而已!
但,要成功调用他们的接口, 那是需要花钱的!
比如,你花100元购买他们的一个套餐, 套餐内含1000条短信!
那你的php成功调用一次他们的api接口, 就成功发送一条短信!
那剩余短信减少一条!
等到你的套餐短信为0的时候, 那你又调用不成功了!
继续购买短信!
反正就是要钱的!