Mécanisme d'envoi de SMS et conception de canaux de messages dans des cas réels d'amarrage de l'interface SMS PHP et Alibaba Cloud

王林
Libérer: 2023-07-05 14:08:01
original
1995 Les gens l'ont consulté

Mécanisme d'envoi de SMS et conception de canaux de messages dans le cas réel de l'amarrage de l'interface SMS PHP et Alibaba Cloud

Aperçu :
À l'ère d'Internet d'aujourd'hui, la messagerie texte est devenue une partie importante de la vie des gens, et la fonction d'envoi de messages texte est également devenue beaucoup Une partie essentielle du développement d’applications. Cet article utilisera le langage PHP comme exemple pour présenter comment implémenter le mécanisme d'envoi de SMS et la conception du canal de message via l'interface SMS d'Alibaba Cloud.

1. Introduction à l'interface SMS Alibaba Cloud
L'interface SMS Alibaba Cloud est un ensemble de services d'envoi de SMS fournis par Alibaba Cloud, qu'il s'agisse d'un code de vérification, d'un SMS marketing ou d'un SMS de notification, il peut être mis en œuvre via cette interface. L'envoi de messages texte via cette interface répond non seulement aux besoins réels, mais garantit également la haute fiabilité des messages texte.

2. Conception du mécanisme d'envoi de SMS

  1. Enregistrez un compte Alibaba Cloud et demandez le service SMS
    Tout d'abord, nous devons enregistrer un compte Alibaba Cloud et demander le service SMS. Lorsque vous postulez au service SMS, vous devez fournir certaines informations nécessaires, telles que le nom de l'entreprise, la signature, etc. Après avoir passé l'examen, Alibaba Cloud nous fournira AccessKey ID et AccessKey Secret. Ces deux clés sont nos informations d'identification pour appeler l'interface SMS.
  2. Installer le SDK Alibaba Cloud
    Pour utiliser l'interface SMS Alibaba Cloud dans les projets PHP, nous pouvons utiliser le SDK Alibaba Cloud pour le développement. Tout d’abord, nous devons installer le SDK Alibaba Cloud dans le projet. Il peut être installé via composer. La commande est la suivante :

    composer require alibabacloud/sdk
    Copier après la connexion
  3. Écrivez le code d'envoi de SMS
    Dans le projet PHP, nous pouvons envoyer des messages SMS en appelant l'API fournie par Alibaba Cloud SDK. Voici un exemple de code simple. Les paramètres spécifiques doivent être renseignés en fonction des besoins réels :
<?php
require 'vendor/autoload.php';

use AlibabaCloudClientAlibabaCloud;
use AlibabaCloudClientExceptionClientException;
use AlibabaCloudClientExceptionServerException;

AlibabaCloud::accessKeyClient('your-access-key-id', 'your-access-key-secret')
    ->regionId('cn-hangzhou')
    ->asDefaultClient();

try {
    $result = AlibabaCloud::rpcRequest()
                          ->product('Dysmsapi')
                          ->scheme('https')
                          ->version('2017-05-25')
                          ->action('SendSms')
                          ->method('POST')
                          ->options([
                                        'query' => [
                                            'PhoneNumbers' => '13000000000',
                                            'SignName'     => '阿里云',
                                            'TemplateCode' => 'SMS_0000001',
                                            'TemplateParam' => '{"code":"123456"}'
                                        ],
                                    ])
                          ->request();
    print_r($result->toArray());
} catch (ClientException $e) {
    echo $e->getErrorMessage() . PHP_EOL;
} catch (ServerException $e) {
    echo $e->getErrorMessage() . PHP_EOL;
}
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode rpcRequest() fournie par le SDK AlibabaCloud pour envoyer des messages texte. Parmi eux, nous devons renseigner l'ID AccessKey, l'AccessKey Secret, la signature SMS Alibaba Cloud, l'ID du modèle SMS et le numéro de téléphone mobile pour recevoir des messages SMS.

3. Conception du canal de message
Afin de mieux gérer l'état de l'envoi de SMS et d'enregistrer les journaux d'opérations associés, nous pouvons configurer un canal de message pour traiter les résultats de l'envoi de SMS. Voici un exemple simple de conception de canal de message :

  1. Créer une table de base de données
    Tout d'abord, nous devons créer une table de base de données pour enregistrer les résultats et les informations associées de l'envoi de SMS. La structure du tableau est la suivante :
CREATE TABLE `sms_logs` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `phone_number` varchar(20) NOT NULL COMMENT '手机号码',
  `template_code` varchar(20) NOT NULL COMMENT '短信模板ID',
  `content` text NOT NULL COMMENT '短信内容',
  `result_code` varchar(20) NOT NULL COMMENT '发送结果编码',
  `result_msg` varchar(255) NOT NULL COMMENT '发送结果消息',
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发送时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Copier après la connexion
  1. Écrire le code d'envoi de messages texte
    Dans le code d'envoi de messages texte, nous pouvons enregistrer les résultats d'envoi dans la base de données. Voici un exemple :
// 发送短信并将结果保存到数据库中
$result = AlibabaCloud::rpcRequest()
                        ->product('Dysmsapi')
                        ->scheme('https')
                        ->version('2017-05-25')
                        ->action('SendSms')
                        ->method('POST')
                        ->options([
                                      'query' => [
                                          'PhoneNumbers' => '13000000000',
                                          'SignName'     => '阿里云',
                                          'TemplateCode' => 'SMS_0000001',
                                          'TemplateParam' => '{"code":"123456"}'
                                      ],
                                  ])
                        ->request();
                        
// 将发送结果保存到数据库中
if ($result['Code'] == 'OK') {
  // 发送成功
  $resultCode = 'success';
  $resultMsg = '短信发送成功';
} else {
  // 发送失败
  $resultCode = 'fail';
  $resultMsg = $result['Message'];
}

// 将发送结果保存到数据库
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'your_username', 'your_password');
$stmt = $pdo->prepare("INSERT INTO sms_logs (phone_number, template_code, content, result_code, result_msg) 
                      VALUES (:phone_number, :template_code, :content, :result_code, :result_msg)");
$stmt->execute([
    'phone_number'  => '13000000000',
    'template_code' => 'SMS_0000001',
    'content'       => '您的验证码是123456',
    'result_code'   => $resultCode,
    'result_msg'    => $resultMsg
]);
Copier après la connexion

Grâce au code ci-dessus, nous enregistrons les messages texte envoyés et envoyons les résultats dans la base de données pour faciliter les requêtes et la gestion ultérieures.

Conclusion : 
En connectant PHP à l'interface SMS d'Alibaba Cloud, nous pouvons implémenter de manière rapide et fiable la fonction d'envoi de messages SMS. Dans le même temps, en concevant correctement le mécanisme d'envoi de SMS et le canal de message, nous pouvons mieux gérer l'état de l'envoi de SMS et enregistrer les journaux d'opérations associés, nous offrant ainsi de meilleurs services SMS. J'espère que cet article pourra être utile au travail de développement de l'utilisation de l'interface SMS PHP et Alibaba Cloud pour envoyer des messages SMS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!