Heim > Artikel > WeChat-Applet > Hintergrundkonfiguration der Force.com WeChat-Entwicklungsserie
Um inländische kostenlose Cloud-Ressourcen als WeChat-Backend zu finden, habe ich einen Tag damit verbracht, SinaAppEngine (SAE) auszuprobieren. Das Debuggen war zu umständlich und die Benutzererfahrung war schlecht. Als Medienunternehmen können die technischen Fähigkeiten von Sina den Test nicht bestehen. Amazon kann AWS starten, Sina jedoch nicht! Eine bessere Option ist Baidu BaiduAppEngine (BAE), aber auch wenn der Ladevorgang erst kürzlich begonnen hat, ist es besser, beruhigt zu force.com zurückzukehren. Zumindest die von Ausländern versprochenen kostenlosen Inhalte werden immer kostenlos und zuverlässig sein.
Der erste Schritt besteht darin, ein Force.com-Konto zu beantragen. Bitte gehen Sie zu Developer.force.com, um sich zu bewerben wird ein Kundenkonto sein. Der zweite Schritt besteht darin, eine Apex-Rest-Klasse als WeChat-Dienstschnittstelle zu erstellen, und der Rest-Schnittstellenname ist WeChatRest:
@RestResource(urlMapping='/WeChatRest/*') global with sharing class WeChatRestController{ @HttpGet global static void doGet(){ String signature = RestContext.request.params.get('signature'); String timestamp = RestContext.request.params.get('timestamp'); String nonce = RestContext.request.params.get('nonce'); String echostr = RestContext.request.params.get('echostr'); System.debug(echostr + ' - ' + timestamp); RestContext.response.addHeader('Content-Type', 'text/plain'); RestContext.response.responseBody = Blob.valueOf(echostr); //return echostr; } }
Wir werden diese Schnittstelle in WeChat verwenden. Tencent benötigt diese URL während der Konfiguration:
Zusätzliche Erklärung: Nach der Veröffentlichung dieses Artikels hat Tencent den „Message Encryption and Decryption Key“ eingeführt ", der den Klartextmodus, den Kompatibilitätsmodus und den Sicherheitsmodus unterstützt. Es gibt drei Typen. Der Hauptunterschied besteht darin, dass Tencent im Klartextmodus XML-Nachrichten im Klartext an die Schnittstelle sendet. Im Kompatibilitätsmodus gibt es beide XML-Nachrichten im Klartext und verschlüsselte XML-Nachrichten werden nur verschlüsselten XML-Nachrichten bereitgestellt, um den Benutzern mehr Informationen zu bieten. Dieser Artikel und alle folgenden verwandten Artikel verwenden den Nur-Text-Modus.
Tencent sendet über die Get-Methode vier Parameter an diese URL. Das URL-Format lautet wie folgt (nur Beispiel): https://msd-developer-edition.ap1. force.com/services/apexrest/WeChatRest?signature=GenePoint&echostr=test×tamp=111&nonce=222 Wenn der von der URL zurückgegebene Wert mit dem echostr-Wert in den vier Parametern übereinstimmt, betrachtet Tencent die Überprüfung als erfolgreich Die Überprüfung wird als fehlgeschlagen betrachtet und die Konfiguration kann nicht fortgesetzt werden. Die Methode besteht darin, den Wert direkt zurückzugeben. Es besteht das Risiko, dass Ihre URL auch von anderen verwendet werden kann. Der Wert von echostr wird hier tatsächlich basierend auf dem vom Benutzer im Tencent-Backend konfigurierten Token plus einem Zeitstempel plus dem Wert des Nonce-Parameters gemäß einem bestimmten Algorithmus berechnet. Bitte beachten Sie die Hinweise zum jeweiligen Algorithmus Gehen Sie hier auf Details ein. Was im Code erklärt werden muss, ist, dass bei direkter Rückgabe von echostr der Inhalt einer XML-Struktur automatisch von Tencent angenommen wird, dass dieser nicht mit dem echostr-Wert übereinstimmt, und dies als a beurteilt wird Konfigurationsfehler. Dazu müssen Sie die Methode Blog.valueOf verwenden, um diese direkt in Textinformationen umzuwandeln. Der dritte Schritt besteht darin, Site.com so zu konfigurieren, dass der öffentliche Netzwerkzugriff auf diese URL aktiviert wird. Die Force.com-Klasse und die Webseiten erfordern standardmäßig eine Benutzerauthentifizierung, bevor auf sie zugegriffen werden kann. Wir können jedoch den öffentlichen Netzwerkzugriff auf diese URL über die Site aktivieren .com. Dazu müssen wir zunächst einen Domänennamen erstellen, Develop->Sites eingeben und den Domänennamen eingeben, den Sie erstellen möchten. Der Domänenname des Autors lautet beispielsweise johnson0001:
http:/ /johnson0001-developer-edition.ap1.force.com
Nachdem die Erstellung erfolgreich war, besteht der nächste Schritt darin, die Site zu erstellen. Klicken Sie auf die Schaltfläche „Neu“:
Geben Sie im nächsten Eingabebildschirm für Site-Informationen die Site-Bezeichnung und den Site-Namen ein und wählen Sie eine beliebige Seite als „Aktive Site-Startseite“ aus (hier muss keine Webseite erstellt werden, wählen Sie einfach eine aus). , andere Optionen unverändert lassen, auf die Schaltfläche „Speichern“ klicken:
Klicken Sie im nächsten Schritt auf die Schaltfläche „Einstellungen für den öffentlichen Zugriff“ auf dem Bildschirm,
Suchen Sie im nächsten Bildschirm nach „Apex-Klassenzugriff aktivieren“ und klicken Sie auf die Schaltfläche „Bearbeiten“.
Fügen Sie die WeChatRestController-Klasse zur Liste auf der rechten Seite hinzu , wodurch die Klasse den anonymen öffentlichen Zugriff unterstützen kann:
Kehren Sie abschließend zur Sites-Homepage zurück und klicken Sie auf die Schaltfläche „Aktivieren“, um die Site zu aktivieren Sie können über die folgende URL auf die von uns entwickelte Schnittstelle zugreifen (beachten Sie, dass es einige Minuten dauern kann, bis die URL wirksam wird):
https://johnson0001-developer-edition.ap1.force.com/services /apexrest/WeChatRest
Der vierte Schritt besteht darin, das Tencent-Backend zu konfigurieren, diese URL einzugeben, ein beliebiges Token einzugeben und auf die Schaltfläche „Senden“ zu klicken. Vollständige Konfiguration:
URL-Echostr-Algorithmus überprüfen: 1. Kombinieren Sie Token (den vom Benutzer im Backend von Tencent konfigurierten Wert), Zeitstempel (den Zeitstempelwert, der übergeben wird, wenn Tencent die URL anfordert), Nonce (Tencent-Anfragen). die URL) Der übergebene Nonce-Wert wird in alphabetischer Reihenfolge angeordnet. 2. Nach der Anordnung wird er in eine Zeichenfolge gespleißt. 3. Das Ergebnis der Konvertierung dieser Zeichenfolge durch den sha1-Algorithmus ist der Wert von echostr
Weitere Artikel zur Hintergrundkonfiguration der Force.com WeChat-Entwicklungsreihe finden Sie auf der chinesischen PHP-Website!