Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die SMS-Bestätigungscodefunktion mit PHP

So implementieren Sie die SMS-Bestätigungscodefunktion mit PHP

PHPz
PHPzOriginal
2023-09-05 15:51:222070Durchsuche

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

So verwenden Sie PHP, um die SMS-Bestätigungscode-Funktion zu implementieren

SMS-Bestätigungscode ist heutzutage eine häufig verwendete Methode zur Identitätsüberprüfung. Unabhängig davon, ob es sich um die Registrierung eines Kontos, das Abrufen eines Passworts oder die Durchführung einer Zahlung handelt, spielt der SMS-Bestätigungscode eine wichtige Rolle Rolle spielt eine wichtige Rolle. Es ist relativ einfach, die SMS-Verifizierungscodefunktion für Mobiltelefone mit PHP zu implementieren. Im Folgenden werden die Implementierungsschritte im Detail vorgestellt und Codebeispiele als Referenz bereitgestellt.

1. Erhalten Sie die Konfigurationsinformationen der SMS-Schnittstelle

Bevor wir die SMS-Bestätigungscode-Funktion implementieren, müssen wir ein Konto eines SMS-Schnittstellenanbieters wie Alibaba Cloud, Tencent Cloud usw. erhalten und dann entsprechend Vom Schnittstellenanbieter bereitgestellte Dokumente oder Tutorial, um Konfigurationsinformationen zu erhalten. Die folgenden Informationen müssen normalerweise konfiguriert werden:

  1. URL der SMS-API: die Schnittstellenadresse, die zum Senden von SMS-Nachrichten verwendet wird.
  2. Zugriffsschlüssel-ID und Zugriffsschlüsselgeheimnis: Schlüssel, die zur Authentifizierung und Identitätsauthentifizierung verwendet werden.
  3. Signatur: Die Absenderidentifikation, die in der Textnachricht angezeigt wird, z. B. „[Firmenname]“.

Nach Erhalt der Konfigurationsinformationen können wir mit dem Schreiben von Code zur Implementierung der SMS-Bestätigungscodefunktion beginnen.

2. Verwenden Sie PHP, um einen SMS-Bestätigungscode zu senden

}


//Aufruffunktion zum Senden eines SMS-Bestätigungscodes
$phoneNumber = 'Mobiltelefonnummer';

$code = sendSmsCode($phoneNumber);

if ($code) {

// 短信 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;
}

} else {

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

}
?> ;

Der obige Code ist ein einfaches Beispiel für das Senden eines SMS-Bestätigungscodes, bei dem die entsprechenden Konfigurationsinformationen entsprechend der tatsächlichen Situation ersetzt werden müssen. Bei der tatsächlichen Verwendung wird empfohlen, die Konfigurationsinformationen in einer Konfigurationsdatei zu speichern, um die Verwaltung und Änderung zu erleichtern.

Zusammenfassung

Durch die obigen Schritte können wir PHP verwenden, um die SMS-Bestätigungscodefunktion zu implementieren. Wenn ein Benutzer einen Bestätigungscode anfordert, senden wir eine Textnachricht über die API des Schnittstellenanbieters und senden den Bestätigungscode an den Benutzer zurück. Nachdem der Benutzer den Bestätigungscode eingegeben hat, kann der Server ihn überprüfen, um die Identität des Benutzers und die Legitimität des Vorgangs sicherzustellen. In tatsächlichen Projekten können wir je nach Bedarf erweitern, z. B. die Ablaufzeit von SMS-Bestätigungscodes hinzufügen, häufiges Senden verhindern usw., um eine bessere Benutzererfahrung und Sicherheit zu bieten.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die SMS-Bestätigungscodefunktion mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn