Heim  >  Artikel  >  WeChat-Applet  >  Warum schlägt die Überprüfung oder Signatur der WeChat-Zahlung fehl? Im Anhang finden Sie drei Lösungen

Warum schlägt die Überprüfung oder Signatur der WeChat-Zahlung fehl? Im Anhang finden Sie drei Lösungen

php是最好的语言
php是最好的语言Original
2018-08-07 15:44:0547669Durchsuche

Warum schlägt die einheitliche Zahlungsüberprüfung von iOS WeChat fehl? Ich bin wirklich besorgt, weil meine Unterschrift fehlgeschlagen ist und ich immer noch nicht bezahlen kann. Das Hauptproblem ist, dass der Text auf Chinesisch ist, was sehr mühsam zu lösen ist, aber ich kann keine Artikel finden Das löst das Problem vollständig. Kurz gesagt, es sind alle möglichen Probleme. Ich werde hier nicht auf Details eingehen, kommen wir zum Punkt:

Da die Projekte des Unternehmens eine Zahlung über WeChat erfordern, stellte ich fest, dass bei der Bereitstellung immer Signaturfehler gemeldet wurden Ein Codierungsproblem, also werden wir es lösen, wenn wir den Grund finden. In diesem Artikel werden drei Lösungen im Detail vorgestellt. Wenn Sie nur wenig Zeit haben, um es zu lesen, gehen Sie hoffentlich direkt zur dritten Lösung über es kann jedem helfen.

Die erste Lösung: Stellen Sie die Tomcat-Kodierung auf utf-8 ein

Die Standardkodierung von Tomcat in der Fensterumgebung ist gbk, also stellen Sie die Tomcat-Kodierung auf utf-8 ein.

Schritt 1: Fügen Sie

set JAVA_OPTS=-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=utf-8 -Dsun.jnu.encoding=utf-8
rrree

zur zweiten Zeile des Headers in catalina.bat hinzu. Schritt 2: Fügen Sie

URIEncoding="UTF-8 to server.xml " useBodyEncodingForURI hinzu ="true", bewirkt, dass die von Tomcat gesendete Anfrage utf-8 verwendet, wie im folgenden Code gezeigt

  1. <connector port="8081" protocol="HTTP/1.1"></connector>

  2. connectionTimeout="20000"

  3. redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI=" true" />

    Möglicherweise sind in der Konsole verstümmelte Zeichen vorhanden, aber es ist in Ordnung, wenn Sie es in gbk ändern, die WeChat-Signatur jedoch fehlschlägt

Die zweite Art Lösung: Körper konvertieren

String body = new String("body Chinese field value".toString().getBytes("ISO8859-1"),"UTF-8") ;

Allerdings: Der von WeChat zurückgegebene Produktname wird verstümmelt sein

Warum schlägt die Überprüfung oder Signatur der WeChat-Zahlung fehl? Im Anhang finden Sie drei Lösungen


Die dritte Lösung: Ändern Sie die Signatur-MD5-Codierung (Dies Lösung ist die beste Lösung )

Die Standardkodierung von Tomcat in der Fensterumgebung ist gbk. Wenn Sie also eine MD5-Signatur durchführen, stellen Sie die Kodierung auf utf-8 ein.

Warum schlägt die Überprüfung oder Signatur der WeChat-Zahlung fehl? Im Anhang finden Sie drei Lösungen

Dies ist die MD5-Signatur-Tool-Klasse, die ich verwende:

让java环境使用utf-8编码

Verwandte Empfehlungen:

WeChat-App-Zahlung: Zahlungsberechtigungen Die Prüfung ist fehlgeschlagen. Warum?

WeChat-App-Zahlung: Prüfung der Zahlungsberechtigung fehlgeschlagen, was ist der Grund?

Das obige ist der detaillierte Inhalt vonWarum schlägt die Überprüfung oder Signatur der WeChat-Zahlung fehl? Im Anhang finden Sie drei Lösungen. 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