使用xml发送国际短信(smspro)【吉尔吉斯斯坦】

//使用xml格式发送国外短信验证码【吉尔吉斯斯坦】官网:https://smspro.nikita.kg/

php 复制代码
public function api_test($data,$user){

        $url = "http://smspro.nikita.kg/api/message";
        $code = '123456' ;
        $content = 'Your verification code 123456, this verification code is valid within 30 minutes, do not leak to others!' ;
        $result = post_content($url, '7066***88',$content,$code);
//        error_log(date('Y-m-d H:i:s').' 【$result】'.json_encode($result,320).' '.PHP_EOL,3,'../runtime/sms.log');
    }

if (!function_exists('post_content')) {
    /**
     * Отправка POST-запроса.
     */
    function post_content($url, $phone,$content,$code)
    {
        /**
         * Логин для доступа к платформе smspro.nikita.kg.
         * */
        $login = 't****express';//此处替换为自己的账号
        /**
         * Пароль для доступа к платформе smspro.nikita.kg.
         * */
        $password = 'cf4069****************db1064';//此处替换为自己的密码
        /**
         * Уникальный идентификатор транзакции. Для каждой отправки он должен быть уникальным.
         * Используя этот ID можно получить отчет о доставке сообщения.
         * */
        $transactionId = date('YmdHis').rand(10000,99999);
        /**
         * Имя отправителя - должно быть согласовано с администратором smspro.nikita.kg
         * */
        $sender = 'T****.kg';//替换为自己的sender
        /**
         * Текст СМС-сообщения - текст на русском или латинице любой длины (до 800 знаков).
         * В случае необходимости платформа smspro.nikita.kg автоматически разделит текст на несколько сообщений.
         * */
        $text = $content;
        /**
         * Номер телефона получателя СМС в формате 996ххххххххх.
         * В одной транзакции отправки может быть указано и более 1го телефона.
         * */
        $mobile = $phone ;
        $phone = '996'.$mobile;
        $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>".
            "<message>".
            "<login>$login</login>".
            "<pwd>$password</pwd>".
            "<id>$transactionId</id>".
            "<sender>$sender</sender>".
            "<text>$text</text>".
            "<phones>".
            "<phone>$phone</phone>".
            "</phones>".
            "</message>";



        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_ENCODING, "");
        curl_setopt($ch, CURLOPT_TIMEOUT, 120);
        /** Поддержка keep-alive. */
        /**
         * curl_setopt($ch, CURLOPT_TCP_KEEPALIVE, 1);
         * curl_setopt($ch, CURLOPT_TCP_KEEPIDLE, 120);
         * curl_setopt($ch, CURLOPT_TCP_KEEPINTVL, 60);
         */
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

        $content = curl_exec($ch);
        $err = curl_errno($ch);
        $errmsg = curl_error($ch);
        $header = curl_getinfo($ch);
        curl_close($ch);

        $header['errno'] = $err;
        $header['errmsg'] = $errmsg;
        $header['content'] = $content;

        $logSmsModel = new LogSms();
        $logSmsModel->add_sms($code, $mobile, 0, $text, 'xml', 30);
        return $header;
    }
}
相关推荐
小苏兮4 小时前
【把Linux“聊”明白】编译器gcc/g++与调试器gdb/cgdb:从编译原理到高效调试
java·linux·运维·学习·1024程序员节
unable code5 小时前
攻防世界-Misc-掀桌子
网络安全·ctf·misc·1024程序员节
被AI抢饭碗的人16 小时前
linux:io基础
1024程序员节
GIS数据转换器18 小时前
2025无人机在电力交通中的应用实践
运维·人工智能·物联网·安全·无人机·1024程序员节
TDengine (老段)1 天前
TDengine 数学函数 CRC32 用户手册
java·大数据·数据库·sql·时序数据库·tdengine·1024程序员节
草莓熊Lotso1 天前
C++ 继承特殊场景解析:友元、静态成员与菱形继承的底层逻辑
服务器·开发语言·c++·人工智能·经验分享·笔记·1024程序员节
-孤存-1 天前
深入浅出:TCP/UDP协议核心原理
网络·网络协议·tcp/ip·1024程序员节
百锦再2 天前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节
开开心心就好2 天前
电脑音质提升:杜比全景声安装详细教程
java·开发语言·前端·数据库·电脑·ruby·1024程序员节
hfdz_00422 天前
BUCK电路原理和设计
电源·硬件设计·1024程序员节