Kaedah pelaksanaan penapisan senarai hitam dan penerbitan skala kelabu dalam kes sebenar dok PHP dan antara muka SMS Cloud Alibaba
Ikhtisar
Dengan populariti pemasaran SMS, kadar kejayaan dan pengalaman pengguna penghantaran SMS telah menjadi tumpuan perusahaan. Dalam proses sebenar menghantar mesej teks, untuk mengelakkan masalah kepada pengguna atau melanggar peraturan, fungsi penapisan senarai hitam perlu dilaksanakan. Pada masa yang sama, untuk mengurangkan kesan buruk yang disebabkan oleh ralat, strategi keluaran skala kelabu harus digunakan untuk pergi ke dalam talian secara berkelompok. Artikel ini akan memperkenalkan cara melaksanakan penapisan senarai hitam dan penerbitan skala kelabu melalui kes praktikal dok PHP dan antara muka SMS Awan Alibaba.
1. Penapisan senarai hitam
Dalam proses pemasaran SMS, adalah penting untuk mengelak daripada menghantar mesej teks yang tidak sah kepada pengguna. Penapisan senarai hitam mengurangkan masalah dan ketidakpuasan hati pengguna dengan menapis nombor telefon mudah alih dalam senarai hitam. Berikut ialah contoh kod untuk melaksanakan penapisan senarai hitam:
<?php // 配置阿里云短信接口信息 $accessKeyId = 'your_access_key_id'; $accessKeySecret = 'your_access_key_secret'; $signName = 'your_sign_name'; $templateCode = 'your_template_code'; // 待发送的手机号码 $mobile = '13800138000'; // 检查手机号码是否在黑名单中 function inBlacklist($mobile) { // 从数据库中查询黑名单列表 $blacklist = array('13800138001', '13800138002', '13800138003'); return in_array($mobile, $blacklist); } try { // 实例化阿里云SDK的短信发送类 $client = new DefaultAcsClient(new DefaultProfile($accessKeyId, $accessKeySecret), 'cn-hangzhou'); // 创建短信发送请求 $request = new CommonRequest(); $request->setMethod(Method::POST); $request->setDomain('dysmsapi.aliyuncs.com'); $request->setVersion('2017-05-25'); $request->setAction('SendSms'); $request->putQueryParameter('PhoneNumbers', $mobile); $request->putQueryParameter('SignName', $signName); $request->putQueryParameter('TemplateCode', $templateCode); // 检查手机号码是否在黑名单中 if (!inBlacklist($mobile)) { // 发送短信 $response = $client->getCommonResponse($request); echo $response->getBody(); } else { echo '该手机号码在黑名单中,无法发送短信。'; } } catch (Exception $e) { echo '短信发送失败:' . $e->getMessage(); }
Dalam kod contoh di atas, anda perlu mengkonfigurasi maklumat yang berkaitan antara muka SMS Alibaba Cloud, termasuk AccessKeyId, AccessKeySecret, SignName dan TemplateCode. Kemudian hubungi fungsi inBlacklist untuk menentukan sama ada nombor telefon mudah alih yang akan dihantar berada dalam senarai hitam Jika tiada dalam senarai hitam, hubungi antara muka penghantaran SMS Alibaba Cloud SDK untuk menghantar SMS. Jika tidak, mesej gesaan akan dikeluarkan.
2. Keluaran skala kelabu
Keluaran skala kelabu merujuk kepada keluaran berterusan fungsi atau perkhidmatan tertentu kepada subset pengguna untuk ujian bagi mengurangkan kesan negatif yang disebabkan oleh ralat. Dalam perniagaan penghantaran SMS, penerbitan skala kelabu boleh membantu kami melancarkan templat SMS baharu secara beransur-ansur untuk mengesahkan kebolehgunaan dan keberkesanannya. Berikut ialah contoh kod untuk melaksanakan penerbitan skala kelabu:
<?php // 配置阿里云短信接口信息 $accessKeyId = 'your_access_key_id'; $accessKeySecret = 'your_access_key_secret'; $signName = 'your_sign_name'; $templateCode = 'your_template_code'; // 获取待发送的手机号列表 function getMobileList() { // 从数据库中查询待发送的手机号列表 $mobileList = array('13800138000', '13800138001', '13800138002', '13800138003'); return $mobileList; } try { // 实例化阿里云SDK的短信发送类 $client = new DefaultAcsClient(new DefaultProfile($accessKeyId, $accessKeySecret), 'cn-hangzhou'); // 获取待发送的手机号列表 $mobileList = getMobileList(); // 按照灰度发布的比例进行循环发送短信 $total = count($mobileList); $percent = 0.1; // 灰度发布的比例为10% $count = ceil($total * $percent); // 实际发送的手机号数量为总数的百分之十 for ($i = 0; $i < $count; $i++) { $mobile = $mobileList[$i]; // 创建短信发送请求 $request = new CommonRequest(); $request->setMethod(Method::POST); $request->setDomain('dysmsapi.aliyuncs.com'); $request->setVersion('2017-05-25'); $request->setAction('SendSms'); $request->putQueryParameter('PhoneNumbers', $mobile); $request->putQueryParameter('SignName', $signName); $request->putQueryParameter('TemplateCode', $templateCode); // 发送短信 $response = $client->getCommonResponse($request); echo $response->getBody(); } echo '灰度发布成功,共发送' . $count . '条短信。'; } catch (Exception $e) { echo '短信发送失败:' . $e->getMessage(); }
Dalam kod contoh di atas, fungsi getMobileList digunakan untuk mendapatkan senarai nombor telefon mudah alih yang akan dihantar, yang boleh diperolehi daripada pangkalan data atau saluran lain mengikut tertentu keperluan. Kemudian, berdasarkan perkadaran penerbitan skala kelabu, hitung bilangan sebenar nombor telefon mudah alih yang perlu dihantar. Penerbitan skala kelabu dicapai dengan menghantar mesej teks dalam satu gelung. Dalam senario aplikasi sebenar, perkadaran penerbitan skala kelabu dan senarai nombor telefon mudah alih tertentu boleh dilaraskan mengikut keperluan.
Kesimpulan
Artikel ini menggunakan kes praktikal untuk memperkenalkan kaedah pelaksanaan penapisan senarai hitam dan penerbitan skala kelabu dalam proses dok antara muka PHP dan Alibaba Cloud SMS, dan menyediakan contoh kod yang berkaitan. Dengan melaksanakan penapisan senarai hitam dan penerbitan skala kelabu, kadar kejayaan dan pengalaman pengguna penghantaran mesej teks boleh dipertingkatkan dengan berkesan, dan kesan buruk yang disebabkan oleh ralat dapat dikurangkan. Saya harap artikel ini akan membantu semua orang dalam proses pembangunan sebenar.
Atas ialah kandungan terperinci Kaedah pelaksanaan penapisan senarai hitam dan penerbitan skala kelabu dalam kes sebenar dok PHP dan antara muka SMS Awan Alibaba. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!