当前位置:首页 > PHP教程 > php应用 > 列表

php短信接口代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-05 09:25:09 浏览: 评论:0 

这篇文章主要为大家详细介绍了php短信接口代码,php短信发送、php批量发送、php获取余额等代码,感兴趣的小伙伴们可以参考一下。

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

1. 短信调用class

  1. <?php 
  2. /** 
  3.  * User: Administrator 
  4.  * Date: 2016/5/8 0008 
  5.  * Time: 下午 2:36 
  6.  */ 
  7. class Sms{ 
  8.    
  9.    
  10.   //Luosimao api key 
  11.   private $_api_key = ''
  12.    
  13.   private $_last_error = array(); 
  14.    
  15.    
  16.   private $_use_ssl = FALSE; 
  17.    
  18.   private $_ssl_api_url = array
  19.     'send'    => 'https://www.phpfensi.com/v1/send.json'
  20.     'send_batch' => 'https://www.phpfensi.com/v1/send_batch.json'
  21.     'status'   => 'https://www.phpfensi.com/v1/status.json'
  22.   ); 
  23.    
  24.   private $_api_url = array
  25.     'send'    => 'https://www.phpfensi.com/v1/send.json'
  26.     'send_batch' => 'https://www.phpfensi.com/send_batch.json'
  27.     'status'   => 'https://www.phpfensi.com/v1/status.json'
  28.   ); 
  29.    
  30.   /** 
  31.    * @param array $param 配置参数 
  32.    * api_key api秘钥,在luosimao短信后台短信->触发发送下面可查看 
  33.    * use_ssl 启用HTTPS地址,HTTPS有一定性能损耗,可选,默认不启用 
  34.    */ 
  35.   public function __construct( $param = array() ){ 
  36.    
  37.     if( !isset( $param['api_key'] ) ){ 
  38.       die("api key error."); 
  39.     } 
  40.    
  41.     if( isset( $param['api_key'] ) ){ 
  42.       $this->_api_key = $param['api_key']; 
  43.     } 
  44.    
  45.     if( isset( $param['use_ssl'] ) ){ 
  46.       $this->_use_ssl = $param['use_ssl']; 
  47.     } 
  48.    
  49.   } 
  50.    
  51.   //触发,单发,适用于验证码,订单触发提醒类 
  52.   public function send( $mobile , $message = '' ){ 
  53.     $api_url = !$this->_use_ssl ? $this->_api_url['send'] : $this->_ssl_api_url['send']; 
  54.     $param = array
  55.       'mobile' => $mobile , 
  56.       'message' => $message
  57.     ); 
  58.     $res = $this->http_post( $api_url ,$param ); 
  59.     return @json_decode( $res ,TRUE ); 
  60.   } 
  61.    
  62.   //批量发送,用于大批量发送 
  63.   public function send_batch( $mobile_list = array() , $message = array() , $time = '' ){ 
  64.     $api_url = !$this->_use_ssl ? $this->_api_url['send_batch'] : $this->_ssl_api_url['send_batch']; 
  65.     $mobile_list = is_array$mobile_list ) ? implode( ',' , $mobile_list ) : $mobile_list
  66.     $param = array
  67.       'mobile_list' => $mobile_list , 
  68.       'message' => $message
  69.       'time'  => $time
  70.     ); 
  71.     $res = $this->http_post( $api_url ,$param ); 
  72.     return @json_decode( $res ,TRUE ); 
  73.   } 
  74.    
  75.   //获取短信账号余额 
  76.   public function get_deposit(){ 
  77.     $api_url = !$this->_use_ssl ? $this->_api_url['status'] : $this->_ssl_api_url['status']; 
  78.     $res = $this->http_get( $api_url ); 
  79.     return @json_decode( $res ,TRUE ); 
  80.   } 
  81.    
  82.   /** 
  83.    * @param string $type 接收类型,用于在服务器端接收上行和发送状态,接收地址需要在luosimao后台设置 
  84.    * @param array $param 传入的参数,从推送的url中获取,官方文档:https://luosimao.com/docs/api/ 
  85.    */ 
  86.   public function recv( $type = 'status' , $param = array() ){ 
  87.     if$type == 'status' ){ 
  88.       if$param['batch_id'] && $param['mobile'] && $param['status'] ){ //状态 
  89.         // do record 
  90.       } 
  91.     }elseif$type == 'incoming' ){ //上行回复 
  92.       if$param['mobile'] && $param['message'] ){ 
  93.         // do record 
  94.       } 
  95.     } 
  96.   } 
  97.    
  98.   /** 
  99.    * @param string $api_url 接口地址 
  100.    * @param array $param post参数 
  101.    * @param int $timeout 超时时间 
  102.    * @return bool 
  103.    */ 
  104.   private function http_post( $api_url = '' , $param = array() , $timeout = 5 ){ 
  105.    
  106.     if( !$api_url ){ 
  107.       die("error api_url"); 
  108.     } 
  109.    
  110.     $ch = curl_init(); 
  111.     curl_setopt( $ch, CURLOPT_URL, $api_url ); 
  112.    
  113.     curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 ); 
  114.     curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout ); 
  115.     curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE); 
  116.     curl_setopt( $ch, CURLOPT_HEADER, FALSE); 
  117.    
  118.     ifparse_url$api_url )['scheme'] == 'https' ){ 
  119.       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , FALSE); 
  120.       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , FALSE); 
  121.     } 
  122.    
  123.     curl_setopt( $ch, CURLOPT_HTTPAUTH , CURLAUTH_BASIC); 
  124.     curl_setopt( $ch, CURLOPT_USERPWD , 'api:key-'.$this->_api_key ); 
  125.     curl_setopt( $ch, CURLOPT_POST, TRUE); 
  126.     curl_setopt( $ch, CURLOPT_POSTFIELDS, $param ); 
  127.    
  128.     $res  = curl_exec( $ch ); 
  129.     $error = curl_error( $ch ); 
  130.     curl_close( $ch ); 
  131.     if$error ){ 
  132.       $this->_last_error[] = $error
  133.       return FALSE; 
  134.     } 
  135.     return $res
  136.   } 
  137.    
  138.   /** 
  139.    * @param string $api_url 接口地址 
  140.    * @param string $timeout 超时时间 
  141.    * @return bool 
  142.    */ 
  143.   private function http_get( $api_url = '' , $timeout = '' ){ 
  144.    
  145.     if( !$api_url ){ 
  146.       die("error api_url"); 
  147.     } 
  148.    
  149.     $ch = curl_init(); 
  150.     curl_setopt( $ch, CURLOPT_URL, $api_url ); 
  151.    
  152.     curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 ); 
  153.     curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout ); 
  154.     curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE); 
  155.     curl_setopt( $ch, CURLOPT_HEADER, FALSE); 
  156.    
  157.     ifparse_url$api_url )['scheme'] == 'https' ){ 
  158.       curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST , FALSE); 
  159.       curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER , FALSE); 
  160.     } 
  161.     curl_setopt( $ch, CURLOPT_HTTPAUTH , CURLAUTH_BASIC); 
  162.     curl_setopt( $ch, CURLOPT_USERPWD , 'api:key-'.$this->_api_key ); 
  163.    
  164.     $res  = curl_exec( $ch ); 
  165.     $error = curl_error( $ch ); 
  166.     curl_close( $ch ); 
  167.     if$error ){ 
  168.       $this->_last_error[] = curl_error( $ch ); 
  169.       return FALSE; 
  170.     } 
  171.     return $res
  172.   } 
  173.    
  174.   public function last_error(){ 
  175.     return $this->_last_error; 
  176.   } 

2.短信发送示例

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

3.批量发送示例

  1. require 'sms.php'
  2. $sms = new Sms( array('api_key' => '86f52f3ce0647dc24da53eafe29fadd4' , 'use_ssl' => FALSE ) ); 
  3.    
  4.    
  5. //send 单发接口 
  6. $res = $sms->send_batch( array('13761428268') , '验证码:19272【脚本之家】'); 
  7. if$res ){ 
  8.   if( isset( $res['error'] ) && $res['error'] == 0 ){ 
  9.     echo 'success'
  10.   }else
  11.     echo 'failed,code:'.$res['error'].',msg:'.$res['msg']; 
  12.   } 
  13. }else
  14.   var_dump( $sms->last_error() ); 
  15. exit

4.获取余额示例

  1. //deposit 余额查询 
  2. require 'sms.php'
  3. $sms = new Sms( array('api_key' => '86f52f3ce0647dc24da53eafe29fadd4' , 'use_ssl' => FALSE ) ); 
  4.    
  5. $res = $sms->get_deposit(); 
  6. if$res ){ 
  7.   if( isset( $res['error'] ) && $res['error'] == 0 ){ 
  8.     echo 'desposit:'.$res['deposit']; 
  9.   }else
  10.     echo 'failed,code:'.$res['error'].',msg:'.$res['msg']; 
  11.   } 
  12. }else
  13.   var_dump( $sms->last_error() ); 
  14. exit

以上就是本文的全部内容,希望对大家的学习有所帮助。

Tags: php短信接口

分享到: