Avec le développement rapide de l'Internet mobile, la communication par SMS est devenue un moyen très important pour communiquer dans la vie quotidienne. Dans de nombreux scénarios, nous devons utiliser la fonction d'envoi de SMS pour les codes de vérification, le marketing et d'autres opérations. Dans le framework ThinkPHP6, nous pouvons facilement implémenter des opérations d'envoi de SMS grâce à une configuration et des appels simples.
Tout d'abord, nous devons configurer la plateforme SMS dans sms.php dans le répertoire config du fichier de configuration. Nous prenons ici comme exemple le service SMS Alibaba Cloud. Dans le fichier de configuration, vous devez configurer l'AccessKey ID, l'AccessKey Secret, la signature et le modèle de la plateforme SMS. Le code spécifique est le suivant :
<?php return [ 'aliyun' => [ 'access_key_id' => '填写AccessKey', 'access_key_secret' => '填写AccessKey Secret', 'sign_name' => '填写短信签名', 'template_code' => [ 'verify' => '填写短信模板CODE', ] ], ];
Ensuite, nous devons installer le package d'extension du SDK. Étant donné que le service Alibaba Cloud SMS nécessite le SDK Alibaba Cloud pour la prise en charge de PHP, nous devons l'installer via Composer. Entrez la commande suivante dans la ligne de commande :
composer require alibabacloud/sdk
Après une installation réussie, nous pouvons commencer à appeler la fonction d'envoi de SMS. Dans le contrôleur, nous pouvons implémenter l'envoi de SMS via le code suivant :
<?php namespace appcontroller; use AlibabaCloudClientAlibabaCloud; use AlibabaCloudClientExceptionClientException; use AlibabaCloudClientExceptionServerException; use thinkacadeConfig; class Sms { /** * 发送短信验证码 * @param string $mobile 手机号码 * @param string $code 验证码 * @return bool 是否发送成功 */ public function sendVerifySms($mobile, $code) { //获取配置信息 $config = Config::get('sms.aliyun'); //设置短信模板参数 $templateParam = [ 'code' => $code ]; try { //调用阿里云短信发送接口 $result = AlibabaCloud::rpc() ->product('Dysmsapi') //可根据实际情况选择不同的服务地区 ->regionId('cn-hangzhou') ->version('2017-05-25') ->action('SendSms') ->method('POST') ->host('dysmsapi.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => 'cn-hangzhou', 'PhoneNumbers' => $mobile, 'SignName' => $config['sign_name'], 'TemplateCode' => $config['template_code']['verify'], 'TemplateParam' => json_encode($templateParam), ], ]) ->request(); //判断短信发送状态 if ($result->toArray()['Code'] == 'OK') { return true; } else { return false; } } catch (ClientException $e) { return false; } catch (ServerException $e) { return false; } } }
Dans le code ci-dessus, nous lisons d'abord les informations de configuration de la plateforme SMS à partir du fichier de configuration, puis définissons les paramètres du modèle SMS et enfin appelons Alibaba Cloud. Interface d'envoi de SMS. Pendant le processus d'appel d'interface, nous devons définir le numéro de téléphone mobile, la signature SMS, le CODE du modèle SMS, les paramètres du modèle SMS et d'autres informations. Une fois l'interface appelée avec succès, nous pouvons déterminer si le message texte a été envoyé avec succès en jugeant le code d'état renvoyé.
En résumé, la mise en œuvre de la fonction d'envoi de SMS dans le framework ThinkPHP6 est relativement simple, ne nécessitant qu'une configuration et des appels simples. Pendant l'utilisation, vous devez faire attention à la protection des informations privées telles que AccessKey et AccessKey Secret. Dans le même temps, lorsque vous appelez l'interface, vous devez également faire attention à la gestion des exceptions pour éviter les exceptions du programme dues à l'échec de l'appel de l'interface.
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!