@curless/hotel-storefront 0.35.0 → 0.35.2
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/dist/card.generated.d.ts +1 -1
- package/dist/card.generated.js +2 -2
- package/dist/card.generated.js.map +1 -1
- package/dist/config.d.ts +11 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/huazhu/backend.d.ts.map +1 -1
- package/dist/huazhu/backend.js +90 -11
- package/dist/huazhu/backend.js.map +1 -1
- package/dist/huazhu/bookings.d.ts +2 -0
- package/dist/huazhu/bookings.d.ts.map +1 -1
- package/dist/huazhu/bookings.js.map +1 -1
- package/dist/huazhu/catalog.d.ts +7 -1
- package/dist/huazhu/catalog.d.ts.map +1 -1
- package/dist/huazhu/catalog.js +8 -4
- package/dist/huazhu/catalog.js.map +1 -1
- package/dist/huazhu/make.d.ts.map +1 -1
- package/dist/huazhu/make.js +44 -13
- package/dist/huazhu/make.js.map +1 -1
- package/dist/legal.d.ts.map +1 -1
- package/dist/legal.js +18 -6
- package/dist/legal.js.map +1 -1
- package/dist/payments/checkout.d.ts +27 -2
- package/dist/payments/checkout.d.ts.map +1 -1
- package/dist/payments/checkout.js +9 -0
- package/dist/payments/checkout.js.map +1 -1
- package/dist/payments/fake-stripe.d.ts +6 -3
- package/dist/payments/fake-stripe.d.ts.map +1 -1
- package/dist/payments/fake-stripe.js +35 -5
- package/dist/payments/fake-stripe.js.map +1 -1
- package/dist/payments/stripe-checkout.d.ts +9 -1
- package/dist/payments/stripe-checkout.d.ts.map +1 -1
- package/dist/payments/stripe-checkout.js +45 -5
- package/dist/payments/stripe-checkout.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +4 -1
- package/dist/tools.js.map +1 -1
- package/dist/vocab.d.ts +8 -1
- package/dist/vocab.d.ts.map +1 -1
- package/dist/vocab.js +5 -2
- package/dist/vocab.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.generated.js","sourceRoot":"","sources":["../src/card.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wEAAwE;AACxE,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,IAAI,CAChD,
|
|
1
|
+
{"version":3,"file":"card.generated.js","sourceRoot":"","sources":["../src/card.generated.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,wEAAwE;AACxE,gFAAgF;AAChF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,IAAI,CAChD,kvwzBAAkvwzB,EAClvwzB,QAAQ,CACT,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEnB,6GAA6G;AAC7G,MAAM,CAAC,MAAM,qBAAqB,GAChC,kEAAkE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -247,10 +247,17 @@ export type ApiSource = {
|
|
|
247
247
|
* is `<prefix>_GATEWAY_KEY` in the environment, never here.
|
|
248
248
|
*/
|
|
249
249
|
prepaid?: {
|
|
250
|
-
/**
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
250
|
+
/**
|
|
251
|
+
* Who takes the money: the agentbank gateway (the default), or Stripe
|
|
252
|
+
* directly - its hosted Checkout page and refunds, test mode only, the key
|
|
253
|
+
* in `<prefix>_STRIPE_KEY` (robin, 2026-10-15: Curless's acquiring is not
|
|
254
|
+
* connected yet, and no merchant can be opened there).
|
|
255
|
+
*/
|
|
256
|
+
provider?: 'gateway' | 'stripe';
|
|
257
|
+
/** The gateway, e.g. https://mcp.curless.ai. Needed for `gateway`. */
|
|
258
|
+
gatewayUrl?: string;
|
|
259
|
+
/** The Curless merchant the money is taken for (a test-mode one). Needed for `gateway`. */
|
|
260
|
+
merchantId?: string;
|
|
254
261
|
/** On the paying page as whose order it is. Default: the brand. */
|
|
255
262
|
merchantName?: string;
|
|
256
263
|
merchantUrl?: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,sFAAsF;IACtF,EAAE,EAAE,MAAM,CAAC;IAEX,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd;;;;;WAKG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;;;;;;;WAQG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;;;;;;;WAQG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;;;;;;;WAUG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrE;;;;;;;;;;;;;;WAcG;QACH,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB;;;;;eAKG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SACpC,CAAC;QACF;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sFAAsF;QACtF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,IAAI,EAAE;QACJ;;;;;;;;WAQG;QACH,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;QACrC,2FAA2F;QAC3F,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;QAC7B,gFAAgF;QAChF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mDAAmD;QACnD,GAAG,CAAC,EAAE,SAAS,CAAC;QAChB;;;;;WAKG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IAEF,2GAA2G;IAC3G,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QAGf,6EAA6E;QAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;;;;WAKG;QACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,KAAK,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mEAAmE;QACnE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;;;;GAQG;AACH;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,0GAA0G;IAC1G,EAAE,EAAE,MAAM,CAAC;IACX,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QACR;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;QAChC,sEAAsE;QACtE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,2FAA2F;QAC3F,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,mEAAmE;QACnE,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC,CAAC;AAQF;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,QAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;CAiC5D,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAqVA,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CACjC,CAAC;KACE,WAAW,EAAE;KACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;KAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE3B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAmC,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,OAAO,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;IAC7D,OAAO;QACL,UAAU,EAAE,QAAQ,MAAM,GAAG,MAAM,EAAE;QACrC,QAAQ,EAAE,OAAO,MAAM,GAAG,IAAI,EAAE;QAChC,yEAAyE;QACzE,0EAA0E;QAC1E,+CAA+C;QAC/C,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE;QACpC,UAAU,EAAE,QAAQ,MAAM,QAAQ;QAClC,SAAS,EAAE,UAAU,MAAM,MAAM;QACjC,QAAQ,EAAE,QAAQ,MAAM,MAAM;QAC9B,SAAS,EAAE,SAAS,MAAM,MAAM;QAChC,cAAc,EAAE,WAAW,MAAM,SAAS;QAC1C,YAAY,EAAE,WAAW,MAAM,UAAU;QACzC,mBAAmB,EAAE,WAAW,MAAM,cAAc;QACpD,aAAa,EAAE,UAAU,MAAM,SAAS;QACxC,yEAAyE;QACzE,kEAAkE;QAClE,aAAa,EAAE,WAAW,MAAM,gBAAgB;QAChD,aAAa,EAAE,UAAU,MAAM,SAAS;QACxC,QAAQ,EAAE,OAAO,MAAM,GAAG,IAAI,WAAW;QACzC,wEAAwE;QACxE,2EAA2E;QAC3E,6DAA6D;QAC7D,OAAO,EAAE,WAAW,MAAM,GAAG,MAAM,EAAE;QACrC,SAAS,EAAE,QAAQ,MAAM,WAAW;QACpC,MAAM,EAAE,WAAW,MAAM,QAAQ;QACjC,OAAO,EAAE,YAAY,MAAM,QAAQ;QACnC,iBAAiB,EAAE,UAAU,MAAM,aAAa;KACxC,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/huazhu/backend.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/huazhu/backend.ts"],"names":[],"mappings":"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"}
|
package/dist/huazhu/backend.js
CHANGED
|
@@ -480,7 +480,11 @@ export const createHuazhuHotels = (opts) => {
|
|
|
480
480
|
const ariTtl = opts.ariTtlMs ?? 60_000;
|
|
481
481
|
const productsTtl = opts.productsTtlMs ?? 10 * 60_000;
|
|
482
482
|
const allowTags = new Set(opts.allowTags ?? []);
|
|
483
|
-
const view = {
|
|
483
|
+
const view = {
|
|
484
|
+
language: opts.language,
|
|
485
|
+
tz: opts.tz,
|
|
486
|
+
...(opts.testEnvironment ? { test: true } : {}),
|
|
487
|
+
};
|
|
484
488
|
const en = opts.language === 'en';
|
|
485
489
|
/** A room type's name in the connector's language - see english.ts. */
|
|
486
490
|
const roomTypeOf = (p) => (en ? roomNameEn(p.roomTypeName) : undefined) ?? p.roomTypeName;
|
|
@@ -591,7 +595,7 @@ export const createHuazhuHotels = (opts) => {
|
|
|
591
595
|
/** A hotel's own name in each language Huazhu writes it in - beside every `hotelName`. */
|
|
592
596
|
const hotelNamesOf = (hotelId) => {
|
|
593
597
|
const raw = findHotel(hotelId);
|
|
594
|
-
return raw ? namesOf(raw).name : undefined;
|
|
598
|
+
return raw ? namesOf(raw, !!opts.testEnvironment).name : undefined;
|
|
595
599
|
};
|
|
596
600
|
/**
|
|
597
601
|
* Every hotel a name could be - the ones `findHotel` will not choose
|
|
@@ -1024,9 +1028,16 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1024
1028
|
const only = (k) => kinds.size === 1 && kinds.has(k);
|
|
1025
1029
|
if (only('party'))
|
|
1026
1030
|
return partyNeedsOf(stay.guests, largestOf(fails));
|
|
1027
|
-
|
|
1031
|
+
// A rate turned down only for being paid in advance passed every other
|
|
1032
|
+
// check: those nights have rooms, all of them prepaid - beside rates that
|
|
1033
|
+
// are sold out or closed, which no other request would open either. Not
|
|
1034
|
+
// beside a party too big or too many rooms: a different request might
|
|
1035
|
+
// find a rate paid at the hotel. At Huazhu's test hotel (2026-10-15) 28
|
|
1036
|
+
// rates were prepaid and 4 sold out, and the guest was told only that
|
|
1037
|
+
// nothing could be booked (总线程).
|
|
1038
|
+
if (kinds.has('prepaid') && !kinds.has('party') && !kinds.has('too-many-rooms'))
|
|
1028
1039
|
return {
|
|
1029
|
-
why: 'Every
|
|
1040
|
+
why: 'Every room still open here for those nights is paid in advance, and this connector books rates paid at the hotel.',
|
|
1030
1041
|
code: 'prepaid-only',
|
|
1031
1042
|
};
|
|
1032
1043
|
if (only('sold-out'))
|
|
@@ -1167,7 +1178,9 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1167
1178
|
kind: 'room',
|
|
1168
1179
|
hotelId: h.hotelId,
|
|
1169
1180
|
hotelName,
|
|
1170
|
-
...(namesOf(h
|
|
1181
|
+
...(namesOf(h, !!opts.testEnvironment).name
|
|
1182
|
+
? { hotelNames: namesOf(h, !!opts.testEnvironment).name }
|
|
1183
|
+
: {}),
|
|
1171
1184
|
roomRef: room.id,
|
|
1172
1185
|
title: room.name,
|
|
1173
1186
|
detail: [
|
|
@@ -1624,7 +1637,8 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1624
1637
|
const tries = (p.refund?.tries ?? 0) + 1;
|
|
1625
1638
|
const at = p.refund?.at ?? now();
|
|
1626
1639
|
try {
|
|
1627
|
-
|
|
1640
|
+
// Named by when it was decided: the same refund retried is the same refund.
|
|
1641
|
+
const r = await checkout.refund(p.sessionId, reason, `${row.distributorResId}-${at}`);
|
|
1628
1642
|
store.update(id, {
|
|
1629
1643
|
prepaid: { ...p, refund: { reason, at, requestId: r.requestId, status: r.status, tries } },
|
|
1630
1644
|
});
|
|
@@ -1640,6 +1654,7 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1640
1654
|
}
|
|
1641
1655
|
};
|
|
1642
1656
|
/** Whether a booking paid in advance still has money work to do. */
|
|
1657
|
+
let ticking = false;
|
|
1643
1658
|
const moneyPending = (b) => {
|
|
1644
1659
|
const p = b.prepaid;
|
|
1645
1660
|
if (!p)
|
|
@@ -1648,6 +1663,9 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1648
1663
|
return true;
|
|
1649
1664
|
if (!p.paidAt)
|
|
1650
1665
|
return false;
|
|
1666
|
+
// Booked: Huazhu's order number still to be written onto the payment, once.
|
|
1667
|
+
if (b.status === 'confirmed' && b.resId && !p.noted && !p.refund && checkout?.annotate)
|
|
1668
|
+
return true;
|
|
1651
1669
|
if (!p.refund?.requestId)
|
|
1652
1670
|
return !!p.refund || b.status === 'failed' || b.status === 'unconfirmed';
|
|
1653
1671
|
return !['refunded', 'failed', 'rejected'].includes(p.refund.status ?? '');
|
|
@@ -1679,6 +1697,36 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1679
1697
|
return; // asked again on the next pass
|
|
1680
1698
|
}
|
|
1681
1699
|
if (state === 'paid') {
|
|
1700
|
+
// ⚠️ THE MONEY HELD TO THE QUOTE BEFORE ANYTHING IS BOOKED (总线程,
|
|
1701
|
+
// 2026-10-15): what the page took, to the fen and in the currency,
|
|
1702
|
+
// is the total the guest was shown. A page paid for anything else
|
|
1703
|
+
// books nothing, and all of what it took goes back.
|
|
1704
|
+
let took;
|
|
1705
|
+
try {
|
|
1706
|
+
took = await checkout.paidAmount(p.sessionId);
|
|
1707
|
+
}
|
|
1708
|
+
catch {
|
|
1709
|
+
return; // asked again on the next pass
|
|
1710
|
+
}
|
|
1711
|
+
const want = row.quote.total;
|
|
1712
|
+
if (!took || took.amountMinor !== want.minor || took.currency !== want.currency) {
|
|
1713
|
+
const said = took ? `${took.amountMinor} ${took.currency}` : 'an amount it could not say';
|
|
1714
|
+
store.update(row.id, {
|
|
1715
|
+
status: 'failed',
|
|
1716
|
+
prepaid: {
|
|
1717
|
+
...p,
|
|
1718
|
+
paidAt: now(),
|
|
1719
|
+
url: undefined,
|
|
1720
|
+
refund: {
|
|
1721
|
+
reason: `the payment page took ${said}, not the ${want.minor} ${want.currency} quoted - nothing was booked`,
|
|
1722
|
+
at: now(),
|
|
1723
|
+
tries: 0,
|
|
1724
|
+
},
|
|
1725
|
+
},
|
|
1726
|
+
});
|
|
1727
|
+
console.error(`[huazhu prepaid ${row.id}] ⚠️ paid ${said} against ${want.minor} ${want.currency} quoted: not booked, refunding`);
|
|
1728
|
+
return;
|
|
1729
|
+
}
|
|
1682
1730
|
store.update(row.id, { prepaid: { ...p, paidAt: now(), url: undefined } });
|
|
1683
1731
|
await bookPaid(row.id);
|
|
1684
1732
|
}
|
|
@@ -1692,6 +1740,22 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1692
1740
|
}
|
|
1693
1741
|
if (!p.paidAt)
|
|
1694
1742
|
return;
|
|
1743
|
+
// ⚠️ HUAZHU'S ORDER NUMBER ON THE PAYMENT, ONCE (总线程, 2026-10-15), so
|
|
1744
|
+
// Stripe's dashboard and Huazhu's order are one look apart. Tried once:
|
|
1745
|
+
// a failure is said in the log and never touches the booking.
|
|
1746
|
+
if (row.status === 'confirmed' && row.resId && !p.noted && !p.refund && checkout.annotate) {
|
|
1747
|
+
store.update(row.id, { prepaid: { ...p, noted: now() } });
|
|
1748
|
+
try {
|
|
1749
|
+
await checkout.annotate(p.sessionId ?? '', {
|
|
1750
|
+
huazhu_res_id: row.resId,
|
|
1751
|
+
...(row.resCode ? { huazhu_res_code: row.resCode } : {}),
|
|
1752
|
+
});
|
|
1753
|
+
}
|
|
1754
|
+
catch (err) {
|
|
1755
|
+
console.error(`[huazhu prepaid ${row.id}] Huazhu's order ${row.resId} could not be written onto payment ${p.sessionId}: ${err.message}`);
|
|
1756
|
+
}
|
|
1757
|
+
return;
|
|
1758
|
+
}
|
|
1695
1759
|
if (!p.refund?.requestId &&
|
|
1696
1760
|
(p.refund || row.status === 'failed' || row.status === 'unconfirmed')) {
|
|
1697
1761
|
await refundOf(row.id, p.refund?.reason ??
|
|
@@ -1744,7 +1808,9 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1744
1808
|
failed.push({
|
|
1745
1809
|
hotelId: line.hotelId,
|
|
1746
1810
|
hotelName: named?.hotel ?? (raw ? toHotel(raw, view, now()).name : line.hotelId),
|
|
1747
|
-
...(raw && namesOf(raw
|
|
1811
|
+
...(raw && namesOf(raw, !!opts.testEnvironment).name
|
|
1812
|
+
? { hotelNames: namesOf(raw, !!opts.testEnvironment).name }
|
|
1813
|
+
: {}),
|
|
1748
1814
|
stay: line.stay,
|
|
1749
1815
|
...(line.hourly ? { hourly: line.hourly } : {}),
|
|
1750
1816
|
...(named?.room ? { roomName: named.room } : {}),
|
|
@@ -1894,6 +1960,7 @@ export const createHuazhuHotels = (opts) => {
|
|
|
1894
1960
|
try {
|
|
1895
1961
|
opened = await checkout.open({
|
|
1896
1962
|
ref: dres,
|
|
1963
|
+
code: row.confirmationCode,
|
|
1897
1964
|
title: `${plan.qline.hotelName} · ${plan.qline.title}`.slice(0, 200),
|
|
1898
1965
|
amountMinor: allIn,
|
|
1899
1966
|
currency: cur,
|
|
@@ -2101,9 +2168,19 @@ export const createHuazhuHotels = (opts) => {
|
|
|
2101
2168
|
* money going back.
|
|
2102
2169
|
*/
|
|
2103
2170
|
async prepaidTick() {
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2171
|
+
// ⚠️ ONE PASS AT A TIME: a pass slower than the ten seconds between
|
|
2172
|
+
// them would otherwise book a paid stay, or give money back, twice.
|
|
2173
|
+
if (ticking)
|
|
2174
|
+
return;
|
|
2175
|
+
ticking = true;
|
|
2176
|
+
try {
|
|
2177
|
+
for (const row of store.all())
|
|
2178
|
+
if (moneyPending(row))
|
|
2179
|
+
await settlePrepaid(row);
|
|
2180
|
+
}
|
|
2181
|
+
finally {
|
|
2182
|
+
ticking = false;
|
|
2183
|
+
}
|
|
2107
2184
|
},
|
|
2108
2185
|
imageDomains() {
|
|
2109
2186
|
const hosts = new Set();
|
|
@@ -2128,6 +2205,8 @@ export const createHuazhuHotels = (opts) => {
|
|
|
2128
2205
|
const ceilingHitAt = store.ceilingHitAt;
|
|
2129
2206
|
const ceiling = ceilingHitAt !== undefined && now() - ceilingHitAt < DAY_MS;
|
|
2130
2207
|
return {
|
|
2208
|
+
// Which Huazhu this is, for whoever checks a deployment: its test system or not.
|
|
2209
|
+
...(opts.testEnvironment ? { test: true } : {}),
|
|
2131
2210
|
catalog: catalog.state(),
|
|
2132
2211
|
bookings: rows.length,
|
|
2133
2212
|
pending: rows.filter((r) => r.pendingSince !== undefined).length,
|
|
@@ -2503,7 +2582,7 @@ export const createHuazhuHotels = (opts) => {
|
|
|
2503
2582
|
const name = hotel?.name ?? h.hotelName;
|
|
2504
2583
|
// 全季酒店(北京国贸店) already says 北京 - as the demonstration's do.
|
|
2505
2584
|
const city = hotel?.city && !name.includes(hotel.city) ? hotel.city : undefined;
|
|
2506
|
-
const names = namesOf(h).name;
|
|
2585
|
+
const names = namesOf(h, !!opts.testEnvironment).name;
|
|
2507
2586
|
return { id: h.hotelId, name, ...(city ? { city } : {}), ...(names ? { names } : {}) };
|
|
2508
2587
|
});
|
|
2509
2588
|
},
|