So lösen Sie das Problem des Fehlers bei der gemeinsamen Nutzung öffentlicher PHP-WeChat-Konten

PHPz
Freigeben: 2023-04-12 19:06:26
Original
1564 Leute haben es durchsucht

Kürzlich haben viele Internetnutzer berichtet, dass offizielle WeChat-Konten, die mit PHP entwickelt wurden, beim Teilen nicht geteilt werden können. Dieses Problem gab es schon immer und es wurde keine klare Lösung gefunden. Lassen Sie uns die Gründe für dieses Problem und seine Lösung besprechen.

1. Gründe für das Problem

In öffentlichen WeChat-Konten, die mit PHP entwickelt wurden, verwenden wir normalerweise die WeChat JS-Schnittstelle für Freigabevorgänge. Beim Aufrufen der WeChat JS-Schnittstelle zum Teilen müssen wir die folgenden zwei Bedingungen erfüllen:

  1. Die WeChat JS-Schnittstelle muss innerhalb des WeChat-Clients aufgerufen werden und kann nicht extern aufgerufen werden.
  2. Die WeChat JS-Schnittstelle erfordert die Verwendung des HTTPS-Protokolls zum Anrufen.

Aufgrund der folgenden Situationen, in denen viele Entwickler entwickeln:

  1. Verwenden Sie das HTTP-Protokoll, wenn Sie die WeChat JS-Schnittstelle aufrufen.
  2. Es wird nicht festgestellt, ob es sich beim Aufruf der WeChat JS-Schnittstelle im WeChat-Client befindet.

Beide dieser Probleme führen dazu, dass die gemeinsame Nutzung offizieller WeChat-Konten fehlschlägt, da WeChat den Aufruf der WeChat JS-Schnittstelle innerhalb von HTTP- oder Nicht-WeChat-Clients nicht zulässt.

2. So lösen Sie

  1. HTTPS-Protokoll verwenden

Beim Aufruf der WeChat JS-Schnittstelle müssen Sie das HTTPS-Protokoll verwenden, das offiziell von WeChat vorgeschrieben ist. Wenn Ihre Website also immer noch das HTTP-Protokoll verwendet, müssen Sie sie auf das HTTPS-Protokoll aktualisieren.

Wenn Sie kein HTTPS-Zertifikat erworben haben, können Sie es über einige kostenlose Zertifizierungsstellen erhalten. Zu den derzeit am häufigsten verwendeten kostenlosen Zertifizierungsstellen gehören Let's Encrypt und Cloudflare.

  1. Bestimmen Sie, ob es im WeChat-Client aufgerufen wird

Beim Aufruf der WeChat JS-Schnittstelle müssen Sie feststellen, ob es derzeit im WeChat-Client aufgerufen wird. Im Allgemeinen können wir durch Urteilen urteilen window.navigator.userAgent 中是否包含 "MicroMessenger".

Das Folgende ist ein Beispielcode:

if (window.navigator.userAgent.indexOf("MicroMessenger") === -1) {
    alert("请在微信客户端内部访问本页面");
} else {
    // 调用微信 JS 接口进行分享
}
Nach dem Login kopieren

Wenn es sich nicht im WeChat-Client befindet, wird eine Eingabeaufforderung angezeigt, in der der Benutzer aufgefordert wird, zum WeChat-Client zu gehen, um darauf zuzugreifen.

3. Zusammenfassung

Anhand der obigen Analyse und Lösungen können wir die folgenden Schlussfolgerungen ziehen:

  1. In dem mit PHP entwickelten öffentlichen WeChat-Konto schlägt der Aufruf der WeChat JS-Schnittstelle für Freigabevorgänge fehl, normalerweise aufgrund der Verwendung von HTTP Protokoll oder nicht, um festzustellen, ob es innerhalb des WeChat-Clients aufgerufen wird.
  2. Die Möglichkeit, dieses Problem zu lösen, besteht darin, das HTTPS-Protokoll zu verwenden, um den Anruf zu tätigen und gleichzeitig festzustellen, ob er derzeit innerhalb des WeChat-Clients aufgerufen wird.
  3. Wenn es andere Gründe gibt, die dazu führen, dass die Freigabe fehlschlägt, finden Sie Lösungen in der WeChat-Entwicklungsdokumentation.

Ich hoffe, dass der obige Inhalt Ihnen hilft, das Problem des Fehlers bei der gemeinsamen Nutzung öffentlicher PHP-WeChat-Konten zu lösen.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des Fehlers bei der gemeinsamen Nutzung öffentlicher PHP-WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage