@kreiseck/kasseneck-api 0.9.4 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/dist/cjs/payments/hobex-hps/index.d.ts +2 -2
- package/dist/cjs/payments/hobex-hps/index.js +36 -1
- package/dist/cjs/payments/hobex-hps/outcome.d.ts +20 -1
- package/dist/cjs/payments/hobex-hps/outcome.js +11 -0
- package/dist/cjs/payments/hobex-hps/payments.d.ts +19 -0
- package/dist/cjs/payments/hobex-hps/payments.js +160 -33
- package/dist/cjs/payments/hobex-hps/transaction-response.d.ts +180 -31
- package/dist/cjs/payments/hobex-hps/transaction-response.js +308 -88
- package/dist/cjs/payments/index.d.ts +1 -1
- package/dist/cjs/payments/index.js +8 -1
- package/dist/esm/payments/hobex-hps/index.d.ts +2 -2
- package/dist/esm/payments/hobex-hps/index.js +2 -2
- package/dist/esm/payments/hobex-hps/outcome.d.ts +20 -1
- package/dist/esm/payments/hobex-hps/outcome.js +10 -0
- package/dist/esm/payments/hobex-hps/payments.d.ts +19 -0
- package/dist/esm/payments/hobex-hps/payments.js +161 -34
- package/dist/esm/payments/hobex-hps/transaction-response.d.ts +180 -31
- package/dist/esm/payments/hobex-hps/transaction-response.js +302 -87
- package/dist/esm/payments/index.d.ts +1 -1
- package/dist/esm/payments/index.js +1 -1
- package/fixtures/hobex-hps-codes.json +365 -15
- package/fixtures/kasse-texte.json +1 -1
- package/fixtures/oberflaeche.json +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* ein, es reicht den Terminal-Rumpf roh durch — die Einordnung passiert hier.
|
|
6
6
|
*
|
|
7
7
|
* **Zwilling:** `kasseneck_api/lib/src/hobex_hps/transaction_response.dart`.
|
|
8
|
-
* Beide Seiten pinnen dieselbe Codetabelle, siehe `
|
|
8
|
+
* Beide Seiten pinnen dieselbe Codetabelle, siehe `HPS_CODES` unten
|
|
9
9
|
* und `fixtures/hobex-hps-codes.json`.
|
|
10
10
|
*
|
|
11
11
|
* **`responseCode !== '0'` ist NICHT die Pruefung auf eine Ablehnung.** Genau
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*
|
|
19
19
|
* [isConclusive] ist die einzige Stelle, an der ein Code zu einem Ausgang
|
|
20
20
|
* wird — und sie ist eine ECHTE Positivliste: nur ein Code, dessen Bedeutung
|
|
21
|
-
*
|
|
21
|
+
* feststeht und in [HPS_CODES] benannt ist, zaehlt. Jeder andere —
|
|
22
22
|
* auch ein neuer, heute noch unbekannter Code — ist eine Wissensluecke, siehe
|
|
23
23
|
* [isUnknownCode]. Am 27.08.2026 hat der Dart-Zwilling gemessen, warum die
|
|
24
24
|
* Gegenrichtung ("jeder Code ausser 9027 ist schluessig") gefaehrlich ist: ein
|
|
@@ -26,54 +26,121 @@
|
|
|
26
26
|
* schluessig und haette eine Zahlung, unter der tatsaechlich Geld geflossen
|
|
27
27
|
* sein kann, als `declined` gemeldet.
|
|
28
28
|
*/
|
|
29
|
-
/**
|
|
29
|
+
/** Wie ein Ergebniscode den Ausgang eines Vorgangs bestimmt. */
|
|
30
|
+
export type HpsCodeEffect =
|
|
31
|
+
/** Schreibt den Ausgang fest: `'0'` genehmigt, jeder andere abgelehnt. */
|
|
32
|
+
'conclusive'
|
|
33
|
+
/** Gemessen oder dokumentiert, aber KEINE Aussage (9027, 9900, 100011). */
|
|
34
|
+
| 'noStatement'
|
|
35
|
+
/**
|
|
36
|
+
* Der Host war beteiligt, das Terminal storniert nicht selbst -- ob belastet
|
|
37
|
+
* wurde, weiss das Terminal nicht. Weiterklaeren, aber ohne dass ein
|
|
38
|
+
* spaeteres `9027` daraus "nichts belastet" machen darf (siehe `payments.ts`).
|
|
39
|
+
*/
|
|
40
|
+
| 'hostUncertain';
|
|
41
|
+
/** Woher die Bedeutung eines Codes stammt. */
|
|
42
|
+
export type HpsCodeSource =
|
|
43
|
+
/** Am Geraet gemessen (`doc/kartenzahlung.md` im Dart-Zwilling). */
|
|
44
|
+
'measured'
|
|
45
|
+
/** Aus der Antwortcodeliste von hobex (erhalten 11.09.2026). */
|
|
46
|
+
| 'documented'
|
|
47
|
+
/** Beides. */
|
|
48
|
+
| 'measuredAndDocumented';
|
|
49
|
+
/**
|
|
50
|
+
* Worauf eine Kasse reagiert -- der Grund hinter einem Ergebniscode. Mehrere
|
|
51
|
+
* Codes teilen sich einen Grund, wenn am Tresen dasselbe zu tun ist
|
|
52
|
+
* (`100004`, `100005`, `100012`: "Karte nicht gelesen, noch einmal"). Der Satz
|
|
53
|
+
* fuer den Bediener steht in [HPS_REASON_HINTS]; eine Kasse mit eigener
|
|
54
|
+
* Uebersetzung schluesselt ueber den Grund selbst.
|
|
55
|
+
*/
|
|
56
|
+
export type HpsCodeReason = 'approved' | 'aborted' | 'noCard' | 'cardReadFailed' | 'cardDeclined' | 'wrongPin' | 'amountInvalid' | 'tipNotSelected' | 'terminalBusy' | 'terminalBlocked' | 'terminalSetup' | 'terminalFault' | 'requestRejected' | 'invalidTransaction' | 'refundPassword' | 'refundDisabled' | 'hostTimeoutReversed' | 'hostFault' | 'internalError' | 'canceled' | 'notAbortable' | 'noStatement' | 'technicalError' | 'unknown';
|
|
57
|
+
/** Der Satz fuer den Bediener je Grund, deutsch. */
|
|
58
|
+
export declare const HPS_REASON_HINTS: Readonly<Record<HpsCodeReason, string>>;
|
|
59
|
+
/**
|
|
60
|
+
* Die beiden Gruende hinter einem Code mit `effect: 'hostUncertain'`: ob Geld
|
|
61
|
+
* geflossen ist, weiss das Terminal nicht.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isHostUncertainReason(reason: HpsCodeReason | undefined): boolean;
|
|
64
|
+
/** Ein Ergebniscode, dessen Bedeutung feststeht (gemessen oder dokumentiert). */
|
|
30
65
|
export interface HpsMeasuredCode {
|
|
31
66
|
/** Der Ergebniscode, wie ihn das Terminal im Feld `responseCode` sendet. */
|
|
32
67
|
readonly code: string;
|
|
33
|
-
/** Bedeutung
|
|
68
|
+
/** Bedeutung — deutsch, ohne Umlaute (siehe Vorbild). */
|
|
34
69
|
readonly meaning: string;
|
|
35
70
|
/**
|
|
36
71
|
* `true`: der Code schreibt einen Ausgang fest (Teil der Positivliste,
|
|
37
|
-
* siehe [isConclusive]). `false`:
|
|
38
|
-
*
|
|
72
|
+
* siehe [isConclusive]). `false`: benannt, aber KEINE Aussage ueber den
|
|
73
|
+
* Vorgang -- oder ein ungewisser Host-Ausgang, siehe [HpsCode.effect].
|
|
39
74
|
*/
|
|
40
75
|
readonly conclusive: boolean;
|
|
41
76
|
}
|
|
77
|
+
/** Ein Eintrag der vollstaendigen Codetabelle [HPS_CODES]. */
|
|
78
|
+
export interface HpsCode extends HpsMeasuredCode {
|
|
79
|
+
/** Titel, wie hobex ihn fuehrt bzw. das Terminal als `responseText` sendet. */
|
|
80
|
+
readonly title: string;
|
|
81
|
+
readonly effect: HpsCodeEffect;
|
|
82
|
+
readonly reason: HpsCodeReason;
|
|
83
|
+
readonly source: HpsCodeSource;
|
|
84
|
+
/**
|
|
85
|
+
* Der Code weist die ANFRAGE selbst ab (TID, Form, Geraetezustand). Auf eine
|
|
86
|
+
* Zahlung ist das deren Ablehnung; auf eine STATUSABFRAGE heisst es nur, dass
|
|
87
|
+
* diese Abfrage nicht bedient wurde -- ueber den gesuchten Vorgang sagt es
|
|
88
|
+
* nichts (gemessen fuer `100108`). Siehe [isConclusiveAsStatus].
|
|
89
|
+
*/
|
|
90
|
+
readonly rejectsRequest: boolean;
|
|
91
|
+
}
|
|
42
92
|
/**
|
|
43
|
-
* Die
|
|
44
|
-
* `
|
|
45
|
-
*
|
|
93
|
+
* Die vollstaendige Codetabelle — Vertrag mit dem Dart-Zwilling
|
|
94
|
+
* (`HpsCodes.all` in `lib/src/hobex_hps/response_codes.dart`), ausgegeben als
|
|
95
|
+
* `fixtures/hobex-hps-codes.json`.
|
|
96
|
+
*
|
|
97
|
+
* Zwei Quellen: GEMESSEN an hobex-HPS-Geraeten (TID 3600335, HPS 1.10.0,
|
|
98
|
+
* Firmware 7.3.6, 26.–28.08.2026; TID 3556988 im Betrieb) und die
|
|
99
|
+
* Antwortcodeliste von hobex (erhalten 11.09.2026). Die Regel bleibt: nur ein
|
|
100
|
+
* Code mit feststehender Bedeutung schreibt einen Ausgang fest -- die Liste des
|
|
101
|
+
* Herstellers ist eine solche Feststellung, kein Raten aus der Codefamilie.
|
|
102
|
+
*
|
|
103
|
+
* Eingeordnet wird danach, WO im Ablauf ein dokumentierter Code entsteht:
|
|
104
|
+
* - vor dem Host (Anfrage, Karte, EMV-Kernel, Eingaben, Geraetezustand) ->
|
|
105
|
+
* `conclusive`, also `declined`;
|
|
106
|
+
* - `100029`, Zeitueberschreitung zum Host MIT auto-reversal -> ebenfalls
|
|
107
|
+
* `declined`, das Terminal storniert laut hobex selbst;
|
|
108
|
+
* - beim oder nach dem Host OHNE auto-reversal, dazu der Sammelcode `100999`
|
|
109
|
+
* -> `hostUncertain`.
|
|
46
110
|
*
|
|
47
|
-
* Reihenfolge
|
|
48
|
-
*
|
|
49
|
-
|
|
50
|
-
|
|
111
|
+
* Reihenfolge: zuerst die gemessenen wie im Messprotokoll, dann die
|
|
112
|
+
* dokumentierten aufsteigend -- identisch mit dem Dart-Zwilling.
|
|
113
|
+
*/
|
|
114
|
+
export declare const HPS_CODES: readonly HpsCode[];
|
|
115
|
+
/**
|
|
116
|
+
* @deprecated Seit 0.10.0 [HPS_CODES] -- die Tabelle fuehrt nicht mehr nur
|
|
117
|
+
* gemessene Codes. Gleicher Inhalt, bleibt fuer bestehende Aufrufer.
|
|
51
118
|
*/
|
|
52
119
|
export declare const HPS_MEASURED_CODES: readonly HpsMeasuredCode[];
|
|
53
120
|
/** `responseCode` einer genehmigten Zahlung. */
|
|
54
121
|
export declare const APPROVED_CODE = "0";
|
|
55
|
-
/** Siehe [
|
|
122
|
+
/** Siehe [HPS_CODES]: ungueltiger Vorgang, nichts passiert. */
|
|
56
123
|
export declare const INVALID_TRANSACTION_CODE = "9002";
|
|
57
|
-
/** Siehe [
|
|
124
|
+
/** Siehe [HPS_CODES]: aufgehoben. */
|
|
58
125
|
export declare const TRANSACTION_CANCELED_CODE = "9011";
|
|
59
|
-
/** Siehe [
|
|
126
|
+
/** Siehe [HPS_CODES]: keine Aussage. */
|
|
60
127
|
export declare const NO_STATEMENT_CODE = "9027";
|
|
61
|
-
/** Siehe [
|
|
128
|
+
/** Siehe [HPS_CODES]: Kennung nicht numerisch, keine Aussage. */
|
|
62
129
|
export declare const TECHNICAL_ERROR_CODE = "9900";
|
|
63
|
-
/** Siehe [
|
|
130
|
+
/** Siehe [HPS_CODES]: abgebrochen. */
|
|
64
131
|
export declare const ABORTED_CODE = "100002";
|
|
65
|
-
/** Siehe [
|
|
132
|
+
/** Siehe [HPS_CODES]: Karte nicht aufgelegt. */
|
|
66
133
|
export declare const CARD_NOT_PRESENT_CODE = "100003";
|
|
67
|
-
/** Siehe [
|
|
134
|
+
/** Siehe [HPS_CODES]: nicht mehr abbrechbar. */
|
|
68
135
|
export declare const NOT_ABORTABLE_CODE = "100010";
|
|
69
|
-
/** Siehe [
|
|
136
|
+
/** Siehe [HPS_CODES]: Betrag abgewiesen, vor dem Kartenfluss. */
|
|
70
137
|
export declare const INVALID_AMOUNT_CODE = "9003";
|
|
71
|
-
/** Siehe [
|
|
138
|
+
/** Siehe [HPS_CODES]: Betrag ausserhalb des zulaessigen Bereichs. */
|
|
72
139
|
export declare const AMOUNT_OUT_OF_RANGE_CODE = "100019";
|
|
73
|
-
/** Siehe [
|
|
140
|
+
/** Siehe [HPS_CODES]: Terminal-Kennung unbekannt. */
|
|
74
141
|
export declare const INVALID_TID_CODE = "100108";
|
|
75
142
|
/**
|
|
76
|
-
* Siehe [
|
|
143
|
+
* Siehe [HPS_CODES]: Host-Ablehnung, falsche PIN -- nichts belastet.
|
|
77
144
|
*
|
|
78
145
|
* Zweistellig, weil ein Antwortcode des HOSTS (ISO 8583, 55 = "Incorrect
|
|
79
146
|
* PIN"), kein `9xxx`-Terminalcode und kein `100xxx`-Code der HPS-Anwendung.
|
|
@@ -84,6 +151,58 @@ export declare const INVALID_TID_CODE = "100108";
|
|
|
84
151
|
* dann nicht 9027 antwortet, sondern mit dem Code selbst.
|
|
85
152
|
*/
|
|
86
153
|
export declare const WRONG_PIN_CODE = "55";
|
|
154
|
+
/** `100001` "Bad Request" -- nichts belastet. */
|
|
155
|
+
export declare const BAD_REQUEST_CODE = "100001";
|
|
156
|
+
/** `100004` "Card read failed" -- nichts belastet. Im Betrieb am 28.08.2026 gesehen. */
|
|
157
|
+
export declare const CARD_READ_FAILED_CODE = "100004";
|
|
158
|
+
/** `100005` "App select failed" -- nichts belastet. Im Betrieb am 28.08.2026 gesehen. */
|
|
159
|
+
export declare const APP_SELECT_FAILED_CODE = "100005";
|
|
160
|
+
/** `100006` "Communication with TecsXml failed" (No auto-reversal) -- ungewiss. */
|
|
161
|
+
export declare const HOST_COMMUNICATION_FAILED_CODE = "100006";
|
|
162
|
+
/** `100007` "Processing of TecsXml step failed" (No auto-reversal) -- ungewiss. */
|
|
163
|
+
export declare const HOST_STEP_FAILED_CODE = "100007";
|
|
164
|
+
/** `100008` "Invalid TID" laut hobex; gemessen wurde [INVALID_TID_CODE]. */
|
|
165
|
+
export declare const INVALID_TID_DOCUMENTED_CODE = "100008";
|
|
166
|
+
/** `100009` "Invalid Tx Type" -- nichts belastet. */
|
|
167
|
+
export declare const INVALID_TX_TYPE_CODE = "100009";
|
|
168
|
+
/** `100011` "Not Found" -- keine Aussage, aber ohne die Zwei-9027-Regel. */
|
|
169
|
+
export declare const NOT_FOUND_CODE = "100011";
|
|
170
|
+
/** `100012` "Max retries exceeded" -- nichts belastet. */
|
|
171
|
+
export declare const MAX_RETRIES_EXCEEDED_CODE = "100012";
|
|
172
|
+
/** `100013` "Diagnosis failed" -- nichts belastet. */
|
|
173
|
+
export declare const DIAGNOSIS_FAILED_CODE = "100013";
|
|
174
|
+
/** `100014` "Card information wasn't entered" (MOTO) -- nichts belastet. */
|
|
175
|
+
export declare const CARD_INFO_NOT_ENTERED_CODE = "100014";
|
|
176
|
+
/** `100015` "Card declined" (EMV-Kernel) -- nichts belastet. Im Betrieb am 28. und 31.08.2026 gesehen. */
|
|
177
|
+
export declare const CARD_DECLINED_CODE = "100015";
|
|
178
|
+
/** `100017` "Card Not Supported" -- nichts belastet. */
|
|
179
|
+
export declare const CARD_NOT_SUPPORTED_CODE = "100017";
|
|
180
|
+
/** `100018` "Scep enrollment failed" -- nichts belastet. */
|
|
181
|
+
export declare const SCEP_ENROLLMENT_FAILED_CODE = "100018";
|
|
182
|
+
/** `100020` "Refund password is invalid" -- nichts ausgezahlt. */
|
|
183
|
+
export declare const REFUND_PASSWORD_INVALID_CODE = "100020";
|
|
184
|
+
/** `100021` "Failed to enter the password" -- nichts ausgezahlt. */
|
|
185
|
+
export declare const PASSWORD_NOT_ENTERED_CODE = "100021";
|
|
186
|
+
/** `100022` "Terminal is blocked" -- nichts belastet. */
|
|
187
|
+
export declare const TERMINAL_BLOCKED_CODE = "100022";
|
|
188
|
+
/** `100023` "Invalid message type" -- ungewiss. */
|
|
189
|
+
export declare const INVALID_MESSAGE_TYPE_CODE = "100023";
|
|
190
|
+
/** `100024` "Transaction completion has failed" -- ungewiss. */
|
|
191
|
+
export declare const COMPLETION_FAILED_CODE = "100024";
|
|
192
|
+
/** `100025` "Refund transactions are disabled" -- nichts ausgezahlt. */
|
|
193
|
+
export declare const REFUND_DISABLED_CODE = "100025";
|
|
194
|
+
/** `100026` "Transaction was declined." (Chip-Daten fuer eine Karte ohne Chip) -- ungewiss. */
|
|
195
|
+
export declare const CHIP_DATA_MISMATCH_CODE = "100026";
|
|
196
|
+
/** `100027` "Unsupported UserData in TecsXml Response" -- ungewiss. */
|
|
197
|
+
export declare const UNSUPPORTED_USER_DATA_CODE = "100027";
|
|
198
|
+
/** `100028` "Tip selection process has failed." -- nichts belastet. */
|
|
199
|
+
export declare const TIP_SELECTION_FAILED_CODE = "100028";
|
|
200
|
+
/** `100029` "Communication with TecsXml timeout" (auto-reversal) -- nichts belastet. */
|
|
201
|
+
export declare const HOST_TIMEOUT_REVERSED_CODE = "100029";
|
|
202
|
+
/** `100998` "Terminal is busy" -- nichts belastet; gemessen als HTTP [TERMINAL_BUSY_HTTP_STATUS]. */
|
|
203
|
+
export declare const TERMINAL_BUSY_CODE = "100998";
|
|
204
|
+
/** `100999` "Internal Error" -- Sammelcode, ungewiss. */
|
|
205
|
+
export declare const INTERNAL_ERROR_CODE = "100999";
|
|
87
206
|
/**
|
|
88
207
|
* HTTP `409` ("Terminal is busy"): das Terminal serialisiert und weist eine
|
|
89
208
|
* zweite Anfrage ab, waehrend eine erste noch laeuft. Am 27.08.2026 gemessen:
|
|
@@ -91,12 +210,19 @@ export declare const WRONG_PIN_CODE = "55";
|
|
|
91
210
|
* Spur (die Statusabfrage auf seine Kennung liefert weiterhin
|
|
92
211
|
* [NO_STATEMENT_CODE]).
|
|
93
212
|
*
|
|
94
|
-
* Bewusst KEIN Eintrag in [
|
|
213
|
+
* Bewusst KEIN Eintrag in [HPS_CODES]: es ist ein HTTP-Status, kein
|
|
95
214
|
* `responseCode` — er entsteht, bevor ueberhaupt ein Antwortrumpf gelesen
|
|
96
215
|
* wird. Siehe `errors.ts` (`HpsConnectTerminalError.isTerminalBusy`) fuer die
|
|
97
216
|
* getrennte Auswertung.
|
|
98
217
|
*/
|
|
99
218
|
export declare const TERMINAL_BUSY_HTTP_STATUS = 409;
|
|
219
|
+
/** Der Eintrag zu [code] in [HPS_CODES], oder `undefined`, wenn seine Bedeutung nicht feststeht. */
|
|
220
|
+
export declare function hpsCodeInfo(code: string | undefined): HpsCode | undefined;
|
|
221
|
+
/**
|
|
222
|
+
* Der Grund zu [code] -- `'unknown'` fuer einen Code ausserhalb der Tabelle,
|
|
223
|
+
* `undefined` ohne Code.
|
|
224
|
+
*/
|
|
225
|
+
export declare function hpsCodeReason(code: string | undefined): HpsCodeReason | undefined;
|
|
100
226
|
/** Antwort des Terminals — Zahlung, Statusabfrage oder Abbruch. */
|
|
101
227
|
export interface HpsTransactionResponse {
|
|
102
228
|
/** Kennung dieser Transaktion, wie vom Terminal bestaetigt bzw. echoed. */
|
|
@@ -148,7 +274,13 @@ export declare function isApproved(res: Pick<HpsTransactionResponse, 'responseCo
|
|
|
148
274
|
export declare function isInProgress(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
149
275
|
/** `true`, wenn ein Abbruch daran scheiterte, dass der Vorgang nicht mehr abbrechbar war. */
|
|
150
276
|
export declare function isNotAbortable(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
151
|
-
/**
|
|
277
|
+
/**
|
|
278
|
+
* `true`, wenn das Terminal zu dieser Kennung keine Auskunft gibt (9027).
|
|
279
|
+
*
|
|
280
|
+
* Bewusst NUR `9027`, nicht auch [NOT_FOUND_CODE] (`100011`): auf `9027` ruht
|
|
281
|
+
* die Zwei-9027-Regel in `payments.ts`, und die ist fuer genau diesen Code
|
|
282
|
+
* gemessen. `100011` ist dokumentiert, aber nie gesehen.
|
|
283
|
+
*/
|
|
152
284
|
export declare function isNoStatement(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
153
285
|
/** `true`, wenn das Terminal einen technischen Fehler meldet (9900). */
|
|
154
286
|
export declare function isTechnicalError(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
@@ -163,13 +295,30 @@ export declare function isTechnicalError(res: Pick<HpsTransactionResponse, 'resp
|
|
|
163
295
|
export declare function isCanceled(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
164
296
|
/**
|
|
165
297
|
* `true`, wenn diese Antwort ueberhaupt eine Aussage ueber den Ausgang
|
|
166
|
-
* traegt — ein Ergebniscode, der in [
|
|
167
|
-
*
|
|
298
|
+
* traegt — ein Ergebniscode, der in [HPS_CODES] als `conclusive` gefuehrt
|
|
299
|
+
* wird. Die einzige Stelle, an der ein Code zu einem Ausgang wird.
|
|
168
300
|
*/
|
|
169
301
|
export declare function isConclusive(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
170
302
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
303
|
+
* Wie [isConclusive], aber fuer die Antwort auf eine STATUSABFRAGE: ein Code,
|
|
304
|
+
* der die Anfrage selbst abweist (`rejectsRequest`, etwa `100022` "Terminal is
|
|
305
|
+
* blocked" oder `100108` "Invalid TID"), sagt dort nichts ueber den gesuchten
|
|
306
|
+
* Vorgang. Als `declined` gelesen, hiesse ein gesperrtes Terminal "die Zahlung
|
|
307
|
+
* ist nicht belastet".
|
|
308
|
+
*/
|
|
309
|
+
export declare function isConclusiveAsStatus(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
310
|
+
/**
|
|
311
|
+
* `true`, wenn der Code einen Ausgang meldet, den das Terminal selbst nicht
|
|
312
|
+
* kennt: der hobex-Host war beteiligt, und das Terminal storniert nicht von
|
|
313
|
+
* sich aus (`effect: 'hostUncertain'`). Ein spaeteres `9027` auf die
|
|
314
|
+
* Statusabfrage heisst dann NICHT "nichts belastet" -- es spiegelt nur den
|
|
315
|
+
* Speicher des Terminals, nicht den des Hosts.
|
|
316
|
+
*/
|
|
317
|
+
export declare function isHostUncertain(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|
|
318
|
+
/**
|
|
319
|
+
* `true`, wenn ein Ergebniscode VORHANDEN ist, dessen Bedeutung aber nicht
|
|
320
|
+
* feststeht -- er fehlt in [HPS_CODES]. Ein Code, den dieses Modell schlicht
|
|
321
|
+
* nicht kennt; anders als [isNoStatement], [isTechnicalError] und
|
|
322
|
+
* [isHostUncertain], die eine Wissensluecke ueber den VORGANG benennen.
|
|
174
323
|
*/
|
|
175
324
|
export declare function isUnknownCode(res: Pick<HpsTransactionResponse, 'responseCode'>): boolean;
|