问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP短信接口代码详解,修改成能发的

发布网友 发布时间:2022-04-06 04:46

我来回答

5个回答

懂视网 时间:2022-04-06 09:08

本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内容如下

相关学习推荐:php编程(视频)

1. 短信调用class

<?php
/**
 * User: Administrator
 * Date: 2016/5/8 0008
 * Time: 下午 2:36
 */
class Sms{
 
 
 //Luosimao api key
 private $_api_key = '';
 
 private $_last_error = array();
 
 
 private $_use_ssl = FALSE;
 
 private $_ssl_api_url = array(
 'send' => 'https://www.jb51.net/v1/send.json',
 'send_batch' => 'https://www.jb51.net/v1/send_batch.json',
 'status' => 'https://www.jb51.net/v1/status.json',
 );
 
 private $_api_url = array(
 'send' => 'https://www.jb51.net/v1/send.json',
 'send_batch' => 'https://www.jb51.net/send_batch.json',
 'status' => 'https://www.jb51.net/v1/status.json',
 );
 
 /**
 * @param array $param 配置参数
 * api_key api秘钥,在luosimao短信后台短信->触发发送下面可查看
 * use_ssl 启用HTTPS地址,HTTPS有一定性能损耗,可选,默认不启用
 */
 public function __construct( $param = array() ){
 
 if( !isset( $param['api_key'] ) ){
 die("api key error.");
 }
 
 if( isset( $param['api_key'] ) ){
 $this->_api_key = $param['api_key'];
 }
 
 if( isset( $param['use_ssl'] ) ){
 $this->_use_ssl = $param['use_ssl'];
 }
 
 }
 
 //触发,单发,适用于验证码,订单触发提醒类
 public function send( $mobile , $message = '' ){
 $api_url = !$this->_use_ssl ? $this->_api_url['send'] : $this->_ssl_api_url['send'];
 $param = array(
 'mobile' => $mobile ,
 'message' => $message,
 );
 $res = $this->http_post( $api_url ,$param );
 return @json_decode( $res ,TRUE );
 }
 
 //批量发送,用于大批量发送
 public function send_batch( $mobile_list = array() , $message = array() , $time = '' ){
 $api_url = !$this->_use_ssl ? $this->_api_url['send_batch'] : $this->_ssl_api_url['send_batch'];
 $mobile_list = is_array( $mobile_list ) ? implode( ',' , $mobile_list ) : $mobile_list;
 $param = array(
 'mobile_list' => $mobile_list ,
 'message' => $message,
 'time' => $time,
 );
 $res = $this->http_post( $api_url ,$param );
 return @json_decode( $res ,TRUE );
 }
 
 //获取短信账号余额
 public function get_deposit(){
 $api_url = !$this->_use_ssl ? $this->_api_url['status'] : $this->_ssl_api_url['status'];
 $res = $this->http_get( $api_url );
 return @json_decode( $res ,TRUE );
 }
 
 /**
 * @param string $type 接收类型,用于在服务器端接收上行和发送状态,接收地址需要在luosimao后台设置
 * @param array $param 传入的参数,从推送的url中获取,官方文档:https://luosimao.com/docs/api/
 */
 public function recv( $type = 'status' , $param = array() ){
 if( $type == 'status' ){
 if( $param['batch_id'] && $param['mobile'] && $param['status'] ){ //状态
 // do record
 }
 }elseif( $type == 'incoming' ){ //上行回复
 if( $param['mobile'] && $param['message'] ){
 // do record
 }
 }
 }
 
 /**
 * @param string $api_url 接口地址
 * @param array $param post参数
 * @param int $timeout 超时时间
 * @return bool
 */
 private function http_post( $api_url = '' , $param = array() , $timeout = 5 ){
 
 if( !$api_url ){
 die("error api_url");
 }
 
 $ch = curl_init();
 curl_setopt( $ch, CURLOPT_URL, $api_url );
 
 curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 );
 curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt( $ch, CURLOPT_HEADER, FALSE);
 
 if( parse_url( $api_url )['scheme'] == 'https' ){
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , FALSE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , FALSE);
 }
 
 curl_setopt( $ch, CURLOPT_HTTPAUTH , CURLAUTH_BASIC);
 curl_setopt( $ch, CURLOPT_USERPWD , 'api:key-'.$this->_api_key );
 curl_setopt( $ch, CURLOPT_POST, TRUE);
 curl_setopt( $ch, CURLOPT_POSTFIELDS, $param );
 
 $res = curl_exec( $ch );
 $error = curl_error( $ch );
 curl_close( $ch );
 if( $error ){
 $this->_last_error[] = $error;
 return FALSE;
 }
 return $res;
 }
 
 /**
 * @param string $api_url 接口地址
 * @param string $timeout 超时时间
 * @return bool
 */
 private function http_get( $api_url = '' , $timeout = '' ){
 
 if( !$api_url ){
 die("error api_url");
 }
 
 $ch = curl_init();
 curl_setopt( $ch, CURLOPT_URL, $api_url );
 
 curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 );
 curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
 curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE);
 curl_setopt( $ch, CURLOPT_HEADER, FALSE);
 
 if( parse_url( $api_url )['scheme'] == 'https' ){
 curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST , FALSE);
 curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER , FALSE);
 }
 curl_setopt( $ch, CURLOPT_HTTPAUTH , CURLAUTH_BASIC);
 curl_setopt( $ch, CURLOPT_USERPWD , 'api:key-'.$this->_api_key );
 
 $res = curl_exec( $ch );
 $error = curl_error( $ch );
 curl_close( $ch );
 if( $error ){
 $this->_last_error[] = curl_error( $ch );
 return FALSE;
 }
 return $res;
 }
 
 public function last_error(){
 return $this->_last_error;
 }
}

2.短信发送示例

//send 单发接口
 
require 'sms.php';
$sms = new Sms( array('api_key' => '86f52f3ce0647dc24da53eafe29fadd4' , 'use_ssl' => FALSE ) );
$res = $sms->send_batch( array('13761428268') , '验证码:19272【脚本之家】');
if( $res ){
 if( isset( $res['error'] ) && $res['error'] == 0 ){
 echo 'success';
 }else{
 echo 'failed,code:'.$res['error'].',msg:'.$res['msg'];
 }
}else{
 var_dump( $sms->last_error() );
}
exit;

3.批量发送示例

require 'sms.php';
$sms = new Sms( array('api_key' => '86f52f3ce0647dc24da53eafe29fadd4' , 'use_ssl' => FALSE ) );
 
 
//send 单发接口
$res = $sms->send_batch( array('13761428268') , '验证码:19272【脚本之家】');
if( $res ){
 if( isset( $res['error'] ) && $res['error'] == 0 ){
 echo 'success';
 }else{
 echo 'failed,code:'.$res['error'].',msg:'.$res['msg'];
 }
}else{
 var_dump( $sms->last_error() );
}
exit;

4.获取余额示例

//deposit 余额查询
require 'sms.php';
$sms = new Sms( array('api_key' => '86f52f3ce0647dc24da53eafe29fadd4' , 'use_ssl' => FALSE ) );
 
$res = $sms->get_deposit();
if( $res ){
 if( isset( $res['error'] ) && $res['error'] == 0 ){
 echo 'desposit:'.$res['deposit'];
 }else{
 echo 'failed,code:'.$res['error'].',msg:'.$res['msg'];
 }
}else{
 var_dump( $sms->last_error() );
}
exit;

相关学习推荐:编程视频

热心网友 时间:2022-04-06 06:16

修改成能发的?什么意思?就是说你现在不能发吗 ?一般的短信接口都可以发的。安装上就ok

热心网友 时间:2022-04-06 07:34

那你还不如直接找速达移动问问

他们客服都会给你例子

热心网友 时间:2022-04-06 09:08

楼主,你如果需要php短信接口文档程序,我这里可以提供。

热心网友 时间:2022-04-06 11:00

en
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
海上钢琴师男主角1900在三等仓里为穷人们弹奏的塔兰泰拉舞曲 &lt;海上钢琴师&gt;那段旋转舞曲是什么地方的曲子 孕妇有痰吃什么化痰 孕妇咳嗽需要注意什么 孕妇能止咳化痰的食物有哪些? 甲数除以乙数等于2余数为5,乙数最小是多少?这时甲数为多少 甲数除以乙数等于116余4问乙数最小是几这时甲数是几? 摩托罗拉手机v3上市时间 v3手机大头手机大头叫什么 如何查看电脑配置硬件型号 | 电脑硬件型号查询方法 vivo智能手机型号大全vivo最新款智能手机v3 php短信接口如何实现群发... 谁能给个示例的代码啊。。 短信接口怎么更换,PHP代码怎么写? python代码怎么注释掉看 Python代码注释应该怎么写 python代码 每一行给出注释 并解释用法 win764位旗舰版2G的内存够用吗? windows7旗舰版2G内存玩游戏够不够用? 2G内存运行win7够不够? win7 做开发 2G 的内存够用吗 2G的内存能流畅运行WIN7吗? win7 64位旗舰系统笔记本,2G内存够吗? win7 32位 系统、2g内存够用吗? win7的笔记本2G的内存够不够啊? win7 32位 2g内存够不够??玩大型游戏呢 win7 32位旗舰版 2G内存够用吗 我主要玩游戏 win764位系统2g内存够用吗 win7系统32位,用2G内存够不够? win7 64位 2g内存够吗 win7 32位 2g内存够吗 求解win7旗舰版 2g内存够用吗 怎么做的?PHP常用短信接口 php短信接口是什么? php ci框架怎么对接短信接口 我有移动提供的短信接口,请问怎么用php调用这些接口发送短信呢? php短信接口怎么使用 可以直接调用开源代码PhpSMSAdmin里面发短信的接口吗? PHP怎么连接数据库短信接口 好做么?PHP短信接口开发 Php调用手机发短信功能 阿里云oss php上传图片问题 上传前把图片重命名之后再上传到oss 怎么写代码呢 PHP如何使用阿里云oss 求助阿里云服务器上传图片代码php版本 文件上传问题。PHP些的云存储服务器,调用平台接口上传文件(例如阿里云等)。 怎么上传图片到阿里云? 上传图片到阿里云的OSS上,可以吗 阿里云oss 上传及访问问题 oss阿里云怎么设置自动上传文件 discuz怎么设置阿里云oss远程附件 php+mysql怎么实现无限级别分类,数据库怎么设计?一条SQL语句读出数据然后生成数组 PHP+MySQL无限分类语句