suchen
Heimphp教程PHP源码PHP-SMS-Schnittstellencode

Heute hatte ich Zeit, mir den vorherigen SMS-Docking-Code anzusehen und ihn zu rekonstruieren:

https://luosimao.com/docs/api/

<?php
/**
 * User: Administrator
 * Date: 2016/5/8 0008
 * Time: 下午 2:36
 */
class Sms{
 
 
    //Luosimao api key
    private $_api_key = &#39;&#39;;
 
    private $_last_error = array();
 
 
    private $_use_ssl = FALSE;
 
    private $_ssl_api_url = array(
        &#39;send&#39;       => &#39;https://sms-api.luosimao.com/v1/send.json&#39;,
        &#39;send_batch&#39; => &#39;https://sms-api.luosimao.com/v1/send_batch.json&#39;,
        &#39;status&#39;     => &#39;https://sms-api.luosimao.com/v1/status.json&#39;,
    );
 
    private $_api_url = array(
        &#39;send&#39;       => &#39;http://sms-api.luosimao.com/v1/send.json&#39;,
        &#39;send_batch&#39; => &#39;http://sms-api.luosimao.com/v1/send_batch.json&#39;,
        &#39;status&#39;     => &#39;http://sms-api.luosimao.com/v1/status.json&#39;,
    );
 
    /**
     * @param array $param 配置参数
     * api_key api秘钥,在luosimao短信后台短信->触发发送下面可查看
     * use_ssl 启用HTTPS地址,HTTPS有一定性能损耗,可选,默认不启用
     */
    public function __construct( $param =  array() ){
 
        if( !isset( $param[&#39;api_key&#39;] ) ){
            die("api key error.");
        }
 
        if( isset( $param[&#39;api_key&#39;] ) ){
            $this->_api_key = $param[&#39;api_key&#39;];
        }
 
        if( isset( $param[&#39;use_ssl&#39;] ) ){
            $this->_use_ssl = $param[&#39;use_ssl&#39;];
        }
 
    }
 
    //触发,单发,适用于验证码,订单触发提醒类
    public function send( $mobile , $message = &#39;&#39; ){
        $api_url = !$this->_use_ssl ? $this->_api_url[&#39;send&#39;] : $this->_ssl_api_url[&#39;send&#39;];
        $param = array(
            &#39;mobile&#39; => $mobile ,
            &#39;message&#39; => $message,
        );
        $res = $this->http_post( $api_url ,$param );
        return @json_decode( $res ,TRUE );
    }
 
    //批量发送,用于大批量发送
    public function send_batch( $mobile_list = array() , $message = array() , $time = &#39;&#39; ){
        $api_url = !$this->_use_ssl ? $this->_api_url[&#39;send_batch&#39;] : $this->_ssl_api_url[&#39;send_batch&#39;];
        $mobile_list = is_array( $mobile_list ) ? implode( &#39;,&#39; , $mobile_list ) : $mobile_list;
        $param = array(
            &#39;mobile_list&#39; => $mobile_list ,
            &#39;message&#39; => $message,
            &#39;time&#39;    => $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[&#39;status&#39;] : $this->_ssl_api_url[&#39;status&#39;];
        $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 = &#39;status&#39; , $param = array() ){
        if( $type == &#39;status&#39; ){
            if( $param[&#39;batch_id&#39;] && $param[&#39;mobile&#39;] && $param[&#39;status&#39;] ){ //状态
                // do record
            }
        }elseif( $type == &#39;incoming&#39; ){ //上行回复
            if( $param[&#39;mobile&#39;] && $param[&#39;message&#39;] ){
                // do record
            }
        }
    }
 
    /**
     * @param string $api_url 接口地址
     * @param array $param post参数
     * @param int $timeout 超时时间
     * @return bool
     */
    private function http_post( $api_url = &#39;&#39; , $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 )[&#39;scheme&#39;] == &#39;https&#39; ){
            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  , &#39;api:key-&#39;.$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 = &#39;&#39; , $timeout = &#39;&#39; ){
 
        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 )[&#39;scheme&#39;] == &#39;https&#39; ){
            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  , &#39;api:key-&#39;.$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;
    }
}


Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)