@cinerino/sdk 10.16.0-alpha.9 → 10.16.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.
@@ -28,9 +28,9 @@ async function main() {
28
28
 
29
29
  const { code } = await orderService.authorize({
30
30
  object: {
31
- orderNumber: 'TTT5-8958597-4680238',
31
+ orderNumber: 'TTT1-3713007-5542803',
32
32
  customer: {
33
- telephone: '+819012345678'
33
+ telephone: '+819011111111'
34
34
  }
35
35
  }
36
36
  });
@@ -41,7 +41,7 @@ async function main() {
41
41
  ticketToken: code // 注文コードなど
42
42
  },
43
43
  object: {
44
- id: '792595246397939-0'
44
+ id: '439736698844853-0'
45
45
  },
46
46
  location: { identifier: 'DAITEN_AUTH' }
47
47
  });
@@ -69,7 +69,10 @@ export class PaymentAsyncForceService {
69
69
  purpose: IPurpose;
70
70
  }): Promise<{ id: string }> {
71
71
  // 決済承認タスク作成
72
- const authorizeTask = await this.paymentService.authorizeMovieTicketAsync(params);
72
+ const authorizeTask = await this.paymentService.authorizeMovieTicketAsync(
73
+ params,
74
+ { giveUpInMS: 3000 }
75
+ );
73
76
  let alreadyGivenUp: boolean = false;
74
77
  setTimeout(
75
78
  () => { alreadyGivenUp = true; },
@@ -33,7 +33,7 @@ export declare type IMovieTicketMkknInfo = factory.action.check.paymentMethod.mo
33
33
  };
34
34
  export declare type IAuthorizeAnyPaymentObject = Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'amount' | 'issuedThrough' | 'paymentMethod' | 'name' | 'additionalProperty' | 'ticketToken'>;
35
35
  export declare type IAuthorizeCreditCardObject = Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'amount' | 'issuedThrough' | 'paymentMethod' | 'creditCard' | 'method' | 'paymentMethodId' | 'name' | 'additionalProperty' | 'ticketToken'>;
36
- export declare type IAuthorizeMovieTicketObject = Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'issuedThrough' | 'paymentMethod' | 'movieTickets' | 'name' | 'additionalProperty'>;
36
+ export declare type IAuthorizeMovieTicketObject = Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'issuedThrough' | 'paymentMethod' | 'movieTickets' | 'name' | 'additionalProperty' | 'ticketToken'>;
37
37
  export declare type IAuthorizePaymentCardObject = Pick<factory.action.authorize.paymentMethod.any.IObjectWithoutDetail, 'amount' | 'issuedThrough' | 'paymentMethod' | 'fromLocation' | 'name' | 'additionalProperty'> & {
38
38
  description?: string;
39
39
  };
@@ -202,4 +202,15 @@ export declare class PaymentService extends Service {
202
202
  };
203
203
  purpose: IPurpose;
204
204
  }): Promise<ITicket>;
205
+ issueTicketThroughMovieTicket(params: {
206
+ ticketedInvoice: {
207
+ issuedThrough: {
208
+ /**
209
+ * 発行決済サービスID
210
+ */
211
+ id: string;
212
+ };
213
+ };
214
+ purpose: IPurpose;
215
+ }): Promise<ITicket>;
205
216
  }
@@ -441,6 +441,27 @@ var PaymentService = /** @class */ (function (_super) {
441
441
  });
442
442
  });
443
443
  };
444
+ PaymentService.prototype.issueTicketThroughMovieTicket = function (params) {
445
+ return __awaiter(this, void 0, void 0, function () {
446
+ var purpose, ticketedInvoice;
447
+ var _this = this;
448
+ return __generator(this, function (_a) {
449
+ purpose = params.purpose, ticketedInvoice = params.ticketedInvoice;
450
+ return [2 /*return*/, this.fetch({
451
+ uri: "/payment/" + factory.service.paymentService.PaymentServiceType.MovieTicket + "/tickets",
452
+ method: 'POST',
453
+ expectedStatusCodes: [http_status_1.CREATED],
454
+ body: { purpose: purpose, ticketedInvoice: ticketedInvoice },
455
+ qs: {
456
+ purpose: { id: params.purpose.id }
457
+ }
458
+ })
459
+ .then(function (response) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
460
+ return [2 /*return*/, response.json()];
461
+ }); }); })];
462
+ });
463
+ });
464
+ };
444
465
  return PaymentService;
445
466
  }(service_1.Service));
446
467
  exports.PaymentService = PaymentService;
@@ -25,11 +25,16 @@ export declare class PaymentService extends Service {
25
25
  id: string;
26
26
  }>;
27
27
  /**
28
- * 決済カード決済承認(非同期)
28
+ * 決済カード決済承認
29
29
  */
30
30
  authorizeMovieTicketAsync(params: {
31
31
  object: IAuthorizeMovieTicketObject;
32
32
  purpose: IPurpose;
33
+ }, options: {
34
+ /**
35
+ * レイテンシ増加時の最大待機時間(milliseconds)
36
+ */
37
+ giveUpInMS: number;
33
38
  }): Promise<{
34
39
  /**
35
40
  * task ID
@@ -240,4 +245,5 @@ export declare class PaymentService extends Service {
240
245
  };
241
246
  purpose: IPurpose;
242
247
  }): Promise<ITicket>;
248
+ private issueTicketThroughMovieTicketUntilSuccess;
243
249
  }
@@ -83,6 +83,16 @@ var http_status_1 = require("http-status");
83
83
  var factory = require("../../factory");
84
84
  var index_1 = require("../../index");
85
85
  var service_1 = require("../../service");
86
+ var ISSUE_TICKET_INTERVAL_MS = 5000;
87
+ function wait(waitInMilliseconds) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ return __generator(this, function (_a) {
90
+ return [2 /*return*/, new Promise(function (resolve) {
91
+ setTimeout(function () { resolve(); }, waitInMilliseconds);
92
+ })];
93
+ });
94
+ });
95
+ }
86
96
  /**
87
97
  * 決済サービス
88
98
  */
@@ -149,11 +159,11 @@ var PaymentService = /** @class */ (function (_super) {
149
159
  });
150
160
  };
151
161
  /**
152
- * 決済カード決済承認(非同期)
162
+ * 決済カード決済承認
153
163
  */
154
- PaymentService.prototype.authorizeMovieTicketAsync = function (params) {
164
+ PaymentService.prototype.authorizeMovieTicketAsync = function (params, options) {
155
165
  return __awaiter(this, void 0, void 0, function () {
156
- var object, purpose, _a, auth, endpoint, project, seller, disableAutoRetry, retryableStatusCodes, chevrePay, paymentService;
166
+ var object, purpose, _a, auth, endpoint, project, seller, disableAutoRetry, retryableStatusCodes, chevrePay, ticketToken, paymentService;
157
167
  return __generator(this, function (_b) {
158
168
  switch (_b.label) {
159
169
  case 0:
@@ -162,6 +172,9 @@ var PaymentService = /** @class */ (function (_super) {
162
172
  return [4 /*yield*/, index_1.loadChevrePay({ auth: auth, endpoint: endpoint, disableAutoRetry: disableAutoRetry })];
163
173
  case 1:
164
174
  chevrePay = _b.sent();
175
+ return [4 /*yield*/, this.issueTicketThroughMovieTicketUntilSuccess(params, options)];
176
+ case 2:
177
+ ticketToken = (_b.sent()).ticketToken;
165
178
  return [4 /*yield*/, chevrePay.createPaymentInstance({
166
179
  project: project,
167
180
  seller: { id: (typeof (seller === null || seller === void 0 ? void 0 : seller.id) === 'string') ? seller.id : '' },
@@ -170,9 +183,12 @@ var PaymentService = /** @class */ (function (_super) {
170
183
  http_status_1.TOO_MANY_REQUESTS
171
184
  ])
172
185
  })];
173
- case 2:
186
+ case 3:
174
187
  paymentService = _b.sent();
175
- return [2 /*return*/, paymentService.authorizeMovieTicket({ object: object, purpose: purpose }, { async: true })];
188
+ return [2 /*return*/, paymentService.authorizeMovieTicket({
189
+ object: __assign(__assign({}, object), { ticketToken: ticketToken }),
190
+ purpose: purpose
191
+ }, { async: true })];
176
192
  }
177
193
  });
178
194
  });
@@ -555,6 +571,72 @@ var PaymentService = /** @class */ (function (_super) {
555
571
  });
556
572
  });
557
573
  };
574
+ PaymentService.prototype.issueTicketThroughMovieTicketUntilSuccess = function (params, options) {
575
+ var _a;
576
+ return __awaiter(this, void 0, void 0, function () {
577
+ var object, purpose, giveUpInMS, _b, auth, endpoint, project, seller, disableAutoRetry, chevrePay, paymentService4issueTicket, alreadyGivenUp, giveUpTimeout, result, issueTicketThroughMovieTicketError, error_1;
578
+ return __generator(this, function (_c) {
579
+ switch (_c.label) {
580
+ case 0:
581
+ object = params.object, purpose = params.purpose;
582
+ giveUpInMS = options.giveUpInMS;
583
+ if (typeof giveUpInMS !== 'number' || giveUpInMS <= 0) {
584
+ throw new factory.errors.Argument('giveUpInMS', 'must be number > 0');
585
+ }
586
+ _b = this.options, auth = _b.auth, endpoint = _b.endpoint, project = _b.project, seller = _b.seller, disableAutoRetry = _b.disableAutoRetry;
587
+ return [4 /*yield*/, index_1.loadChevrePay({ auth: auth, endpoint: endpoint, disableAutoRetry: disableAutoRetry })];
588
+ case 1:
589
+ chevrePay = _c.sent();
590
+ return [4 /*yield*/, chevrePay.createPaymentInstance({
591
+ project: project,
592
+ seller: { id: (typeof (seller === null || seller === void 0 ? void 0 : seller.id) === 'string') ? seller.id : '' },
593
+ retryableStatusCodes: []
594
+ })];
595
+ case 2:
596
+ paymentService4issueTicket = _c.sent();
597
+ alreadyGivenUp = false;
598
+ giveUpTimeout = setTimeout(function () { alreadyGivenUp = true; }, giveUpInMS);
599
+ issueTicketThroughMovieTicketError = new factory.errors.GatewayTimeout('given up');
600
+ _c.label = 3;
601
+ case 3:
602
+ if (!(result === undefined)) return [3 /*break*/, 9];
603
+ // 一定時間経過すればあきらめる
604
+ if (alreadyGivenUp) {
605
+ return [3 /*break*/, 9];
606
+ }
607
+ _c.label = 4;
608
+ case 4:
609
+ _c.trys.push([4, 6, , 7]);
610
+ return [4 /*yield*/, paymentService4issueTicket.issueTicketThroughMovieTicket({
611
+ ticketedInvoice: { issuedThrough: { id: (_a = object.issuedThrough) === null || _a === void 0 ? void 0 : _a.id } },
612
+ purpose: purpose
613
+ })];
614
+ case 5:
615
+ result = _c.sent();
616
+ clearTimeout(giveUpTimeout);
617
+ return [3 /*break*/, 9];
618
+ case 6:
619
+ error_1 = _c.sent();
620
+ issueTicketThroughMovieTicketError = error_1;
621
+ return [3 /*break*/, 7];
622
+ case 7:
623
+ // n秒待機
624
+ return [4 /*yield*/, wait(ISSUE_TICKET_INTERVAL_MS)];
625
+ case 8:
626
+ // n秒待機
627
+ _c.sent();
628
+ // tslint:disable-next-line:no-console
629
+ console.log('retrying issueTicketThroughMovieTicket...', issueTicketThroughMovieTicketError === null || issueTicketThroughMovieTicketError === void 0 ? void 0 : issueTicketThroughMovieTicketError.name, alreadyGivenUp);
630
+ return [3 /*break*/, 3];
631
+ case 9:
632
+ if (typeof (result === null || result === void 0 ? void 0 : result.ticketToken) === 'string') {
633
+ return [2 /*return*/, result];
634
+ }
635
+ throw issueTicketThroughMovieTicketError;
636
+ }
637
+ });
638
+ });
639
+ };
558
640
  return PaymentService;
559
641
  }(service_1.Service));
560
642
  exports.PaymentService = PaymentService;
package/lib/bundle.js CHANGED
@@ -14577,6 +14577,27 @@ var PaymentService = /** @class */ (function (_super) {
14577
14577
  });
14578
14578
  });
14579
14579
  };
14580
+ PaymentService.prototype.issueTicketThroughMovieTicket = function (params) {
14581
+ return __awaiter(this, void 0, void 0, function () {
14582
+ var purpose, ticketedInvoice;
14583
+ var _this = this;
14584
+ return __generator(this, function (_a) {
14585
+ purpose = params.purpose, ticketedInvoice = params.ticketedInvoice;
14586
+ return [2 /*return*/, this.fetch({
14587
+ uri: "/payment/" + factory.service.paymentService.PaymentServiceType.MovieTicket + "/tickets",
14588
+ method: 'POST',
14589
+ expectedStatusCodes: [http_status_1.CREATED],
14590
+ body: { purpose: purpose, ticketedInvoice: ticketedInvoice },
14591
+ qs: {
14592
+ purpose: { id: params.purpose.id }
14593
+ }
14594
+ })
14595
+ .then(function (response) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
14596
+ return [2 /*return*/, response.json()];
14597
+ }); }); })];
14598
+ });
14599
+ });
14600
+ };
14580
14601
  return PaymentService;
14581
14602
  }(service_1.Service));
14582
14603
  exports.PaymentService = PaymentService;
@@ -20306,6 +20327,16 @@ var http_status_1 = require("http-status");
20306
20327
  var factory = require("../../factory");
20307
20328
  var index_1 = require("../../index");
20308
20329
  var service_1 = require("../../service");
20330
+ var ISSUE_TICKET_INTERVAL_MS = 5000;
20331
+ function wait(waitInMilliseconds) {
20332
+ return __awaiter(this, void 0, void 0, function () {
20333
+ return __generator(this, function (_a) {
20334
+ return [2 /*return*/, new Promise(function (resolve) {
20335
+ setTimeout(function () { resolve(); }, waitInMilliseconds);
20336
+ })];
20337
+ });
20338
+ });
20339
+ }
20309
20340
  /**
20310
20341
  * 決済サービス
20311
20342
  */
@@ -20372,11 +20403,11 @@ var PaymentService = /** @class */ (function (_super) {
20372
20403
  });
20373
20404
  };
20374
20405
  /**
20375
- * 決済カード決済承認(非同期)
20406
+ * 決済カード決済承認
20376
20407
  */
20377
- PaymentService.prototype.authorizeMovieTicketAsync = function (params) {
20408
+ PaymentService.prototype.authorizeMovieTicketAsync = function (params, options) {
20378
20409
  return __awaiter(this, void 0, void 0, function () {
20379
- var object, purpose, _a, auth, endpoint, project, seller, disableAutoRetry, retryableStatusCodes, chevrePay, paymentService;
20410
+ var object, purpose, _a, auth, endpoint, project, seller, disableAutoRetry, retryableStatusCodes, chevrePay, ticketToken, paymentService;
20380
20411
  return __generator(this, function (_b) {
20381
20412
  switch (_b.label) {
20382
20413
  case 0:
@@ -20385,6 +20416,9 @@ var PaymentService = /** @class */ (function (_super) {
20385
20416
  return [4 /*yield*/, index_1.loadChevrePay({ auth: auth, endpoint: endpoint, disableAutoRetry: disableAutoRetry })];
20386
20417
  case 1:
20387
20418
  chevrePay = _b.sent();
20419
+ return [4 /*yield*/, this.issueTicketThroughMovieTicketUntilSuccess(params, options)];
20420
+ case 2:
20421
+ ticketToken = (_b.sent()).ticketToken;
20388
20422
  return [4 /*yield*/, chevrePay.createPaymentInstance({
20389
20423
  project: project,
20390
20424
  seller: { id: (typeof (seller === null || seller === void 0 ? void 0 : seller.id) === 'string') ? seller.id : '' },
@@ -20393,9 +20427,12 @@ var PaymentService = /** @class */ (function (_super) {
20393
20427
  http_status_1.TOO_MANY_REQUESTS
20394
20428
  ])
20395
20429
  })];
20396
- case 2:
20430
+ case 3:
20397
20431
  paymentService = _b.sent();
20398
- return [2 /*return*/, paymentService.authorizeMovieTicket({ object: object, purpose: purpose }, { async: true })];
20432
+ return [2 /*return*/, paymentService.authorizeMovieTicket({
20433
+ object: __assign(__assign({}, object), { ticketToken: ticketToken }),
20434
+ purpose: purpose
20435
+ }, { async: true })];
20399
20436
  }
20400
20437
  });
20401
20438
  });
@@ -20778,6 +20815,72 @@ var PaymentService = /** @class */ (function (_super) {
20778
20815
  });
20779
20816
  });
20780
20817
  };
20818
+ PaymentService.prototype.issueTicketThroughMovieTicketUntilSuccess = function (params, options) {
20819
+ var _a;
20820
+ return __awaiter(this, void 0, void 0, function () {
20821
+ var object, purpose, giveUpInMS, _b, auth, endpoint, project, seller, disableAutoRetry, chevrePay, paymentService4issueTicket, alreadyGivenUp, giveUpTimeout, result, issueTicketThroughMovieTicketError, error_1;
20822
+ return __generator(this, function (_c) {
20823
+ switch (_c.label) {
20824
+ case 0:
20825
+ object = params.object, purpose = params.purpose;
20826
+ giveUpInMS = options.giveUpInMS;
20827
+ if (typeof giveUpInMS !== 'number' || giveUpInMS <= 0) {
20828
+ throw new factory.errors.Argument('giveUpInMS', 'must be number > 0');
20829
+ }
20830
+ _b = this.options, auth = _b.auth, endpoint = _b.endpoint, project = _b.project, seller = _b.seller, disableAutoRetry = _b.disableAutoRetry;
20831
+ return [4 /*yield*/, index_1.loadChevrePay({ auth: auth, endpoint: endpoint, disableAutoRetry: disableAutoRetry })];
20832
+ case 1:
20833
+ chevrePay = _c.sent();
20834
+ return [4 /*yield*/, chevrePay.createPaymentInstance({
20835
+ project: project,
20836
+ seller: { id: (typeof (seller === null || seller === void 0 ? void 0 : seller.id) === 'string') ? seller.id : '' },
20837
+ retryableStatusCodes: []
20838
+ })];
20839
+ case 2:
20840
+ paymentService4issueTicket = _c.sent();
20841
+ alreadyGivenUp = false;
20842
+ giveUpTimeout = setTimeout(function () { alreadyGivenUp = true; }, giveUpInMS);
20843
+ issueTicketThroughMovieTicketError = new factory.errors.GatewayTimeout('given up');
20844
+ _c.label = 3;
20845
+ case 3:
20846
+ if (!(result === undefined)) return [3 /*break*/, 9];
20847
+ // 一定時間経過すればあきらめる
20848
+ if (alreadyGivenUp) {
20849
+ return [3 /*break*/, 9];
20850
+ }
20851
+ _c.label = 4;
20852
+ case 4:
20853
+ _c.trys.push([4, 6, , 7]);
20854
+ return [4 /*yield*/, paymentService4issueTicket.issueTicketThroughMovieTicket({
20855
+ ticketedInvoice: { issuedThrough: { id: (_a = object.issuedThrough) === null || _a === void 0 ? void 0 : _a.id } },
20856
+ purpose: purpose
20857
+ })];
20858
+ case 5:
20859
+ result = _c.sent();
20860
+ clearTimeout(giveUpTimeout);
20861
+ return [3 /*break*/, 9];
20862
+ case 6:
20863
+ error_1 = _c.sent();
20864
+ issueTicketThroughMovieTicketError = error_1;
20865
+ return [3 /*break*/, 7];
20866
+ case 7:
20867
+ // n秒待機
20868
+ return [4 /*yield*/, wait(ISSUE_TICKET_INTERVAL_MS)];
20869
+ case 8:
20870
+ // n秒待機
20871
+ _c.sent();
20872
+ // tslint:disable-next-line:no-console
20873
+ console.log('retrying issueTicketThroughMovieTicket...', issueTicketThroughMovieTicketError === null || issueTicketThroughMovieTicketError === void 0 ? void 0 : issueTicketThroughMovieTicketError.name, alreadyGivenUp);
20874
+ return [3 /*break*/, 3];
20875
+ case 9:
20876
+ if (typeof (result === null || result === void 0 ? void 0 : result.ticketToken) === 'string') {
20877
+ return [2 /*return*/, result];
20878
+ }
20879
+ throw issueTicketThroughMovieTicketError;
20880
+ }
20881
+ });
20882
+ });
20883
+ };
20781
20884
  return PaymentService;
20782
20885
  }(service_1.Service));
20783
20886
  exports.PaymentService = PaymentService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cinerino/sdk",
3
- "version": "10.16.0-alpha.9",
3
+ "version": "10.16.0",
4
4
  "description": "Cinerino SDK",
5
5
  "main": "./lib/index.js",
6
6
  "browser": {