Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert das Senden von Textnachrichten

PHP implementiert das Senden von Textnachrichten

小云云
小云云Original
2018-03-26 13:12:2014415Durchsuche

In diesem Artikel erläutern wir die Funktionsweise der Verwendung von PHP zum Versenden von SMS-Bestätigungscodes. Haben Sie das Gefühl, dass dies bei der Registrierung eines Kontos in einer mobilen App der Fall ist, wenn Sie auf „Senden des Bestätigungscodes“ geklickt haben? würde ein paar Sekunden dauern.“ Mit einem Piepton wird der Bestätigungscode an Ihr Telefon gesendet. Finden Sie das großartig?

1. Da das Unternehmen die API-Schnittstelle für die Anmeldung und Registrierung schreiben muss, habe ich etwas über den Front-End- und Back-End-Interaktionsprozess der Registrierung von Mobiltelefonnummern gelernt.

(1) Der Benutzer klickt auf den Client, um den Bestätigungscode zu senden (dann sendet der Client eine Ajax-Anfrage und die Schaltfläche befindet sich in 60 Sekunden Ruhezeit)

(2) Die Rückseite -End-Logikschicht akzeptiert die übergebene Mobiltelefonnummer und überprüft, ob das Format legal ist. Geben Sie die Datenbank ein, um zu überprüfen, ob sie vorhanden ist.

(3) Generieren Sie einen Bestätigungscode, speichern Sie ihn in der Sitzung und senden Sie dann Curl zum Drittanbieter-SMS-Schnittstellenlink

(4) Konfigurieren Sie die Drittanbieter-SMS-Plattform und senden Sie Bestätigungscodeinformationen an Benutzer mit festgelegten Mobiltelefonnummern

2 Heute erklären wir hauptsächlich die Konfiguration der Drittanbieter-Plattform und die Logik der Hintergrundverarbeitung.

3 Die ausgewählte Drittanbieter-Plattform ist: (Sie können auch andere Plattformen auswählen Prinzipien sind fast ähnlich)

(1) Saidi Cloud Communication ( https://www.mysubmail.com )

(2) Registrieren, Echtnamen-Authentifizierung, Produkte und Dienstleistungen eingeben, erstellen eine neue Vorlage und ihre Vorlagensyntax kann in der zugehörigen Dokumentation eingesehen werden

(3) Gehen Sie zur Spalte „AppIdD erstellen/verwalten“, erstellen und aktivieren Sie das Projekt und Generieren Sie dann die Standardeinstellungen „APPID“ und „APPKEY“



(4) Gehen Sie zur Startseite und klicken Sie auf „API anzeigen“. Klicken Sie auf den Link „Entwicklungsdokumente“ und erhalten Sie den Link zur POST-Anfrage:

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


4.

Backend-Logikentwicklung:

Kern: Verifizierungscode erstellen –> POST-Anforderungsfunktion einkapseln –> Verifizierungscode an die Drittanbieterplattform senden –> dann an das Mobiltelefon des Benutzers weiterleiten


* Da Sina Blog kein Markdown unterstützt, poste ich nur den Kerncode und die Stellen, an denen ich auf große Fallstricke gestoßen bin:


(1) Senden Sie den Bestätigungscode an die Drittanbieterplattform: (Keine Fallstricke, die Logik wird sehr reibungslos aufgeschrieben )

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) Anfrage ein Link zum Senden der Bestätigungscodedaten an die Drittanbieterplattform (hier gibt es eine große Gefahr )

– Okay, schreiben wir es normal auf:

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;
}

und melden Sie dann einen Fehler: 'SSL-Zertifikatproblem: Lokales Ausstellerzertifikat konnte nicht abgerufen werden' , dann machen Sie sich keine Sorgen, folgen Sie weiterhin den offiziellen Kanälen:

--- Gehen Sie zu https: //curl.haxx.se/docs/caextract.html zum Herunterladen von cacert.pem

--- Fügen Sie dann cacert.pem unten in das PHP-Verzeichnis ein und gehen Sie dann zu PHP .ini und finden Sie: „;curl.cainfo“ und ändern Sie es in:

curl.cainfo = "C:/wamp/bin/php/php7.0.10/cacert.pem" , nun, es ist nutzlos , weiterhin Fehler melden!

--- Fahren Sie dann fort. Suchen Sie die Lösung und ändern Sie dann gemäß den Online-Informationen die darunter liegende Datei „;openssl.cafile“ in: openssl.cafile= „ C:/wamp/bin/php/php7.0.10/cacert.pem", okay, =_ =! Ich melde weiterhin Fehler, mein Herz ist bereits am Boden zerstört!

--- Dann habe ich versucht, die doppelten Anführungszeichen zu entfernen, einfache Anführungszeichen hinzuzufügen und die Anführungszeichen zu entfernen, und mir wurde kalt ums Herz! Immer noch SSL-Zertifikatfehler! !

--- Hinter mir surfte ich weiter auf Google mit dem Gefühl von stehendem Wasser, immer wieder wurde ich mit blauen Flecken, hungrig, durstig und schwach an den Strand zurückgespült!

--- Endlich, endlich, endlich, Scheiße! ! ! Habe es versucht~~~

(3) Lösung:

Vor curl_exec() hinzufügen: (Kopieren Sie die Datei cacert.pem in das aktuelle Verzeichnis, andere Pfade sind ebenfalls verfügbar )

 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); 
   curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem'); 
   curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);

5. Endeffekt:



Verwandte Empfehlungen:

So verwenden Sie PHP zum Senden von Textnachrichten per SMS Bao

jQuery implementiert die Countdown-Funktion zum Senden von Textnachrichten

php sendet einen SMS-Bestätigungscode, um die Registrierungsfunktion abzuschließen

Das obige ist der detaillierte Inhalt vonPHP implementiert das Senden von Textnachrichten. 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