SMS プラットフォームを介して SMS 認証コード機能を実装する PHP メソッド

WBOY
リリース: 2023-05-22 08:58:01
オリジナル
1209 人が閲覧しました

モバイル インターネットと携帯電話の普及に伴い、SMS 検証コードはセキュリティ検証の重要な手段となっています。 Web サイトの登録、ログイン、パスワードの取得などの操作中に、ユーザーは多くの場合、操作を完了するために受信した SMS 認証コードを入力する必要があります。今回は、PHP を使用して SMS プラットフォームを通じて SMS 認証コード機能を実装する方法を詳しく紹介します。

1. SMS プラットフォームの選択

PHP SMS 確認コード機能を有効にする前に、まず SMS プラットフォームを選択する必要があります。市場には、YimeiSoftStone、Ronglian Cloud Communications、Yunpian.com など、選択できる SMS プラットフォームが多数あります。

  1. 安定性

SMS プラットフォームの安定性は非常に重要であり、SMS の送信に失敗するなどの問題が発生した場合は、プラットフォームを選択する必要があります。メッセージや遅延が頻繁に発生し、ユーザーに非常に悪いエクスペリエンスをもたらし、ユーザー エクスペリエンスに影響を与えることもあります。

  1. 価格

さまざまな SMS プラットフォームの価格は大きく異なるため、独自のニーズと予算に応じて選択する必要があります。一般に、独自の独立した SMS 送信チャネルを持つプラットフォームは高価ですが、安定性と送信成功率はより高いことがよくあります。

  1. サポートされる機能

SMS プラットフォームによってサポートされる機能は異なります。一部のプラットフォームでは、SMS 確認コードやマーケティング SMS を簡単に実装できる強力な API インターフェイスを提供できます。、音声確認コードなどの機能がある場合、一部のプラットフォームでは単純な SMS 送信インターフェイスのみを提供します。

テキスト メッセージング プラットフォームを選択する場合は、実際の状況に基づいて上記の要素を考慮し、自分に合ったプラットフォームを選択する必要があります。

2. アカウントを登録して API キーを取得する

SMS プラットフォームを選択した後、プラットフォームにアカウントを登録し、API キーを取得する必要があります。 PHP コードのプラットフォーム、インターフェイス。

アカウントを登録するプロセスでは、会社名、証明書などの関連する会社情報を提供する必要があります。次に、SMS 認証コードを確認するか、他の方法を使用して ID 認証を行って、アカウントの登録を完了する必要があります。

アカウント登録が完了したら、プラットフォーム上で対応するアプリケーションを作成する必要があります。アプリケーションの作成プロセスでは、通常、アプリケーション名、アプリケーションの説明、SMS 署名などの情報を入力する必要があります。バックグラウンドでAPIキーを取得するには申請する必要があります。

3. バックグラウンドで SMS 送信インターフェイスを呼び出す

API キーを取得した後、バックグラウンドで PHP コードを記述し、SMS プラットフォームが提供するインターフェイスを呼び出して SMS 検証を実装できます。コード送信機能。 Yunpian.com を例として、具体的な実装方法を次に示します。

  1. PHP CURL ライブラリのインストール

PHP は、HTTP リクエストを送信するために CURL ライブラリを使用する必要があります。インストールされていない場合は、まずインストールする必要があります。

  1. SMS 検証コードを送信する関数を作成する

SMS 検証コードを送信する関数を作成し、それをクラスにカプセル化して、プログラム内での再利用を容易にします。以下はサンプル コードです。 コード内の

<?php

class SmsHelper{
  private static $apiUrl = 'https://sms.yunpian.com/v2/sms/single_send.json'; //短信发送接口地址
  private static $apiKey = 'xxxx'; //API 密钥,需要替换成自己的

  /**
   * 发送短信验证码
   * @param $mobile 手机号码
   * @param $code   验证码
   * @return bool
   */
  public static function sendVerifyCode($mobile, $code){
    $postData = [
      'apikey' => self::$apiKey,
      'mobile' => $mobile,
      'text'   => '【签名】您的验证码是'.$code.'。'
    ];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, self::$apiUrl);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData, '', '&'));
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不校验 SSL 证书
    $result = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    if($result === false || !empty($error)) return false;

    $json = @json_decode($result, true);
    if(!is_array($json)) return false;

    return !empty($json['code']) && $json['code'] == 0;
  }
}
ログイン後にコピー

$apiUrl と $apiKey は、それぞれ SMS プラットフォームによって提供される SMS 送信インターフェイス アドレスと API キーであり、SMS プラットフォームによって提供される値に置き換える必要があります。あなた自身のプラットフォーム。 SMS 認証コードを送信する関数では、携帯電話番号と認証コードの 2 つのパラメーターを渡す必要があります。成功した場合は true を返し、失敗した場合は false を返します。

4. フロントエンド ページに確認コード関数を実装する

バックグラウンドで SMS プラットフォームの API を呼び出して SMS 確認コードを送信した後、バックグラウンドも呼び出す必要があります。フロントエンド ページのインターフェイスにアクセスして、検証コードの送信と検証を完了します。

認証コードを送信する方法は、通常、ページ上で携帯電話番号を送信し、バックグラウンドで上記の SMS 認証コードを送信する関数を呼び出して認証コードを送信します。検証コードの検証はページ上で実装でき、ユーザーが検証コードを入力すると、検証のために AJAX を通じてバックグラウンド インターフェイスが呼び出され、対応するプロンプト情報が表示されます。

検証コードを検証するときは、悪意のあるスワイプの防止とエラーの数の制限に注意する必要があります。これを防ぐには、SMS 認証コードの有効期間、一度に送信する認証コードの最大数、および IP アクセス制限を設定します。

5. 概要

この記事の導入部を通じて、PHP を使用して SMS プラットフォームを通じて SMS 確認コード機能を実装する方法を詳しく学びました。もちろん、これは実装方法の 1 つにすぎず、SMS SDK を使用する、SMS ゲートウェイを呼び出すなど、他のオプションから選択することもできます。実際のプロジェクトでは、実際のニーズと予算を総合的に考慮して、適切なソリューションを選択する必要があります。

以上がSMS プラットフォームを介して SMS 認証コード機能を実装する PHP メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート