WeChat Official Account Template Message — Feld „notes" wird nicht angezeigt — Analyse und Lösung
Problem
Beim Versenden von Vorlagennachrichten (Template Messages) über das Sandbox-Konto eines WeChat Official Account bin ich auf ein merkwürdiges Verhalten gestoßen: Die Vorlage definiert 6 Felder, aber das notes-Feld (Bemerkung) wird nie angezeigt. Die anderen 5 Felder erscheinen normal.
Die Vorlage:
Name: {{name.DATA}}Telefon: {{phone.DATA}}Zeit: {{time.DATA}}Service: {{services.DATA}}Mitarbeiter: {{staff.DATA}}Bemerkung: {{notes.DATA}}Der API-Aufruf liefert Erfolg zurück (errcode = 0), aber in der tatsächlich zugestellten WeChat-Nachricht erscheinen nur die ersten 5 Zeilen — die Bemerkungs-Zeile fehlt komplett, einschließlich des Labels „Bemerkung:”.
Fehlersuche
1. Ist es ein Limit für die Feldanzahl?
Erste Vermutung: das Sandbox-Konto erlaubt nur 5 Felder. Test:
- Feld „Mitarbeiter” entfernen, nur 5 Felder senden → notes erscheint trotzdem nicht
- Felder bis auf 9 ergänzen → alle Felder, inklusive notes, werden angezeigt
Fazit: Es ist kein Limit der Feldanzahl.
2. Ist es ein Längenlimit?
Laut offizieller WeChat-Doku darf eine Zeile höchstens 20 Zeichen, der gesamte Inhalt höchstens 200 Zeichen enthalten. Meine Testdaten waren weit darunter.
Fazit: Auch kein Längenlimit.
3. Das eigentliche Muster erkennen
Nach mehreren Tests zeichnet sich ein klares Muster ab:
| Anzahl Felder | Position von notes | notes sichtbar? |
|---|---|---|
| 6 Felder | letzte Zeile | nein |
| 9 Felder | 6. (nicht letzte) | ja |
| 7 Felder | 6. (nicht letzte) | ja |
Mit anderen Worten: Solange notes die letzte Zeile der Vorlage ist, verschwindet es. Sobald ein weiteres Feld dahinter steht, erscheint es wieder.
4. Den Feldnamen testen
notes an letzter Position belassen, nur den Namen wechseln:
| Feldname | Sichtbar? |
|---|---|
| notes | nein |
| remark | nein |
| info | ja |
| message | ja |
notes und remark werden beide unterdrückt; info und message funktionieren.
Ursache
Die WeChat-Template-Message-API unterstützte ursprünglich einen Top-Level-Parameter remark, der als „Bemerkung” am Ende der Nachricht gerendert wurde. Am 30. März 2023 veröffentlichte WeChat folgende Änderung:
Vorlagennachrichten zeigen das
remark-Feld nicht mehr an.
Diese Abschaffung betrifft nicht nur den Top-Level-Parameter remark. WeChat führt zusätzlich ein semantisches Matching auf Feldnamen wie notes und remark durch — taucht ein solcher Name als letztes Feld der Vorlage auf, wird er stillschweigend als Legacy-„remark”-Slot verworfen.
Zusammengefasst:
notesundremarksind reservierte Feldnamen in WeChat-Vorlagennachrichten.- An letzter Position aktivieren sie den Legacy-Pfad und werden ohne Warnung gelöscht.
- An anderer Position oder mit einem anderen Namen werden sie ganz normal angezeigt.
Lösung
Variante 1: Feld umbenennen (empfohlen)
Die sauberste Lösung: notes umbenennen zu einem nicht reservierten Namen wie message, info, desc usw.
Name: {{name.DATA}}Telefon: {{phone.DATA}}Zeit: {{time.DATA}}Service: {{services.DATA}}Mitarbeiter: {{staff.DATA}}Nachricht: {{message.DATA}}Variante 2: Platzhalter-Feld hinter notes anhängen
Wenn die Vorlage bereits geprüft, produktiv und in mehreren Integrationen genutzt wird und ein Umbenennen problematisch ist, kann man hinter notes ein Dummy-Feld setzen, damit es nicht mehr die letzte Zeile ist:
Name: {{name.DATA}}Telefon: {{phone.DATA}}Zeit: {{time.DATA}}Service: {{services.DATA}}Mitarbeiter: {{staff.DATA}}Bemerkung: {{notes.DATA}}Sonstiges: {{other.DATA}}Beim Senden kann other einen leeren String oder einen Platzhalter enthalten.
Code-Anpassung
Im Backend den Feldnamen von notes auf message umstellen:
// WICHTIG: notes nicht als Feldname verwenden.// WeChat behandelt es als reserviertes "remark"-Feld und blendet es kommentarlos aus.return { name, phone, time: timeRange, services, staff, message // vorher: notes};Fazit
- WeChat Official Account Vorlagennachrichten haben reservierte Feldnamen. Namen mit „remark”-Semantik wie
notesoderremarkwerden als Legacy-Bemerkungs-Slot interpretiert und nicht angezeigt. - Das ist eine Folgeerscheinung der WeChat-Änderung von 2023, mit der das
remark-Feld in Vorlagennachrichten abgeschafft wurde — und das nicht prominent dokumentiert ist. - Der Fix: einen neutralen Namen wie
message,infooderdescverwenden — oder ein Platzhalterfeld hinternotesanhängen. - Bei „kein Fehler, aber nichts sichtbar”-Problemen lohnt es sich, Feldanzahl, Position und Name jeweils einzeln zu variieren — das Muster lässt sich so schneller finden als in der Doku.