ホームページ > バックエンド開発 > PHPチュートリアル > phpはテキストメッセージの送信を実装します

phpはテキストメッセージの送信を実装します

小云云
リリース: 2023-03-22 10:16:01
オリジナル
14402 人が閲覧しました

この記事では、php を使用して SMS 認証コードを送信する操作を公開します。モバイル アプリでアカウントを登録するときに、クリックして認証コードを送信すると、「」というメッセージが表示されると思いますか。数秒以内に「ピー」という音が鳴り、確認コードが携帯電話に送信されます。これはすごいことだと思いますか?

1. ビジネスではログインと登録 API インターフェイスを記述する必要があるため、携帯電話番号登録のフロントエンドとバックエンドの対話プロセスについて学びました (1) ユーザーは、クライアントをクリックして確認コードを送信します (その後、顧客は最後に ajax を使用してリクエストを送信し、ボタンは 60 秒のサイレントタイムになります)

(2) バックエンドのロジック層は、渡された携帯電話番号を受け入れ、検証します形式が正当かどうかを確認し、データベースに入力して一致が存在するかどうかを確認します

(3) 検証コードを生成し、セッションが存在し、その後、curl がサードパーティの SMS インターフェイス リンクに送信されます

(4) サードパーティの SMS インターフェイス リンクを設定します指定された携帯電話番号を持つユーザーに確認コード情報を送信するパーティー SMS プラットフォーム

2. 今日は主にサードパーティ プラットフォームの構成とバックグラウンド処理のロジックについて説明します

3. -party プラットフォームは次のとおりです: (他のプラットフォームを選択することもできます。原則はほぼ同様です)

(1) Saidi Cloud Communication ( https://www.mysubmail .com )(2) 登録、実名認証、製品とサービスを入力し、新しいテンプレートを作成します。そのテンプレートの構文はサポート ドキュメントで確認できます

(3) [Create/Manage AppIdD] 列に移動し、プロジェクトを作成して有効にし、デフォルトの「APPID」と「APPKEY」



(4) ホームページに移動し、「View API Development Documentation」リンクをクリックして、POST リクエストへのリンクを取得します:

https ://api.mysubmail.com/message/xsend


4.
バックエンドロジック開発:

コア: 検証コードを作成する -> POST リクエスト関数をカプセル化する -> 検証コードをサードパーティによってユーザーの携帯電話に転送する


* Sina ブログ以降マークダウンはサポートされていません。コア コードと大きな落とし穴が発生した場所のみを投稿します:


(1) 検証コードをサードパーティ プラットフォームに送信します: (落とし穴はありません。ロジックは書き留められています)とてもスムーズです

)

private function sendMessage()
 {
        $appId = "xxxxx";
        $appKey = "36426a9xxxxxxxxxxxx7bed8583a3c";
        $code = $this->makeCode(6);

        $data = [
            "appid" => $appId,
            "to" => $this->phone,
            "project" => "FoJ494",
            "vars" => '{"code":' . $code . ',"time":"60"}',
            "signature" => $appKey,
        ];

        $res = $this->httpRequest($data);

        var_dump($res);
}
ログイン後にコピー

(2) 認証コード データをサードパーティ プラットフォームに送信するためのリンクをリクエストします (ここに大きな落とし穴があります

)

-- さて、普通に書き留めてみましょう:

private function httpRequest($data)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $this->RequestUrl);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    if (isset($data)) {
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }

    $res = curl_exec($curl);
    var_dump(curl_error($curl)); //打印请求错误
    curl_close($curl);
    return $res;
}
ログイン後にコピー

次にレポートします。エラー:

'SSL 証明書の問題: ローカル発行者証明書を取得できません'。心配しないで、公式チャネルに従って操作を続行してください:

--- https://curl.haxx.se/ に移動します。 docs/caextract.html を使用して cacert.pem をダウンロードします

--- 次に、cacert.pem を php ディレクトリに貼り付けてから、php.ini に移動して「;curl.cainfo」を見つけて変更します。 to:

curl.cainfo = "C:/wamp/bin/php/php7.0.10/ cacert.pem"、わかりました、役に立ちません

、引き続きエラーを報告してください !

--- その後、解決策を探し続けます。次に、オンライン情報に従って、その下の「;openssl.cafile」を次のように変更します: openssl.cafile= "C:/wamp/bin/php/php7.0.10/cacert.pem" 、わかりました、=_=! エラーを報告し続けると、私の心はもうボロボロになってしまいます。

--- それから、二重引用符を削除したり、一重引用符を追加したり、引用符を削除したりしてみましたが、私の心は凍り始めました。まだSSL証明書エラーです! !

--- 私の後ろで、私は水がよどんだような気分で Google でサーフィンを続けましたが、何度も何度もビーチに押し戻され、打ち身と打ち身があり、お腹が空いて喉が渇きました。

--- ついに、ついに、ついに、クソ! ! ! 試してみました~~~

(3) 解決策:

curl_exec() の前に追加します: (cacert.pem ファイルを現在のディレクトリにコピーします。他のパスも使用できます)

 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
   curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); 
   curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
ログイン後にコピー

5. 最終的な効果。 :



関連する推奨事項:

SMS Treasureを使用してテキストメッセージを送信するためのphpメソッド

テキストメッセージを送信するためのカウントダウン関数を実装するためのjQuery

phpは登録機能を完了するためにSMS認証コードを送信します

以上がphpはテキストメッセージの送信を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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