Heim >Backend-Entwicklung >PHP-Tutorial >WeChat-Kontobindung

WeChat-Kontobindung

WBOY
WBOYOriginal
2016-08-08 09:30:261611Durchsuche

Ursprüngliche Adresse: http://hello1010.com/bind-wechat/

2-dimensionaler Barcode/QR-Code (2-dimensionaler Barcode ) Es zeichnet Datensymbolinformationen mit Schwarz-Weiß-Grafiken auf, die nach einem bestimmten Muster auf einer Ebene (in zweidimensionaler Richtung) mit bestimmten geometrischen Figuren in der Codierung verteilt sind, die „0“ und „1“ bilden die Grundlage Die interne Logik des Computers wird geschickt genutzt. „Das Konzept des Bitstroms verwendet mehrere geometrische Formen, die binär sind, um numerische Textinformationen darzustellen, die automatisch über Bildeingabegeräte oder fotoelektrische Scangeräte gelesen werden, um eine automatische Informationsverarbeitung zu erreichen >

In den letzten Jahren erfreuen sich QR-Codes einer besonders großen Verbreitung. Man kann sagen, dass die Werbung und Anwendung von QR-Codes durch WeChat wie eine Ente im Wasser ist, einschließlich WeChat-QR-Code-Zahlung, WeChat-QR-Code-Login, WeChat-QR-Code-Visitenkarten usw. Man kann sagen, dass QR-Codes in O2O zu einem wichtigen Bindeglied zwischen Online und Offline geworden sind. Bruder Xiao Ma sagte auch, dass „QR-Code ein wichtiger Einstiegspunkt online und offline ist.“

Heutzutage haben viele Websites ihr eigenes vollständiges Benutzerkontosystem eingerichtet. Im Zeitalter von WeChat für alle ist es notwendig, über die Entwicklung und den Betrieb öffentlicher WeChat-Konten nachzudenken und nicht dem Trend zu folgen , aber einfach zu Es ist praktisch für Benutzer, weil WeChat eine gute O2O-Lösung bietet. Noch wichtiger ist, dass WeChat über eine harmlose und sich ständig verbessernde ökologische Kette verfügt.

Wenn ein Benutzer einem offiziellen WeChat-Konto folgt, kommt es zu einigen Interaktionen. Während der Interaktion kann es erforderlich sein, die Identitätsinformationen des Benutzers (entsprechend den Kontoinformationen auf der Website) zu erhalten ), zum Beispiel im offiziellen Konto, um Bestellungen aufzugeben, Bestellungen zu überprüfen und andere Vorgänge durchzuführen. Nun stellt sich also die Frage:

Wie stellen wir für denselben Benutzer die entsprechende Beziehung zwischen dem offiziellen WeChat-Kontobenutzer (openid) und dem Website-Benutzer (userid) her? Dieser Vorgang wird als Bindung bezeichnet.


Um die Diskussion zu vereinfachen, habe ich sie zusammengefasst so zwei Szenarien:

Der Benutzer hat sich als Benutzer unserer Website registriert, ist aber noch nicht unserem offiziellen WeChat-Konto gefolgt. Der Benutzer hat dies nicht getan registriert, folgen aber bereits unserem offiziellen WeChat-Konto.

Die beiden oben genannten Situationen werden im Folgenden separat besprochen.

Szenario 1

Der Benutzer hat sich als Benutzer unserer Website registriert, ist unserem offiziellen WeChat-Konto jedoch noch nicht gefolgt . Dabei muss sich der Nutzer zunächst auf der Website anmelden und anschließend an geeigneter Stelle, etwa in den persönlichen Einstellungen, einen verbindlichen Eintrag vornehmen. Der Bindungsprozess läuft wie folgt ab:



Hier ist die QR-Code-Generierungsfunktion von WeChat erforderlich: Generieren QR-Code mit Parametern

Zum WeChat-QR-Code heißt es im offiziellen Dokument:

Es gibt derzeit zwei Arten von QR Bei Codes handelt es sich um temporäre QR-Codes und permanente QR-Codes. Erstere haben eine Ablaufzeit von bis zu 1800 Sekunden, können aber eine größere Zahl erzeugen. Letztere haben keine Ablaufzeit und eine kleinere Zahl (derzeit unterstützt der Parameter nur 1 - 100000). . Die beiden QR-Codes eignen sich jeweils für die Kontobindung, Benutzerquellenstatistiken und andere Szenarien.

Natürlich ist es für uns angemessener, temporäre QR-Codes zu verwenden. Dies kann jedes Mal generiert werden, wenn der Benutzer die Seite aktualisiert.

Da der QR-Code den Szenenwert (scene_id) enthalten kann, überträgt der WeChat-Server den Szenenwert an unseren eigenen Server, wenn der Benutzer den QR-Code mit dem Szenenwert scannt. Nachdem wir den Szenenwert erhalten haben, können wir eine Überprüfung und Bindungslogik durchführen.

Hinweis: Für die Generierung eines QR-Codes ist eine zertifizierte Servicenummer erforderlich.

Ein vollständiger Bindungsprozess sollte wie folgt ablaufen:

① Der Benutzer meldet sich auf der Webseite an und klickt WeChat-Konto „binden“; ② Das Backend generiert über die WeChat-Schnittstelle einen QR-Code-Link, gibt ihn an die Front-End-Anzeige zurück und stellt die entsprechende Beziehung zwischen Szenenwert A und dem Benutzer her; ③ Der Benutzer scannt den QR-Code und klickt, um dem öffentlichen WeChat-Konto zu folgen. (Wenn Sie ihm gefolgt sind, springen Sie direkt zu ④. Der Hintergrund empfängt den vom WeChat-Server übertragenen Szenenwert. ⑤Der Hintergrund fragt den entsprechenden ab Benutzer-ID basierend auf dem Szenenwert A (abhängig von der entsprechenden in ② festgelegten Beziehung); Stellen Sie die entsprechende Beziehung zwischen der Benutzer-Benutzer-ID und der WeChat-Benutzer-Öffnungs-ID her WeChat-Client;
⑧Benachrichtigen Sie die Startseite, dass die Bindung abgeschlossen ist, aktualisieren Sie die Seite und geben Sie einige WeChat-Kontoinformationen zurück. Vollständige Bindung.




Darunter in ② „Stellen Sie die entsprechende Beziehung zwischen Szenenwert A und dem Benutzer her“, da sich der Benutzer bereits angemeldet hat, also wenn der Benutzer auf „Binden“ klickt WeChat-Konto“, Wir können im Hintergrund eine temporäre Beziehung zwischen dem Szenenwert A und der Benutzer-ID zuweisen. Für Websites mit einer kleinen Anzahl von Benutzern können Sie apc direkt in PHP zum Zwischenspeichern verwenden und eine Ablaufzeit festlegen (dieselbe Zeit wie die Ablaufzeit des temporären QR-Codes).
Da http in

⑧ keinen Push-Mechanismus hat, besteht die einfachste Methode darin, abzufragen, ob die Bindung abgeschlossen ist, und die Seite nach Abschluss der Bindung zu aktualisieren.

Nachdem die Bindung abgeschlossen ist und der Benutzer mit unserem offiziellen WeChat-Konto interagiert, kann die entsprechende Benutzer-ID anhand der OpenID gefunden werden, wodurch die Identitätserkennung abgeschlossen wird. Die oben erwähnte Auftragserteilung und Bestellanfrage sind alle möglich.

Der gesamte Bindungsprozess ist weder kompliziert noch technisch schwierig umzusetzen. Das Wichtigste ist die Idee.

Szenario 2

Szenario 2, der Vorgang ist für den Benutzer etwas kompliziert, da er dafür erforderlich ist im WeChat-Client Schließen Sie die Anmeldung/Registrierung auf der Terminal-Webseite ab. Wenn der Registrierungsprozess zu kompliziert und umständlich ist, wird daher von der Verwendung abgeraten.

Prozess:


Der obige Bindungsprozess integriert den Registrierungsprozess, siehe es scheint komplizierter zu sein. Die Implementierung ist nicht allzu schwierig, da die Bindung von Konten die Informationssicherheit des Benutzers betrifft:

Wie Verhindern Sie, dass Links gefälscht werden

Der Anmelde-/Registrierungslink muss von unserem eigenen Server generiert werden und kann nicht von anderen gefälscht werden. Die Gültigkeit können Sie der Verifizierungsserveradresse von WeChat entnehmen. Ein relativ sicherer Anmeldelink kann also so aussehen:

http://api.hello1010.com/wechat/login.html?openid=x1&signature=x2×tamp=x3&nonce=x4&echostr&= x5

Code zur Überprüfung der Signatur:

<code><span>private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];    

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}
</span></code>

Der Token-Wert kann mit dem im Hintergrund Ihres offiziellen WeChat-Kontos übereinstimmen. oder es kann geändert werden. Es wird empfohlen, an einen sichereren Ort zu wechseln.

2. So stellen Sie sicher, dass openid vertrauenswürdig ist

Stellen Sie sich dieses Szenario vor: Benutzer A betritt die Anmeldeseite und kopiert den Anmeldelink in die Browser, ersetzen Sie openid durch die openid von Benutzer B und melden Sie sich mit dem Konto und Passwort von Benutzer A an. Dadurch werden die Benutzer-ID von Benutzer A und die OpenID von Benutzer B miteinander verbunden, was offensichtlich unsicher ist.

Es gibt viele Lösungen. Beispielsweise kann die OpenID verschlüsselt werden. Wenn die Verschlüsselungsmethode vertraulich behandelt wird, können Benutzer die verschlüsselte OpenID nicht fälschen. Wenn Sie die OpenID nicht verschlüsseln möchten, können Sie beim Generieren des Links die entsprechende Beziehung zwischen der OpenID und der Signatur auf der Serverseite herstellen. Wenn der Benutzer die OpenID manipuliert, besteht sie die Überprüfung nicht.

Denken Sie daran, niemals den vom Kunden gesendeten Informationen zu vertrauen.

Erweiterte Anwendung

Nach Abschluss der Bindung können wir einige einfache Anwendungen durchführen. Beispielsweise muss das Unternehmen eine Offline-Roadshow-Veranstaltung durchführen, für deren Teilnahme eine Registrierung und Anmeldung erforderlich ist.

Dies ist ein typisches O2O-Beispiel, das mit WeChat umgesetzt werden kann. Der Prozess ist wie folgt:


Unter anderem ist der Prozess „Benutzer binden“ der Prozess im zweiten Szenario. Das Zusammenspiel der Registrierung wird hier nicht beschrieben, da jedes Unternehmen anders ist.

Ein Benutzer, der die Bindung abgeschlossen hat, muss sich zur Teilnahme an einer Veranstaltung lediglich über WeChat registrieren und dann den QR-Code scannen, um sich anzumelden. Das Erlebnis verläuft recht reibungslos .

Wenn Sie Fragen haben, können Sie gerne mit mir kommunizieren!


Das Obige stellt die WeChat-Kontobindung vor, einschließlich ihrer Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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
Vorheriger Artikel:Blog-Crawling-SystemNächster Artikel:Blog-Crawling-System