PC Web サイトを構築しているときに、登録ユーザーが SMS 認証を使用する必要がある機能に遭遇したことはありませんか?または、パスワードの取得、ユーザー情報の確認などを行います。今日、ThinkPHP は Alibaba Dayu SMS 認証を統合した ThinkPHP の機能を提供します。
まず最初に、SMS 送信の原理を理解する必要があります。実際、私たちが使用するのはサードパーティの通信 SMS プロトコルであり、その後、ランダムに生成された確認コードがユーザーの携帯電話に送信されます。送信してください。検証のために対応する情報を保存します。次に、この機能の操作方法を段階的に説明します。
(1) SMSメッセージを保存するためのデータテーブルを構築します
(2) もちろん、このクラス ファイルはプラットフォームからダウンロードできます。その後、それを thinkphp に統合することを忘れないでください。名前空間をクラス ライブラリに追加するときに宣言してください。
(3) 設定ファイルにいくつかの補助変数を設定します
(4) このステップでは、論理演算を書き始めます
$_POST['電話'] = "18522713XXX";
$tel = $_POST['tel'];
$w['tel'] = $tel;
$res1 = D("レコード")->where($w)->find();
//チャンスは1日に3回まで(検証)
$gap = time()-$res1['ctime'];
if($gap>=86400){
$data['time'] = 0;
D("レコード")->where($w)->save($data);
}
$res1 = D("レコード")->where($w)->find();
if($res1['time']>=3){
echo "SMS 制限!";
}その他{
//ランダムに送信された認証コードの値
$num = ランド(1000, 9999);
// オブジェクトをインスタンス化します
$ecd = 新しい Ecd(C('url'), C('app_key'),
C('app_secret'), C('format'));
//認証コードをSMSで送信
//最初のパラメータは携帯電話番号、2 番目はアプリケーション管理で利用できるテンプレート ID です
テンプレートの管理、3 番目は送信されるランダムな確認コード、3 番目は
4番目は注文番号ですが、記入しないでください
$res = $ecd->send_sms_code("$tel", '1', "$num", '');
$arr = json_decode($res, true);
if ($arr['result'] == 0 && $arr['msg'] == "成功") {
$w['tel'] = $tel;
$res1 = D("レコード")->where($w)->find();
if ($res1) {
$data['vc'] = $num;
$data['time'] = $res1['time'] + 1;
$data['ctime'] = 時間();
$res2 = D("レコード")->where($w)->save($data);
if ($res2) {
echo "正常に送信されました";
} その他 {
echo "送信に失敗しました";
}
} その他 {
$data['tel'] = $tel;
$data['vc'] = $num;
$data['時間'] = 1;
$data['ctime'] = 時間();
$res3 = D("レコード")->add($data);
if ($res3) {
echo "正常に送信されました";
} その他 {
echo "送信に失敗しました";
}
}
}
}
(5) つまり、テキスト メッセージを受信した後、ユーザーが送信すると、ユーザーの携帯電話番号に基づいて関連する認証コードがチェックされます。
友人が注意すべきもう 1 つの点は、Alibaba Dayu の認証されていないユーザーはホワイトリスト内のユーザーにのみテキスト メッセージを送信できるため、送信が確実に成功するようにホワイトリストを構成する必要があることです。また、初回お申込みの場合は無料お試しアイテムが100個あります!