首页 > 编程知识 正文

aws服务php发送sms,aws 云服务

时间:2023-12-28 21:10:51 阅读:328801 作者:EIOD

本文目录一览:

Php调用手机发短信功能

移动的接口是什么风格的?是soap的还是自定义的?

调用自定义接口通常有以下步骤:

1、阅读接口文档

2、数据接口一般会提供一些参数。如果是GET接口,请将参数拼接在地址的后面(推荐使用

http_build_query)。如果是POST接口,看我的示例代码。

3、请求数据

4、解析返回的内容,判断调用是否成功。一般返回的内容有xml和json格式。

给你一个CURL调用POST接口的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

?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。

追问:

是webservice接口,有范例吗?

追答:

这个接口是soap的,人家已经帮你把逻辑封装了。

注意这个地址是否正确。我这里是访问不到的。我觉得你使用他文档中的实例肯定不会有问题。

追问:

这个我替换成 开放给我的接口 却还是不行啊!!!

追答:

你要说说是怎么个不行啊。。是没响应(空白),还是返回内容有问题,还是报错?

把出错信息贴上

追问:

没响应 返回空白,因为代码多这里不够贴。

追答:

我试了一下,刷出一堆错误来。它用的是一个叫nusoap的类。

你尝试一下PHP内置的SoapClient吧,可以代替它的nusoap。

哪里可以申请php网站发送短信的接口 ?

如果你发送量不大可以找IDC服务商购买,这些手续比较简单,找专业哪些需要企业签约。

$loginname = ""; // 接口帐号

$pass = ""; // 接口密码

$code = "";

$subid = "";

$sender = "";

$receivers = ""; // 接收号码,多个号码间用 ; 分隔

$settimer = ""; // 定时发送时间 格式:YYYY-MM-DD HH:MM

$message = urlencode("");

$cmd = "send";

$allowforward = "";

$recordid_client = ""; // 短信的客户端记录号

$http = "";

$file = $http."?loginname=".$loginname."pass=".$pass."code=".$code."subid=".$subid."sender=".$sender."receivers=".$receivers."settimer=".$settimer."message=".$message."cmd=".$cmd."allowforward=".$allowforward."recordid_client=".$recordid_client;

$xml = new XMLReader();

$xml-open($file);

$xml-setParserProperty(2,true);

while ($xml-read()) {

switch ($xml-name) {

case "Success": $xml-read();

$Success = $xml-value;

$xml-read();

break;

case "Fail": $xml-read();

$Fail = $xml-value;

$xml-read();

break;

case "RetCode": $xml-read();

$RetCode = $xml-value;

$xml-read();

break;

case "SmsRemain": $xml-read();

$SmsRemain = $xml-value;

$xml-read();

break;

case "ErrPhones": $xml-read();

$ErrPhones = $xml-value;

$xml-read();

break;

}

}

$xml-close();

// $Success 发送成功条数

// $Fail 发送失败条数

// $RetCode 发送状态值

// $SmsRemain 接口帐号余额

// $ErrPhones 发送失败号码。

PHP如何定时发送短信

1、首先设置好服务器;

2、设置执行时间为无限制;

3、设置发送短信间隔为5分钟;

4、打开存储短信的文件,进行短信操作,关闭文件;

5、循环上面的过程;

6、具体设置代码如下:

ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. 

set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去 

$interval=60*5; // 每隔5分钟运行 

do{ 

$fp = fopen('test.txt','a'); 

fwrite($fp,'test'); 

fclose($fp); 

sleep($interval); // 等待5分钟 

}while(true); 

?

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手机短信验证功能

现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性 。

第一、实现php手机短信验证功能的基本思路

1、要找到短信服务提供商,接入短信服务

2、在网站信息提交页面请求发送信息

3、服务器向短信服务提供商通信,提交发送请求

4、短信服务提供商通过运营商将信息发送到用户的手机中

二、手机号码短信验证前台页面效果实现

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

html xmlns

head

title/title

script src="js/jquery-1.4a2.min.js" type="text/javascript"/script

script type="text/javascript"

/*-------------------------------------------*/

var InterValObj; //timer变量,控制时间

var count = 60; //间隔函数,1秒执行

var curCount;//当前剩余秒数

var code = ""; //验证码

var codeLength = 6;//验证码长度

function sendMessage() {

curCount = count;

var dealType; //验证方式

tel = $(’#tel’).val();

if(tel!=’’){

//验证手机有效性

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/;

if(!myreg.test($(’#tel’).val()))

{

alert(’请输入有效的手机号码!’);

return false;

}

tel = $(’#tel’).val();

//产生验证码

for (var i = 0; i codeLength; i++) {

code += parseInt(Math.random() * 9).toString();

}

//设置button效果,开始计时

$("#btnSendCode").attr("disabled", "true");

$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次

//向后台发送处理数据

$.ajax({

type: "POST", //用POST方式传输

dataType: "text", //数据格式:JSON

url: ’yanzhengma.php’, //目标地址(根据实际地址)

data: "tel=" + tel + "code=" + code,

error: function (XMLHttpRequest, textStatus, errorThrown) { },

success: function (msg){ }

});

}else{

alert(’请填写手机号码’);

}

}

//timer处理函数

function SetRemainTime() {

if (curCount == 0) {

window.clearInterval(InterValObj);//停止计时器

$("#btnSendCode").removeAttr("disabled");//启用按钮

$("#btnSendCode").val("重新发送验证码");

code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效

}

else {

curCount--;

$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

}

}

/script

/head

body

input name="tel" id=tel type="text" /

input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" //p

/body

/html

第三、调用短信服务器短信接口

整理的页面是yanzhengma.php(具体根据服务商提供信息)

?php //提交短信

$post_data = array();

$post_data[’userid’] = 短信服务商提供ID;

$post_data[’account’] = ’短信服务商提供用户名’;

$post_data[’password’] = ’短信服务商提供密码’;

// Session保存路径

$sessSavePath = dirname(__FILE__)."/../data/sessions/";

if(is_writeable($sessSavePath) is_readable($sessSavePath)){

session_save_path($sessSavePath);

}

session_register(’mobliecode’);

$_SESSION[’mobilecode’] = $_POST["code"];

$content=’短信验证码:’.$_POST["code"].’【短信验证】’;

$post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下

$post_data[’mobile’] = $_POST["tel"];

$post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值

$url=’’;

$o=’’;

foreach ($post_data as $k=$v)

{

$o.="$k=".$v.’’;

}

$post_data=substr($o,0,-1);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。

$result = curl_exec($ch);

?

第四:提交表单信息时对短信验证码验证

//手机验证码开始

session_start();

$svalitel = $_SESSION[’mobilecode’];

$vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

{

ResetVdValue();

//echo "Pageviews=".$vdcodetel;

ShowMsg("手机验证码错误!", ’-1’);

exit();

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。