Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour implémenter la fonction de code de vérification SMS

Comment utiliser PHP pour implémenter la fonction de code de vérification SMS

PHPz
PHPzoriginal
2023-09-05 15:51:222070parcourir

如何使用 PHP 实现手机短信验证码功能

Comment utiliser PHP pour implémenter la fonction de code de vérification SMS

Le code de vérification SMS est désormais une méthode de vérification d'identité couramment utilisée. Qu'il s'agisse d'enregistrer un compte, de récupérer un mot de passe ou d'effectuer un paiement, le code de vérification SMS joue un rôle. rôle joue un rôle important. Il est relativement simple d'implémenter la fonction de code de vérification SMS du téléphone mobile à l'aide de PHP. Ce qui suit présente les étapes d'implémentation en détail et fournit des exemples de code pour référence.

1. Obtenez les informations de configuration de l'interface SMS

Avant de mettre en œuvre la fonction de code de vérification SMS, nous devons obtenir un compte d'un fournisseur d'interface SMS, tel qu'Alibaba Cloud, Tencent Cloud, etc., puis selon le documents fournis par le fournisseur d'interface ou Tutoriel pour obtenir des informations de configuration. Les informations suivantes doivent généralement être configurées :

  1. URL de l'API SMS : l'adresse de l'interface utilisée pour envoyer des messages SMS.
  2. Access Key ID et Access Key Secret : clés utilisées pour l'authentification et l'authentification de l'identité.
  3. Signature : l'identification de l'expéditeur utilisée pour s'afficher dans le message texte, telle que "[Nom de l'entreprise]".

Après avoir obtenu les informations de configuration, nous pouvons commencer à écrire du code pour implémenter la fonction de code de vérification SMS.

2. Utilisez PHP pour envoyer le code de vérification par SMS

//Introduce PHP SDK
require_once 'aliyun-php-sdk-core/Config.php';

function sendSmsCode($phoneNumber) {

// 短信 API 的 URL
$url = 'http://XXXXX';

// Access Key ID 和 Access Key Secret
$accessKeyId = 'XXXXX';
$accessKeySecret = 'XXXXX';

// 签名
$signName = '【公司名】';

// 生成6位随机验证码
$code = rand(100000, 999999);

// 短信模板
$templateCode = 'SMS_XXXXX';
$templateParam = array(
    'code' => $code,
);

$params = array(
    'AccessKeyId' => $accessKeyId,
    'Action' => 'SendSms',
    'Format' => 'JSON',
    'PhoneNumbers' => $phoneNumber,
    'SignName' => $signName,
    'TemplateCode' => $templateCode,
    'TemplateParam' => json_encode($templateParam),
    'Timestamp' => gmdate("Y-m-dTH:i:sZ"),
    'Version' => '2017-05-25',
    'SignatureMethod' => 'HMAC-SHA1',
    'SignatureNonce' => uniqid(),
    'SignatureVersion' => '1.0',
);

ksort($params);

$canonicalizedQueryString = '';
foreach ($params as $key => $value) {
    $canonicalizedQueryString .= '&' . rawurlencode($key) . '=' . rawurlencode($value);
}

$stringToSign = 'GET' . '&%2F&' . rawurlencode(substr($canonicalizedQueryString, 1));

$signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true));

$url .= '?' . $canonicalizedQueryString . '&Signature=' . rawurlencode($signature);

// 发送短信
$result = file_get_contents($url);

// 解析短信发送结果
$resultObject = json_decode($result, true);
if ($resultObject['Code'] == 'OK') {
    // 短信发送成功
    return $code;
} else {
    // 短信发送失败
    return false;
}

}

// Appelez la fonction pour envoyer le code de vérification par SMS
$phoneNumber = 'Mobile phone number';
$code = sendSmsCode($phoneNumber);
if ($code) {

echo '验证码已发送至手机号' . $phoneNumber . ',请查收';

} else {

echo '验证码发送失败,请稍后再试';

}
?> ;

Le code ci-dessus est un exemple simple d'envoi d'un code de vérification SMS, dans lequel les informations de configuration correspondantes doivent être remplacées en fonction de la situation réelle. En utilisation réelle, il est recommandé de stocker les informations de configuration dans un fichier de configuration pour faciliter la gestion et la modification.

Résumé

Grâce aux étapes ci-dessus, nous pouvons utiliser PHP pour implémenter la fonction de code de vérification SMS. Lorsqu'un utilisateur demande un code de vérification, nous envoyons un message texte via l'API du fournisseur d'interface et renvoyons le code de vérification à l'utilisateur. Une fois que l'utilisateur a saisi le code de vérification, le serveur peut le vérifier pour garantir l'identité de l'utilisateur et la légitimité de l'opération. Dans les projets réels, nous pouvons nous développer en fonction des besoins, comme l'ajout du délai d'expiration des codes de vérification SMS, la prévention des envois fréquents, etc., pour offrir une meilleure expérience utilisateur et une meilleure sécurité.

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:
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