Jadual Kandungan
消息服务
本文旨在通过PHP实现阿里云短信接口,摆脱繁琐的SDK。
创建和查看Access Key
Rumah pembangunan bahagian belakang tutorial php 阿里云短信服务的详解

阿里云短信服务的详解

Jul 17, 2017 am 09:35 AM
api php capai

阿里云短信支持先使用后支付的原则,价格为4分半1条。

通过SDK可以与网站功能的绑定,实现响应的短信发送功能

现已统一合并升级为:消息服务。

消息服务

阿里云消息服务(Message Service,简称 MNS)是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。MNS能够帮助应用开发者在他们应用的分布式组件上自由的传递数据、通知消息,构建松耦合系统。

新的SDK下载地址:

Java SDK:
Python SDK:
C# SDK:
PHP SDK:

如果你像我一样是以前申请的短信服务升级过来的,那么旧的接口与API仍然能使用,新申请的只能使用新的SDK了。

本文旨在通过PHP实现阿里云短信接口,摆脱繁琐的SDK。

短信界面通过表单方式实现。

 
   模板CODE: 
   阿里云短信模板编号
     
   用户类型:
Salin selepas log masuk

注意:阿里云短信模板编号为SMS_形式,通过JS控制输入提交按钮是否可用。

<?phpdefine(&#39;IN_ECS&#39;, true);require(dirname(__FILE__) . &#39;/includes/init.php&#39;);//ECShop初始化页面文件  function https_request($url)  
        {  $curl = curl_init();  
        curl_setopt($curl, CURLOPT_URL, $url);  
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);  
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  $data = curl_exec($curl);  if (curl_errno($curl)) {return &#39;ERROR &#39;.curl_error($curl);}  
        curl_close($curl);  return $data;  
        }  
function xml_to_array($xml){  $reg = "/<(\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/";  if(preg_match_all($reg, $xml, $matches)){  $count = count($matches[0]);  for($i = 0; $i < $count; $i++){  $subxml= $matches[2][$i];  $key = $matches[1][$i];  if(preg_match( $reg, $subxml )){  $arr[$key] = xml_to_array( $subxml );  
                }else{  $arr[$key] = $subxml;  
                }  
            }  
        }  return @$arr;  
    }  
function random($length = 6 , $numeric = 0) {  PHP_VERSION < &#39;4.2.0&#39; && mt_srand((double)microtime() * 1000000);  if($numeric) {  $hash = sprintf(&#39;%0&#39;.$length.&#39;d&#39;, mt_rand(0, pow(10, $length) - 1));  
        } else {  $hash = &#39;&#39;;  $chars = &#39;ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz&#39;;  $max = strlen($chars) - 1;  for($i = 0; $i < $length; $i++) {  $hash .= $chars[mt_rand(0, $max)];  
            }  
        }  return $hash;  
    }  $target = "https://sms.aliyuncs.com/?";  //阿里云短信请求地址头    $mobile_code = random(6,1);    function percentEncode($str)  
    {  // 使用urlencode编码后,将"+","*","%7E"做替换即满足ECS API规定的编码规范  $res = urlencode($str);  $res = preg_replace(&#39;/\+/&#39;, &#39;%20&#39;, $res);  $res = preg_replace(&#39;/\*/&#39;, &#39;%2A&#39;, $res);  $res = preg_replace(&#39;/%7E/&#39;, &#39;~&#39;, $res);  return $res;  
    }  
function computeSignature($parameters, $accessKeySecret)  
    {  // 将参数Key按字典顺序排序  ksort($parameters);  // 生成规范化请求字符串  $canonicalizedQueryString = &#39;&#39;;  foreach($parameters as $key => $value)  
        {  $canonicalizedQueryString .= '&' . percentEncode($key)  . '=' . percentEncode($value);  
        }  // 生成用于计算签名的字符串 stringToSign  $stringToSign = 'GET&%2F&' . percentencode(substr($canonicalizedQueryString, 1));  //echo "<br>".$stringToSign."<br>";  
        // 计算签名,注意accessKeySecret后面要加上字符'&'  $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true));  return $signature;  
    }  // 注意使用GMT时间  date_default_timezone_set("GMT");  $dateTimeFormat = 'Y-m-d\TH:i:s\Z'; // ISO8601规范  $accessKeyId = '根据实际修改';      // 这里填写您的Access Key ID  $accessKeySecret = '根据实际修改';  // 这里填写您的Access Key Secret  $ParamString="{\"code\":\"".strval($mobile_code)."\"}";  // 发送请求 if($_REQUEST['act'] == 'aliyun_mns'){// POST表单提交请求页面动作?act=aliyun_mns/* 显示模板 */if (isset($_POST['tcode']) && isset($_POST['tuser'])) {$tcode=$_POST["tcode"];// 表单提交SMS短信模板$tuser=$_POST["tuser"]; //表单提交用户组       $sql = "SELECT DISTINCT mobile_phone FROM " .$ecs->table($tuser);$phoneNO = $db->getCol($sql);$ii=0;foreach($phoneNO as $key=>$pn)
        {if(preg_match("/^1[34578]\d{9}$/",$pn)){$data = array(  // 公共参数  'SignName'=>'根据实际修改',  
                'Format' => 'XML',  
                'Version' => '2016-09-27',  
                'AccessKeyId' => $accessKeyId,  
                'SignatureVersion' => '1.0',  
                'SignatureMethod' => 'HMAC-SHA1',  
                'SignatureNonce'=> uniqid(),  
                'Timestamp' => date($dateTimeFormat),  // 接口参数  'Action' => 'SingleSendSms',  
                'TemplateCode' =>$tcode,  
                'RecNum' => $pn,  
                'ParamString' => $ParamString  
                );  $data['Signature'] = computeSignature($data, $accessKeySecret);//给每一位用户发短信                $result = xml_to_array(https_request($target.http_build_query($data))); 
            }
        }}        /* 显示Smarty模板 */assign_query_info();$smarty->display('aliyun_mns.htm');  
    }     
?>
Salin selepas log masuk

创建和查看Access Key


YourSignName 和 YourSMSTemplateCode 获取在阿里云控制台消息服务。

Atas ialah kandungan terperinci 阿里云短信服务的详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles