Dieser Artikel hat eine detaillierte Version der JS Wechat -Schnittstelle für Ihre Referenz geteilt. Der spezifische Inhalt ist wie folgt
Grundlegende Anweisungen
Anweisungen zur Verwendung
1. Schalten Sie JS -Dateien ein
Führen Sie die folgende JS-Datei auf der Seite ein, auf der die JS-Schnittstelle (Support https) aufgerufen werden muss: http://res.wx.qq.com/open/js/jweixin-1.0.0.js
Hinweis: Unterstützen Sie das Laden mithilfe der AMD/CMD -Standardmodul -Lademethode
2. Injizieren und konfigurieren Sie die Konfigurationsschnittstelle
Alle Seiten, die JSSDK verwenden müssen, müssen zuerst Konfigurationsinformationen injizieren. Andernfalls werden sie nicht aufgerufen (dieselbe URL muss nur einmal aufgerufen werden, und die Web -App des SPA, die die URL ändert, kann jedes Mal aufgerufen werden, wenn sich die URL ändert).
wx.config ({debug: true, // Debug -Modus einschalten, werden die Rückgabeteile aller genannten APIs auf dem Client alarmiert. Um die übergebenen Parameter anzuzeigen, können Sie sie auf der PC -Seite öffnen. Noncest: '', // Erforderlich, die für die Signatursignatur generierte zufällige Zeichenfolge: '', // Erforderlich, die Signatur ist in Anhang 1 JSAPILIST angezeigt: [] // Erforderlich, die Liste der zu verwendenden JS -Schnittstellen und alle JS -Schnittstellen sind in Anhang 2} aufgeführt.3.. Überprüfen Sie die Bereitschaftsschnittstelle
wx.ready (function () {// Nachdem die Konfigurationsinformationen verifiziert wurden, wird die Ready -Methode ausgeführt. Alle Schnittstellenaufrufe müssen erhalten werden, nachdem die Konfigurationsschnittstelle das Ergebnis erhalten hat. Konfiguration ist ein asynchroner Betrieb eines Clients. Wenn Sie daher die relevante Schnittstelle bezeichnen müssen, müssen Sie die relevante Schnittstelle bezeichnen, wenn die Seite geladen wird. müssen nicht in die Bereitschaftsfunktion platziert werden.});4.. Verifizierung fehlgeschlagener Fehlerschnittstelle
WX.Error (Funktion (res) {// Wenn die Konfigurationsinformationen nicht überprüft werden, wird die Fehlerfunktion ausgeführt. Wenn die Signatur abläuft, kann die Überprüfung fehlschlagen. Für bestimmte Fehlermeldungen können Sie den Debug -Modus der Konfiguration öffnen, um sie anzuzeigen, oder Sie können es im Parameter zurückgegeben. Für Spas können Sie die Signatur hier aktualisieren.}).Schnittstellenanweisungen
Alle Schnittstellen werden über WX -Objekte aufgerufen (können auch mit JWeixin -Objekten verwendet werden). Die Parameter sind ein Objekt. Zusätzlich zu den Parametern, die jede Schnittstelle selbst übergeben muss, gibt es auch die folgenden allgemeinen Parameter:
1. Erfolg: Die Rückruffunktion, die ausgeführt wird, wenn die Schnittstelle erfolgreich aufgerufen wird.
2. FAIL: Eine Rückruffunktion, die ausgeführt wird, wenn die Schnittstelle fehlschlägt.
3. Vollständig: Die Rückruffunktion, die ausgeführt wird, wenn der Schnittstellenaufruf abgeschlossen ist, und unabhängig von Erfolg oder Misserfolg wird ausgeführt.
4. Abbrechen: Die Rückruffunktion Wenn der Benutzer auf Abbrechen klickt, werden nur einige APIs verwendet, bei denen Benutzer die Operationen abbrechen.
5. Trigger: Eine Methode, die den Auslöser hört, wenn eine Schaltfläche im Menü klickt. Diese Methode unterstützt nur verwandte Schnittstellen im Menü.
Die obigen Funktionen haben alle einen Parameter, Typ -Objekt, zusätzlich zu den Daten, die von jeder Schnittstelle selbst zurückgegeben werden, gibt es auch eine gemeinsame Eigenschaft ERRMSG, deren Wertformat wie folgt lautet:
1. Wenn der Anruf erfolgreich ist: "XXX: OK", wobei xxx der Schnittstellenname des Anrufs ist
2. Wenn der Benutzer absagt: "xxx: abbrechen", wobei xxx der aufgerufene Schnittstellenname ist
3. Wenn der Anruf fehlschlägt: sein Wert ist eine spezifische Fehlermeldung
Grundlegende Schnittstelle
Bestimmen Sie, ob die aktuelle Client -Version die angegebene JS -Schnittstelle unterstützt
wx.checkjsapi ({jsapilist: ['sumimage'] // Die Liste der JS-Schnittstellen, die erkannt werden müssen, sind alle JS-Schnittstellen in Anhang 2 aufgeführt, Erfolg: Funktion (res) {// Rückgabe als Schlüsselwertpaare, der verfügbare API-Wert ist wahr und nicht als falsch verfügbar // für Beispiele verfügbar. {"checkResult": {"sumeimage": trum}, "errmsg": "checkjsapi: ok"}});Sharing -Schnittstelle
Holen Sie sich den Klickstatus der Schaltfläche "Teilen an Momente
wx.onmenusharetimeline ({title: '', // title link: '', // link imgurl: ''Rufen Sie den Status der Schaltfläche "Anteil an Freunde frei
wx.onmenushareAppMessage ({title: '', // title desc: '' // Rückruffunktion, die nach der Bestätigung des Benutzers die Freigabe}, abbrechen: function () {// Rückruffunktion, die nach dem Stornieren der Freigabe}} ausgeführt wurde, ausgeführt wird;Rufen Sie den Status der Schaltfläche "In QQ" klicken und die Sharing -Inhaltsoberfläche anpassen
wx.onMenushareqq ({title: '', // title desc: '', // Beschreibung Link: '', // link imgurlRufen Sie den Klickstatus der Schaltfläche "An Tencent Weibo zum Teilen von Tencent Weibo ab und passen Sie die Interface Sharing Inhalts an
wx.onMenushareWeibo ({title: '', // title desc: '', // Beschreibung Link: ''Bildschnittstelle
Machen Sie ein Bild oder wählen Sie ein Bild von der Mobile -Album -Album -Oberfläche aus
wx.chooseImage ({Erfolg: Funktion (res) {var localIds = res.localids; // Gibt die lokale ID -Liste des ausgewählten Fotos zurück. LokalID kann Bilder als SRC -Attribut des IMG -Tags}}) anzeigen;Vorschau -Bildschnittstelle
wx.previewImage ({current: '', // Der aktuell angezeigte Bildlink -URLs: [] // Die Liste der Bildlinks, die vorsichtigen müssen});Image -Schnittstelle hochladen
wx.uploadimage ({localId: '', // Die lokale ID des Bildes, die hochgeladen werden soll, erhalten aus der Auswahl -Schnittstelle isShowProgressTips: 1 // Die Standardeinstellung ist 1, und die Fortschrittsaufforderung wird angezeigt: Funktion (res) {var serverid = res.serverid; // return the Server ID des Bildes des Bildes}}}});Hinweis: Sie können das hochgeladene Bild per WeChat mit der Multimedia -Dateischnittstelle herunterladen. Die hier erhaltene ServerID ist media_id. Referenzdokument
Laden Sie die Bildschnittstelle herunter
wx.downloadImage ({ServerID: '', // Die serverseitige ID des von der UploadImage-Schnittstelle erhaltenen Bilds des Bildes isShowProgressTips: 1 // Die Standardeinstellung ist 1, und die Fortschrittsaufforderung wird angezeigt: Funktion (res) {var localid = res.LocalId; // Rückkehr zum örtlichen ID nach dem Bild ist das Bild downloaded}});Audio -Schnittstelle
Starten Sie die Aufzeichnungsschnittstelle
WX.StarTrecord ();
Stoppen Sie die Aufnahme der Schnittstelle
wx.stopecord ({Erfolg: Funktion (res) {var localId = res.localId;}});Automatische Stoppschnittstelle zur Überwachung der Aufzeichnung
wx.onvoicereCordend ({// vollständiger Rückruf wird ausgeführt, wenn die Aufzeichnungszeit eine Minute überschreitet und nicht aufhört. Abgeschlossen: Funktion (res) {var localId = res.LocalId;}});Sprachschnittstelle spielen
wx.playvoice ({localId: '' // Die lokale ID des von der StopRecord -Schnittstelle erhaltenen Audios, die er gespielt werden soll,});Pause Playback -Schnittstelle
wx.pausevoice ({localId: '' // Die lokale ID des Audio, die durchgehalten werden muss, erhalten von der StopRecord -Schnittstelle});Stop -Playback -Oberfläche stoppen
wx.stopvoice ({localId: '' // Die lokale ID des Audio, die gestoppt werden muss, erhalten von der StopRecord -Schnittstelle});Überwachung der Sprach -Wiedergabeberechnungsschnittstelle
wx.onvoicePlayend ({Serverid: '', // Die serverseitige ID des Audio, die heruntergeladen werden muss, Erfolg erhalten: Funktion (res) {var localId = res.localId; // Rückgabe der lokalen ID des Audio}});Sprachschnittstelle hochladen
wx.uploadvoice ({localId: '', // Die lokale ID des Audios, die hochgeladen werden muss, erhalten von der StopRecord-Schnittstelle isShowProgressTips: 1 // Der Standard ist 1, wobei die Fortschrittsaufforderung erfolgreich erfolgreich ist: Funktion (res) {var Serverid = res.serverid;Hinweis: Sie können die hochgeladene Stimme per Multimedia -Dateischnittstelle von Wechat herunterladen. Die hier erhaltene ServerID ist media_id. Referenzdokument
Sprachschnittstelle herunterladen
wx.downloadVoice ({ServerID: '', // Die serverseitige ID des Audio, die heruntergeladen werden muss, erhalten von der UploadVoice-Schnittstelle isShowProgressTips: 1 // Der Standard ist 1, und die Fortschrittsaufforderung wird angezeigt: Funktion (Res) {var localId = res.Localid; // Die lokale ID der lokalen ID des Audios}).Intelligente Schnittstelle
Identifizieren Sie Audio und kehren Sie zur Schnittstelle zur Erkennungsergebnis zurück
wx.translatevoice ({localId: '', // Die lokale ID des Audios, die erkannt werden muss, isShowProgressTips: 1, // Die Standardeinstellung ist 1, wobei Fortschritt der Fortschrittsaufforderung zum Erfolg zeigt: Funktion (res) {alert (res.translateresult); // Das Ergebnis der Spracherkennung}});Ausrüstungsinformationen
Rufen Sie die Netzwerkstatusschnittstelle ab
wx.getNetworkType ({Erfolg: Funktion (res) {var networkType = res.networkType; // Netzwerktypen 2G, 3G, 4G, WiFi}});Geografische Lage
Verwenden Sie die integrierte Karte von WeChat, um die Standortschnittstelle anzuzeigen
wx.openLocation ({Breitengrad: 0, // Breitengrad, schwimmende Punktzahl, Bereich ist 90 ~ -90 Längengrad: 0, // Längengrad, schwimmende Punktnummer, Reichweite 180 ~ -180. Name: '', // Standortname -Adresse: '', // Adressdetails Skala: 1, // Map -Zoom -Ebene, das Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert, der Wert von 1 ~ 28. Hyperlink, der unten in der Schnittstelle zur Anzeigeposition angezeigt wird, können Sie klicken, um zu springen});Holen Sie sich die Geolocation -Schnittstelle
WX.GetLocation ({Zeitstempel: 0, // Signatur -Zeitstempel für Position, bereitgestellt nicht -ZESTR: '', // Position Signatur zufälliger Zeichenfolge, nur dann mit Version 6.0.2, addrSign: '', // Position Signatur, bereitgestellt, bereitgestellt, wenn mit Version 6.0.2, siehe Appendix 4 für die Details. 90 ~ -90 Varchion = res.Latitude;Schnittstellenbetrieb
Verstecken Sie die Menüschnittstelle wx.hideoptionMenu () in der oberen rechten Ecke;
Zeigen Sie die Menüschnittstelle wx.showoptionMenu () in der oberen rechten Ecke an.
Schließen Sie die aktuelle Webfensterschnittstelle wx.closewindow ();
Taste der Batch -Versteckfunktion
wx.hidemenuitems ({Menulist: [] // Um Menüelemente zu verbergen, siehe Anhang 3});Taste der Batch -Anzeigefunktion Schnittstelle
wx.showMenuitems ({Menulist: [] // Alle zu angezeigten Menüelemente sind in Anhang 3 angezeigt});Alle Schnittstellen ohne Basis-Taste ausblenden wx.hideAllnonbasemenuitem ();
Zeigen Sie alle Funktionen an die Funktionstaste wx.showallnonbasemenuitem ();
Scannen Sie den Wechat
Klicken Sie auf die WeChat -Scan -Schnittstelle
wx.scanqrcode ({desc: 'scanqrcode desc', NeedResult: 0, // Die Standardeinstellung ist 0, das Scan -Ergebnis wird durch WeChat verarbeitet, und 1 gibt direkt das Scan -Ergebnis zurück, Scantype: ["QRCode", "Barcode"], // Sie können den qr -code scannen. // Wenn NeedResult 1 ist, wird das Ergebnis durch Scannen des Codes}}) zurückgegeben.Ernteadresse
Bearbeiten der Lieferadressoberfläche bearbeiten
WX.Editaddress (Zeitstempel: 0, // Standort Signatur -Zeitstempel, nur wenn er mit Version 6.0.2 kompatibel sein muss, noncestern: '', location Signatur zufälliger String, nur wenn sie mit Version 6.0.2 kompatibel sein muss, muss die Funktionen. Benutzername = res.username; Leveladresse var adress = res.address;
Holen Sie sich die nächstgelegene Zustelladressenschnittstelle
wx.getlatestaddress ({Timestamp: 0, // Ort Signature Timestamp, nur wenn es mit Version 6.0.2 kompatibel sein muss, noncest: '', // Signatur zufälliger String, nur wenn es mit Version 6.0.2 kompatibel sein muss. (res) {var userername = res.username; // Nationale Standard -Lieferadresse dritte Ebene var Adresse var adresse = res.address;Wechat -Laden
Springen Sie zur WeChat -Produktseitenschnittstelle
wx.openProductSpecificView ({productId: '', // Produkt idViewType: '' // 0. Standardwert, gewöhnliche Produktdetails Seite 1. Scannen Sie die Produktdetails Seite 2. Produktdetails Seite Speichern});Wechat -Karten -Gutschein
Geben Sie die Liste der Kartencoupons für Geschäfte frei und erhalten Sie die Liste der Benutzerauswahl
WX.CHOOSECARD ({ShopID: '', // ID -ID -Kardype: '', // Kartentyp Cardid: '', // Card -ID -Zeitstempel: 0, // Karten -ID -Zeitstempel: Noncestern: '', // Card Signature Random String Cardsign: '', // Card -Signature, Abhöhle 6. Voucher -List -Informationen, die vom Benutzer ausgewählt wurden}});Fügen Sie die Karten -Gutscheinschnittstelle in Chargen hinzu
wx.addcard ({cardList: [{cardid: '', cardext: ''}], // Die Karten -Gutscheinliste, die hinzugefügt werden muss, Erfolg: Funktion (res) {var cardlist = res.cardlist; // Die Karten -Gutscheinlisten -Informationen}});Überprüfen Sie die Karten -Gutscheinschnittstelle im WeChat -Kartenpaket
wx.opencard ({cardList: [{cardid: '', code: ''}] // Liste der zu öffnenden Kartengutscheine});Wechat -Zahlung
Initiieren Sie eine WeChat -Zahlungsanfrage
wx.choosewxpay ({timestamp: 0, // Zahlungssignature Timestamp Noncestern: '', // Zahlungssignatur zufällige Zeichenfolge Paket: '', // Bestelldetails sind erweiterte Zeichenfolge, siehe Anhang 5, Paysign: '', // Zahlungssignaturen für Details, siehe Anhang 5});Anhang 1 - JSSDK Berechtigungssignaturalgorithmus
JSAPI_TICKET
Vor der Erzeugung einer Signatur müssen Sie zuerst JSAPI_TICKET verstehen. JSAPI_TICKET ist ein temporäres Ticket, das vom offiziellen Konto verwendet wird, um die WeChat JS -Schnittstelle anzurufen. Unter normalen Umständen beträgt die Gültigkeitsdauer von JSAPI_Ticket 7200 Sekunden, was über Access_Token erhalten wird. Da die Anzahl der API -Aufrufe, um JSAPI_TICKET zu erhalten, sehr begrenzt ist, führt die häufige Aktualisierung von JSAPI_Ticket zu einer begrenzten API -Aufrufe und beeinträchtigt ihr eigenes Geschäft. Entwickler müssen in ihren Diensten jsapi_ticket weltweit zwischenspeichern.
1. Siehe das folgende Dokument, um Access_Token zu erhalten (für 7200 Sekunden gültig, Entwickler müssen in ihrem Dienst global access_token cache cache cache): ../12/4b08382e91217687730a2dfc71e9218c.html
2. Verwenden Sie den im ersten Schritt erhaltenen Access_Token, um das jsapi_ticket (für 7200 Sekunden gültig zu gültig).
Gibt erfolgreich den folgenden JSON zurück:
{"errcode":0,"errmsg":"ok","ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA","expires_in":7200}Nachdem Sie JSAPI_TICKET erhalten haben, können Sie eine Signatur für JSSDK -Berechtigungsüberprüfung erstellen.
Signaturalgorithmus
Die Regeln für die Erzeugung von Signaturen lauten wie folgt: Die an der Signatur teilnehmenden Felder umfassen Noncestern (zufällige Zeichenfolge), gültiges JSAPI_TICKET, TIMESTAMP (TIMESTAMP), URL (die URL der aktuellen Webseite, nicht einschließlich # und ihre nachfolgenden Teile). Nachdem alle Parameter sortiert werden sollen, die gemäß dem ASCII-Code des Feldnamens von klein bis groß (Wörterbuchauftrag) signiert werden, wird das Format des URL-Schlüsselwertpaares (dh KEY1 = Value1 & Key2 = value2…) verwendet, um sich in eine String-String1 zu spleißen. Es ist hier zu beachten, dass alle Parameternamen Kleinbuchstaben sind. String1 ist verschlüsselt, und der Feldname und der Feldwert sind beide ursprüngliche Werte und es wird keine URL -Flucht durchgeführt.
Das heißt, Signature = SHA1 (String1). Beispiel:
• noncestr = wm3wzytpz0WZCCNW
• JSAPI_TICKET = SM4AOVDWFPE4DXKXGES8VMCPGGVI4C3VM0P37WVUCFVKVAY_90U5H9NBSLYY3-SL-HHTDFL2FZFY1AOCHKP7QG
• Zeitstempel = 1414587457
• url = http: //mp.weixin.qq.com
Schritt 1. Nachdem alle Parameter sortiert wurden, die von kleinen bis großen (Wörterbuchreihenfolge) gemäß dem ASCII-Code des Feldnamens signiert werden sollen, spleifen Sie sie mit dem Format des URL-Schlüsselwert-Paares (dh KEY1 = value1 & Key2 = value2…) in String String1, unter dem Format des URL-Schlüsselwerts.
JSAPI_TICKET = SM4AOVDWFPE4DXKXGES8VMCPGGVI4C3VM0P37WVUCFVKVAY_90U5H9NBSLYY3-SL-HHTDFL 2fzfy1aochkp7qg & noncestal = wm3wzytpz0wzccnw × tamp = 1414587457 & url = http: //mp.weixin.qq.com
Schritt 2. Zeichenstring1 mit SHA1 und Signatur erhalten:
F4D90DAF4B3BCA3078AB155816175BA34C443A7B
Dinge zu beachten
1. Die für die Signatur verwendete Nicht -Zeugerin und der Zeitstempel müssen mit dem Nicht -Zestern und dem Zeitstempel in WX.Config übereinstimmen.
2. Die für die Signatur verwendete URL muss die vollständige URL der Seite sein, die die JS -Schnittstelle aufruft.
3. Aus Sicherheitsgründen müssen Entwickler die Signaturlogik auf der Serverseite implementieren.
Anhang 2 - Liste aller JS -Schnittstellen
• Onmenusharetimeline
• OnmenushAreappmessage
• Onmenushareqq
• OnmenushareWeibo
• Startrekord
• Stoprecord
• Onvoicerecordend
• PlayVoice
• PauseVoice
• Stoppstörungen
• Onvoiceplayend
• UploadVoice
• DownloadVoice
• WAHLIMAGE
• Vorschau
• Uploadimage
• DownloadImage
• TranslateVoice
• GetNetworkType
• OpenLocation
• GetLocation
• Einflussmännchen
• ShowoptionMenu
• Hidemenuitems
• Showmenuitems
• HideAllnonbasemenuitem
• ShowAllnonbasemenuitem
• Closewindow
• Scanqrcode
• Wählen Sie wxPay
• GetLatestAddress
• editaddress
• OpenProductSpecificView
• AddCard
• Choosesekard
• OpenCard
Anhang 3 - Liste aller Schaltflächen
Grundkategorien
• Bericht: "Menuitem: ExpoSearticle"
• Passen Sie die Schriftart an: "Menuitem: setfont"
• Tagesmodus: "Menuitem: DayMode"
• Nachtmodus: "Menuitem: NightMode"
• Aktualisieren: "Menuitem: Aktualisieren"
• Offizielles Konto anzeigen (hinzugefügt): "Menuitem: Profil"
• Offizielles Konto anzeigen (nicht hinzugefügt): "Menuitem: AddContact"
Kommunikationskategorie
• An einen Freund senden: "Menuitem: Share: AppMessage"
• Teile an Momente: "Menuitem: Share: Timeline"
• Teile an QQ: "Menuitem: Share: QQ"
• Teilen Sie Weibo: "Menuitem: Share: Weiboapp"
• Sammlung: "Menuitem: Favorit"
• Teilen Sie FB: "Menuitem: Share: Facebook"
Schutzklasse
• Debug: "Menuitem: Jsdebug"
• Bearbeiten Sie Tag: "Menuitem: Edittag"
• Löschen: "Menuitem: Löschen"
• Link kopieren: "Menuitem: Copyurl"
• Original -Webseite: "Menuitem: OriginPage"
• Lesemodus: "Menuitem: ReadMode"
• Öffnen im QQ -Browser: "Menuitem: OpenWithqqBrowser"
• Open in Safari: "Menuitem: OpenWithsafari"
• E -Mail: "Menuitem: Share: E -Mail"
• Einige besondere öffentliche Konten: "Menuitem: Share: Marke"
Anhang 4 - Standort- und Adress -Signaturgenerierungsalgorithmus
Die Erzeugungsregeln von AddRSign sind die gleichen wie die von JSSDK -Berechtigungsüberprüfung (siehe Anhang 1), die teilnehmenden Signaturparameter sind jedoch unterschiedlich. Die an AddRSign beteiligen Signaturparameter sind: Appid, URL (aktuelle Web -URL), Zeitstempel, Noncester, Accessoken (Benutzerberechtigungsnachweise, bitte finden Sie das OAuth2.0 -Protokoll, um sie zu erhalten).
Anhang 5 - Feldweiterungsfeld und Signaturgenerierungsalgorithmus
Bestelldetails (Paket) Erweiterungszeichenfolge Definition
Wenn der Händler die JS -API weiterleitet, muss der Händler die Bestelldetails zu diesem Zeitpunkt bestimmen und die Bestelldetails auf eine bestimmte Weise in das Paket kombinieren. Nachdem die JS -API aufgerufen wurde, erzeugt WeChat eine Vorauszahlungsreihenfolge über den Inhalt des Pakets. Im Folgenden wird die erforderliche Feldliste und die Signaturmethode für das Paket definiert. Die Schnittstelle muss beachtet werden: Alle eingehenden Parameter sind String -Typen!
Dieser Artikel wurde in "Zusammenfassung von JavaScript Wechat Development Skills" zusammengestellt, und jeder kann gerne lernen und lesen.
Ich möchte ein Tutorial zum WeChat Mini -Programm empfehlen, das sehr besorgt ist: "WeChat Mini -Programmentwicklungs -Tutorial" wurde vom Herausgeber aller sorgfältig zusammengestellt. Ich hoffe, es gefällt Ihnen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.