Bootstrap

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

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

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;
    }
}


;