Maison >développement back-end >tutoriel php >php implémente l'envoi de messages texte
Dans cet article, nous allons vous révéler le fonctionnement de l'utilisation de php pour envoyer des codes de vérification par SMS. Avez-vous l'impression que lorsque vous aviez l'habitude de créer un compte sur une application mobile, lorsque vous cliquiez pour envoyer le code de vérification, cela se produisait. cela prendrait quelques secondes" Avec un bip, le code de vérification est envoyé à votre téléphone. Pensez-vous que c'est incroyable ?
1. Étant donné que l'entreprise doit écrire l'interface API pour la connexion et l'enregistrement, j'ai découvert le processus d'interaction front-end et back-end de l'enregistrement du numéro de téléphone mobile ;
(1) L'utilisateur clique sur le client pour envoyer le code de vérification, (puis le client envoie une requête ajax, et le bouton est en temps silencieux de 60 secondes)
(2) Le dos -la couche logique de fin accepte le numéro de téléphone mobile transmis et vérifie si le format est légal, entrez dans la base de données pour vérifier si elle existe
(3) Générez un code de vérification, stockez-le dans la session, puis envoyez curl vers le lien de l'interface SMS tierce
(4) Configurez la plateforme SMS tierce, envoyez les informations du code de vérification aux utilisateurs avec des numéros de téléphone mobile désignés
2. Aujourd'hui, nous expliquons principalement la configuration de la plateforme tierce et la logique du traitement en arrière-plan
3 La plateforme tierce sélectionnée est : (Vous pouvez également choisir d'autres plateformes, la. les principes sont presque similaires)
(1) Saidi Cloud Communication ( https://www.mysubmail.com )(2) S'inscrire, authentification par nom réel, saisir des produits et services, créer un nouveau modèle, et sa syntaxe de modèle peut être consultée dans sa documentation de support (3) Accédez à la colonne « Créer/Gérer AppIdD », créez et activez le projet, et puis générez les "APPID" et "APPKEY" par défaut4. Développement de la logique backend :
Core : Créer un code de vérification-> Encapsuler la fonction de requête POST -> Envoyer le code de vérification à une plateforme tierce -> Puis le transmettre au téléphone mobile de l'utilisateur par le tiers
* Le blog Sina ne prenant pas en charge les démarques, je poste uniquement le code principal et les endroits où j'ai rencontré de gros pièges :
(1) Envoyer le code de vérification à la plateforme tierce : (Pas d'embûches, la logique s'écrit très bien )
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) Demande un lien pour envoyer les données du code de vérification à la plateforme tierce (ici Il y a un énorme piège )
-- Bon, écrivons-le normalement :
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; }
puis signalez une erreur : 'Problème de certificat SSL : impossible d'obtenir le certificat de l'émetteur local' , alors ne vous inquiétez pas, continuez à suivre les canaux officiels :
--- Allez sur https : //curl.haxx.se/docs/caextract.html pour télécharger cacert.pem
--- Collez ensuite le cacert.pem en bas dans le répertoire php, puis allez dans php .ini et trouvez : ";curl.cainfo", et modifiez-le en :
curl.cainfo = "C:/wamp/bin/php/php7.0.10/cacert.pem", d'accord, c'est inutile , continuez à signaler l'erreur !
--- Continuez ensuite Trouvez la solution, puis selon les informations en ligne, remplacez le ";openssl.cafile" en dessous par : openssl.cafile= "C:/wamp/bin/php/php7.0.10/cacert.pem", d'accord, =_ =! En continuant à signaler des erreurs, mon cœur est déjà dévasté !
--- Ensuite, j'ai essayé de supprimer les guillemets doubles, d'ajouter des guillemets simples et de supprimer les guillemets, et mon cœur a commencé à avoir froid ! Toujours une erreur de certificat SSL ! !
--- Derrière moi, j'ai continué à surfer sur Google avec une sensation d'eau stagnante. J'ai été ramené à la plage encore et encore, couvert de bleus, affamé, assoiffé et faible !
--- Enfin, enfin, enfin, merde ! ! ! Je l'ai essayé~~~
(3) Solution :
Ajouter devant curl_exec() : (Copiez le fichier cacert.pem dans le répertoire actuel, d'autres chemins sont également disponibles )
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
5. Effet final :
Recommandations associées :
Comment utiliser php pour envoyer des messages texte à l'aide de SMS Bao
jQuery implémente la fonction de compte à rebours pour l'envoi de messages texte
php envoie un code de vérification par SMS pour terminer la fonction d'inscription
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!