zhaoJians Tech-Notizen

WeChat Official Account Template Message — Feld „notes" wird nicht angezeigt — Analyse und Lösung

Technologie ~5017 Wörter · 13 Min. Lesezeit - Aufrufe

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 FelderPosition von notesnotes sichtbar?
6 Felderletzte Zeilenein
9 Felder6. (nicht letzte)ja
7 Felder6. (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:

FeldnameSichtbar?
notesnein
remarknein
infoja
messageja

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:

  • notes und remark sind 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

  1. WeChat Official Account Vorlagennachrichten haben reservierte Feldnamen. Namen mit „remark”-Semantik wie notes oder remark werden als Legacy-Bemerkungs-Slot interpretiert und nicht angezeigt.
  2. Das ist eine Folgeerscheinung der WeChat-Änderung von 2023, mit der das remark-Feld in Vorlagennachrichten abgeschafft wurde — und das nicht prominent dokumentiert ist.
  3. Der Fix: einen neutralen Namen wie message, info oder desc verwenden — oder ein Platzhalterfeld hinter notes anhängen.
  4. 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.

Quellen

Teilen:

Kommentare