Maison cadre php Laravel Comment utiliser Laravel pour envoyer et recevoir des messages texte

Comment utiliser Laravel pour envoyer et recevoir des messages texte

Nov 03, 2023 pm 04:40 PM
laravel 短信发送 Réception de SMS

Comment utiliser Laravel pour envoyer et recevoir des messages texte

Comment utiliser Laravel pour implémenter les fonctions d'envoi et de réception de SMS nécessite des exemples de code spécifiques

Laravel est un framework PHP populaire à travers lequel diverses fonctions peuvent être facilement implémentées, notamment l'envoi et la réception de SMS. Cet article expliquera comment utiliser le framework Laravel pour implémenter les fonctions d'envoi et de réception de SMS, et fournira des exemples de code correspondants.

1. Implémentation de la fonction d'envoi de SMS

  1. Configuration du fournisseur de services SMS

Pour envoyer des SMS, vous devez d'abord configurer le fournisseur de services SMS. Les fournisseurs de services SMS courants incluent Alibaba Cloud, Tencent Cloud, etc. Nous prenons ici Alibaba Cloud SMS comme exemple.

Ajoutez la configuration suivante dans le fichier .env :

ALIYUN_ACCESS_KEY_ID=your_access_key_id
ALIYUN_ACCESS_KEY_SECRET=your_access_key_secret
ALIYUN_SMS_SIGN_NAME=your_sms_sign_name
ALIYUN_SMS_TEMPLATE_CODE=your_sms_template_code
Copier après la connexion

Remplacez your_access_key_id et your_access_key_secret par votre ID Alibaba Cloud AccessKey et AccessKey Secret remplacez your_sms_sign_name Remplacez < ; /code> par le nom de votre signature SMS ; remplacez <code>your_sms_template_code par le code de votre modèle SMS. your_access_key_idyour_access_key_secret替换为你的阿里云的AccessKey ID和AccessKey Secret;将your_sms_sign_name替换为你的短信签名名称;将your_sms_template_code替换为你的短信模板代码。

  1. 创建发送短信的方法

在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use AlibabaCloudClientAlibabaCloud;
use AlibabaCloudClientExceptionClientException;
use AlibabaCloudClientExceptionServerException;
 
class SmsController extends Controller
{
    public function sendSms(Request $request)
    {
        $phoneNumber = $request->input('phone_number');
        $code = $request->input('code');
 
        AlibabaCloud::accessKeyClient(
            config('app.aliyun_access_key_id'),
            config('app.aliyun_access_key_secret')
        )
        ->regionId('cn-hangzhou')
        ->asDefaultClient();
 
        try {
            $result = AlibabaCloud::rpc()
                                ->product('Dysmsapi')
                                ->host('dysmsapi.aliyuncs.com')
                                ->version('2017-05-25')
                                ->action('SendSms')
                                ->method('POST')
                                ->options([
                                    'query' => [
                                        'PhoneNumbers' => $phoneNumber,
                                        'SignName' => config('app.aliyun_sms_sign_name'),
                                        'TemplateCode' => config('app.aliyun_sms_template_code'),
                                        'TemplateParam' => json_encode([
                                            'code' => $code,
                                        ]),
                                    ],
                                ])
                                ->request();
 
            return response()->json([
                'message' => 'SMS sent successfully',
                'result' => $result->toArray(),
            ]);
        } catch (ClientException $e) {
            return response()->json([
                'message' => 'Client exception occurred',
                'error' => $e->getErrorMessage(),
            ], 500);
        } catch (ServerException $e) {
            return response()->json([
                'message' => 'Server exception occurred',
                'error' => $e->getErrorMessage(),
            ], 500);
        }
    }
}
Copier après la connexion
  1. 配置路由

在routes/web.php文件中添加以下代码:

Route::post('/sms/send', 'SmsController@sendSms');
Copier après la connexion
  1. 发送短信

可以通过发送POST请求到/sms/send路由来发送短信。请求参数中需要包含phone_numbercode参数。例如,可以使用Postman工具发送以下请求:

POST /sms/send HTTP/1.1
Host: your-domain.com
Content-Type: application/json
Authorization: Bearer your-token
Content-Length: 68
 
{
    "phone_number": "your-phone-number",
    "code": "123456"
}
Copier après la connexion

以上示例中,将your-domain.com替换为你的域名,your-token替换为你的认证令牌,your-phone-number替换为要接收短信的手机号。

二、短信接收功能的实现

要实现短信接收功能,可以使用第三方短信平台提供的API接口。这里以云片网为例进行讲解。

  1. 注册云片网账号

首先需要在云片网上注册账号,然后登录并获取API key。

  1. 创建接收短信的方法

在app/Http/Controllers目录下创建SmsController.php文件,并添加以下代码:

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use IlluminateSupportFacadesHttp;
 
class SmsController extends Controller
{
    public function receiveSms(Request $request)
    {
        $content = $request->input('content');
        $phoneNumber = $request->input('phone_number');
 
        // 处理短信内容的逻辑
 
        // 返回响应
        return response('success');
    }
}
Copier après la connexion
  1. 配置路由

在routes/web.php文件中添加以下代码:

Route::post('/sms/receive', 'SmsController@receiveSms');
Copier après la connexion
  1. 接收短信

可以通过发送POST请求到/sms/receive路由来接收短信。请求参数中需要包含contentphone_number

    Créez une méthode pour envoyer des SMS

    Créez le fichier SmsController.php dans le répertoire app/Http/Controllers et ajoutez le code suivant :

    rrreee
      🎜 Configurer le routage 🎜🎜🎜Ajoutez le code suivant dans le fichier routes/web.php : 🎜rrreee
        🎜Envoi de SMS 🎜🎜🎜 peut être effectué en envoyant une requête POST au /sms/send route envoyant un message texte. Les paramètres de la demande doivent inclure les paramètres phone_number et code. Par exemple, vous pouvez utiliser l'outil Postman pour envoyer la requête suivante : 🎜rrreee🎜Dans l'exemple ci-dessus, remplacez votre-domaine.com par votre nom de domaine et votre-token avec votre jeton d'authentification, remplacez votre-numéro-de-téléphone par le numéro de téléphone mobile pour recevoir des SMS. 🎜🎜2. Implémentation de la fonction de réception de SMS 🎜🎜Pour implémenter la fonction de réception de SMS, vous pouvez utiliser l'interface API fournie par la plateforme SMS tierce. Ici, nous prenons Yunpian.com comme exemple pour expliquer. 🎜🎜🎜Enregistrer un compte Yunpian.com🎜🎜🎜Vous devez d'abord créer un compte sur Yunpian.com, puis vous connecter et obtenir la clé API. 🎜
          🎜Créez une méthode pour recevoir des SMS 🎜🎜🎜Créez le fichier SmsController.php dans le répertoire app/Http/Controllers et ajoutez le code suivant : 🎜rrreee
            🎜 Configurer le routage 🎜🎜🎜Ajoutez le code suivant dans le fichier routes/web.php : 🎜rrreee
              🎜La réception de SMS 🎜🎜🎜 peut se faire en envoyant une requête POST au /sms/ recevoir itinéraire Recevoir des messages texte. Les paramètres de la demande doivent inclure les paramètres content et phone_number. La logique spécifique de traitement du contenu SMS doit être rédigée conformément au document d'interface. 🎜🎜Par exemple, le contenu du message texte reçu peut être traité en appelant l'interface API tierce. 🎜🎜Ci-dessus sont les méthodes spécifiques et les exemples de code d'utilisation du framework Laravel pour implémenter la fonction d'envoi et de réception de messages texte. Vous pouvez le modifier et l'étendre selon vos besoins réels. J'espère que cela aide! 🎜

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

Laravel - Serveur de vidage Laravel - Serveur de vidage Aug 27, 2024 am 10:51 AM

Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

Laravel – URL de l'action Laravel – URL de l'action Aug 27, 2024 am 10:51 AM

Laravel - URL d'action - Laravel 5.7 introduit une nouvelle fonctionnalité appelée « URL d'action appelable ». Cette fonctionnalité est similaire à celle de Laravel 5.6 qui accepte la méthode string in action. L'objectif principal de la nouvelle syntaxe introduite par Laravel 5.7 est de diriger

See all articles