@chevre/domain 23.2.0-alpha.60 → 23.2.0-alpha.61

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.
Files changed (59) hide show
  1. package/lib/chevre/factory/transactionNumber.js +1 -1
  2. package/lib/chevre/repo/confirmationNumber.js +1 -1
  3. package/lib/chevre/repo/event.d.ts +0 -15
  4. package/lib/chevre/repo/event.js +74 -75
  5. package/lib/chevre/repo/eventSeries.d.ts +1 -7
  6. package/lib/chevre/repo/eventSeries.js +50 -46
  7. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +40 -13
  8. package/lib/chevre/repo/orderNumber.d.ts +0 -1
  9. package/lib/chevre/repo/orderNumber.js +21 -22
  10. package/lib/chevre/repo/task.d.ts +1 -1
  11. package/lib/chevre/service/assetTransaction/fixInformAction.d.ts +3 -0
  12. package/lib/chevre/service/assetTransaction/fixInformAction.js +3 -0
  13. package/lib/chevre/service/assetTransaction/pay/cancel.d.ts +12 -0
  14. package/lib/chevre/service/assetTransaction/pay/cancel.js +25 -0
  15. package/lib/chevre/service/assetTransaction/pay/check.d.ts +23 -0
  16. package/lib/chevre/service/assetTransaction/pay/check.js +37 -0
  17. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +24 -0
  18. package/lib/chevre/service/assetTransaction/pay/confirm.js +72 -0
  19. package/lib/chevre/service/assetTransaction/pay/exportTasksById.d.ts +18 -0
  20. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +111 -0
  21. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +48 -0
  22. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +164 -0
  23. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +20 -0
  24. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +59 -0
  25. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.d.ts +2 -2
  26. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.js +1 -1
  27. package/lib/chevre/service/assetTransaction/pay/{factory.d.ts → start/factory.d.ts} +1 -1
  28. package/lib/chevre/service/assetTransaction/pay/{factory.js → start/factory.js} +1 -1
  29. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.d.ts → start/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts} +4 -4
  30. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.js → start/preStart/validateAcceptedPaymentMethodIfNeeded.js} +1 -4
  31. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.d.ts +8 -0
  32. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +54 -0
  33. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.d.ts +13 -0
  34. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +49 -0
  35. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +29 -0
  36. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +37 -0
  37. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +42 -0
  38. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +31 -0
  39. package/lib/chevre/service/assetTransaction/pay/start.d.ts +60 -0
  40. package/lib/chevre/service/assetTransaction/pay/start.js +145 -0
  41. package/lib/chevre/service/assetTransaction/pay.d.ts +8 -170
  42. package/lib/chevre/service/assetTransaction/pay.js +16 -623
  43. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  44. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  45. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  46. package/package.json +3 -5
  47. package/example/src/chevre/orderNumber/decryptOrderNumber.ts +0 -14
  48. package/lib/chevre/service/task/createEvent/createEvent.d.ts +0 -25
  49. package/lib/chevre/service/task/createEvent/createEvent.js +0 -45
  50. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +0 -22
  51. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +0 -190
  52. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.d.ts +0 -15
  53. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +0 -118
  54. package/lib/chevre/service/task/createEvent/createEventBySchedule.d.ts +0 -25
  55. package/lib/chevre/service/task/createEvent/createEventBySchedule.js +0 -107
  56. package/lib/chevre/service/task/createEvent/createEventSeries.d.ts +0 -13
  57. package/lib/chevre/service/task/createEvent/createEventSeries.js +0 -118
  58. package/lib/chevre/service/task/createEvent.d.ts +0 -6
  59. package/lib/chevre/service/task/createEvent.js +0 -46
@@ -1,627 +1,20 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.publishPaymentUrl = publishPaymentUrl;
13
- exports.check = check;
14
- exports.start = start;
15
- exports.confirm = confirm;
16
- exports.cancel = cancel;
17
- exports.exportTasksById = exportTasksById;
18
- exports.searchGMOTrade = searchGMOTrade;
19
- const moment = require("moment");
20
- const factory = require("../../factory");
21
- const CreditCardPayment = require("../payment/creditCard");
22
- const MovieTicketPayment = require("../payment/movieTicket");
23
- const PaymentCardPayment = require("../payment/paymentCard");
24
- const fixInformAction_1 = require("./fixInformAction");
25
- const validation_1 = require("./pay/account/validation");
26
- const factory_1 = require("./pay/factory");
27
- const validateAcceptedPaymentMethodIfNeeded_1 = require("./pay/validateAcceptedPaymentMethodIfNeeded");
28
- function publishPaymentUrlResult2recipe(params) {
29
- const { project, result } = params;
30
- return {
31
- project: { id: project.id, typeOf: factory.organizationType.Project },
32
- typeOf: 'Recipe',
33
- recipeCategory: factory.recipe.RecipeCategory.publishPaymentUrl,
34
- step: [{
35
- typeOf: 'HowToSection',
36
- itemListElement: [
37
- {
38
- typeOf: 'HowToStep',
39
- identifier: factory.recipe.StepIdentifier.entryTran,
40
- itemListElement: [{
41
- typeOf: 'HowToDirection',
42
- beforeMedia: result.entryTranArgs,
43
- afterMedia: result.entryTranResult
44
- // text: 'entryTran'
45
- }]
46
- },
47
- {
48
- typeOf: 'HowToStep',
49
- identifier: factory.recipe.StepIdentifier.execTran,
50
- itemListElement: [{
51
- typeOf: 'HowToDirection',
52
- beforeMedia: result.execTranArgs,
53
- afterMedia: result.execTranResult
54
- // text: 'execTran'
55
- }]
56
- }
57
- ]
58
- }]
59
- };
60
- }
3
+ exports.start = exports.searchGMOTrade = exports.publishPaymentUrl = exports.exportTasksById = exports.confirm = exports.check = exports.cancel = void 0;
61
4
  /**
62
- * 決済ロケーション発行
5
+ * 決済取引サービス
63
6
  */
64
- // tslint:disable-next-line:max-func-body-length
65
- function publishPaymentUrl(params, options) {
66
- // tslint:disable-next-line:max-func-body-length
67
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
68
- var _a, _b, _c, _d, _e, _f;
69
- const paymentServiceType = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf;
70
- // 金額をfix
71
- const amount = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.amount;
72
- if (typeof amount !== 'number') {
73
- throw new factory.errors.ArgumentNull('object.paymentMethod.amount');
74
- }
75
- const transactionNumber = params.transactionNumber;
76
- if (typeof transactionNumber !== 'string' || transactionNumber.length === 0) {
77
- throw new factory.errors.ArgumentNull('transactionNumber');
78
- }
79
- yield validateSeller(params)(repos);
80
- // リソースの対応決済方法検証(2025-12-02~)
81
- yield (0, validateAcceptedPaymentMethodIfNeeded_1.validateAcceptedPaymentMethodIfNeeded)(params)(repos);
82
- // 決済サービス確認
83
- const paymentServiceId = getPaymentServiceId(params);
84
- // 決済受入アクション生成(2024-03-28~)
85
- const taskId = (_c = options === null || options === void 0 ? void 0 : options.executor) === null || _c === void 0 ? void 0 : _c.id;
86
- const actionAttributes = Object.assign(Object.assign(Object.assign({ project: params.project, typeOf: factory.actionType.AcceptAction, agent: params.agent, object: {
87
- object: params.object,
88
- transactionNumber,
89
- typeOf: params.typeOf
90
- }, purpose: { typeOf: factory.transactionType.PlaceOrder, id: options.purposeAsTransaction.id }, instrument: (Array.isArray(params.instrument)) ? params.instrument : [] }, (typeof taskId === 'string')
91
- ? { sameAs: { id: taskId, typeOf: 'Task' } } // タスク関連付け(2024-05-22~)
92
- : undefined), (typeof ((_d = params.location) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string')
93
- ? { location: params.location }
94
- : undefined), (typeof params.identifier === 'string') ? { identifier: params.identifier } : undefined);
95
- const action = yield repos.action.start(actionAttributes);
96
- let result;
97
- let recipe;
98
- try {
99
- switch (paymentServiceType) {
100
- case factory.service.paymentService.PaymentServiceType.CreditCard:
101
- const authorizeResult = yield CreditCardPayment.authorize(Object.assign(Object.assign({}, params), { id: '' // 決済URL発行プロセスにおいては決済取引IDは使用しないので空文字でok
102
- }), paymentServiceId, {
103
- processPublishPaymentUrl: true,
104
- executor: (typeof ((_e = options.executor) === null || _e === void 0 ? void 0 : _e.id) === 'string') ? { id: options.executor.id } : {} // タスク関連付け(2024-05-22~)
105
- })(repos, settings);
106
- let paymentUrl;
107
- // 3DS拡張(2024-01-02~)
108
- const retUrl = (_f = params.object.paymentMethod.creditCard) === null || _f === void 0 ? void 0 : _f.retUrl;
109
- if (typeof retUrl === 'string' && retUrl.length > 0) {
110
- paymentUrl = authorizeResult.execTranResult.redirectUrl;
111
- }
112
- else {
113
- paymentUrl = authorizeResult.execTranResult.acsUrl;
114
- }
115
- if (typeof paymentUrl !== 'string' || paymentUrl.length === 0) {
116
- throw new factory.errors.Internal(`Payment URL unable to publish. [retUrl: ${retUrl}]`);
117
- }
118
- result = {
119
- paymentMethodId: transactionNumber,
120
- paymentUrl,
121
- entryTranArgs: authorizeResult.entryTranArgs,
122
- entryTranResult: authorizeResult.entryTranResult,
123
- execTranArgs: authorizeResult.execTranArgs,
124
- execTranResult: authorizeResult.execTranResult
125
- };
126
- // create recipe(2024-06-02~)
127
- recipe = publishPaymentUrlResult2recipe({
128
- project: { id: params.project.id },
129
- result
130
- });
131
- break;
132
- default:
133
- throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
134
- }
135
- }
136
- catch (error) {
137
- try {
138
- yield repos.action.giveUp({ typeOf: actionAttributes.typeOf, id: action.id, error });
139
- }
140
- catch (__) {
141
- // 失敗したら仕方ない
142
- }
143
- throw error;
144
- }
145
- const actionResult = {
146
- paymentMethodId: result.paymentMethodId,
147
- paymentUrl: result.paymentUrl
148
- };
149
- yield repos.action.completeWithVoid({ typeOf: actionAttributes.typeOf, id: action.id, result: actionResult, recipe });
150
- return result;
151
- });
152
- }
153
- /**
154
- * 決済方法認証
155
- */
156
- function check(params) {
157
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
158
- var _a;
159
- let action;
160
- const paymentServiceType = (_a = params.object[0]) === null || _a === void 0 ? void 0 : _a.typeOf;
161
- try {
162
- switch (paymentServiceType) {
163
- case factory.service.paymentService.PaymentServiceType.MovieTicket:
164
- action = yield MovieTicketPayment.checkMovieTicket(params)(repos, settings);
165
- break;
166
- default:
167
- throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
168
- }
169
- }
170
- catch (error) {
171
- throw error;
172
- }
173
- return action;
174
- });
175
- }
176
- /**
177
- * 取引開始
178
- */
179
- function start(params, options) {
180
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
181
- var _a, _b, _c, _d;
182
- // 金額をfix
183
- const amount = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.amount;
184
- if (typeof amount !== 'number') {
185
- throw new factory.errors.ArgumentNull('object.paymentMethod.amount');
186
- }
187
- const transactionNumber = params.transactionNumber;
188
- if (typeof transactionNumber !== 'string' || transactionNumber.length === 0) {
189
- throw new factory.errors.ArgumentNull('transactionNumber');
190
- }
191
- yield validateSeller(params)(repos);
192
- // リソースの対応決済方法検証(2025-12-02~)
193
- yield (0, validateAcceptedPaymentMethodIfNeeded_1.validateAcceptedPaymentMethodIfNeeded)(params)(repos);
194
- // 決済サービス確認
195
- const paymentServiceType = (_b = params.object) === null || _b === void 0 ? void 0 : _b.typeOf;
196
- const paymentService = yield fixPaymentService(params)(repos);
197
- const informActions = yield (0, fixInformAction_1.fixInformAction)({
198
- paymentService,
199
- project: { id: params.project.id }
200
- })(repos);
201
- // 取引開始
202
- let transaction;
203
- const startParams = (0, factory_1.createStartParams)(Object.assign(Object.assign({}, params), { transactionNumber,
204
- paymentServiceType,
205
- amount,
206
- paymentService,
207
- informActions }), { checkedAction: options.checkedAction } // 連携(2024-12-13~)
208
- );
209
- transaction = yield repos.assetTransaction.start(startParams);
210
- switch (paymentServiceType) {
211
- case factory.service.paymentService.PaymentServiceType.FaceToFace:
212
- // 対面決済は特に何もしない
213
- break;
214
- case factory.service.paymentService.PaymentServiceType.PaymentCard:
215
- transaction = yield processAuthorizeAccount(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id))(repos);
216
- break;
217
- case factory.service.paymentService.PaymentServiceType.CreditCard:
218
- // transaction =
219
- yield processAuthorizeCreditCard(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id), Object.assign({ executor: (typeof ((_c = options.executor) === null || _c === void 0 ? void 0 : _c.id) === 'string') ? { id: options.executor.id } : {} }, (options.pendingPaymentAgencyTransaction !== undefined)
220
- ? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
221
- : undefined))(repos, settings);
222
- break;
223
- case factory.service.paymentService.PaymentServiceType.MovieTicket:
224
- transaction = yield processAuthorizeMovieTicket(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id),
225
- // options.useCheckByIdentifierIfNotYet,
226
- {
227
- executor: (typeof ((_d = options.executor) === null || _d === void 0 ? void 0 : _d.id) === 'string') ? { id: options.executor.id } : {},
228
- purpose: options.purpose,
229
- checkedAction: options.checkedAction
230
- })(repos, settings);
231
- break;
232
- default:
233
- throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
234
- }
235
- return transaction;
236
- });
237
- }
238
- function getPaymentServiceId(params) {
239
- var _a;
240
- let paymentServiceId = '';
241
- const paymentServiceType = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf;
242
- if (typeof params.object.id === 'string' && params.object.id.length > 0) {
243
- paymentServiceId = params.object.id;
244
- }
245
- else {
246
- switch (paymentServiceType) {
247
- case factory.service.paymentService.PaymentServiceType.FaceToFace:
248
- // 対面決済は特に何もしない
249
- break;
250
- case factory.service.paymentService.PaymentServiceType.PaymentCard:
251
- case factory.service.paymentService.PaymentServiceType.CreditCard:
252
- case factory.service.paymentService.PaymentServiceType.MovieTicket:
253
- // リクエストでの指定を必須化(2022-04-12~)
254
- throw new factory.errors.ArgumentNull('object.id');
255
- default:
256
- throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
257
- }
258
- }
259
- return paymentServiceId;
260
- }
261
- function fixPaymentService(params) {
262
- return (repos) => __awaiter(this, void 0, void 0, function* () {
263
- var _a;
264
- const paymentServiceType = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf;
265
- let paymentService;
266
- switch (paymentServiceType) {
267
- case factory.service.paymentService.PaymentServiceType.FaceToFace:
268
- // no op
269
- // FaceToFaceの場合プロダクトは存在しない
270
- break;
271
- // PaymentCardの場合、プロダクト検索
272
- case factory.service.paymentService.PaymentServiceType.PaymentCard:
273
- paymentService = (yield repos.product.projectFields({
274
- limit: 1,
275
- page: 1,
276
- project: { id: { $eq: params.project.id } },
277
- typeOf: { $eq: factory.product.ProductType.PaymentCard },
278
- id: { $eq: getPaymentServiceId(params) }
279
- }, ['availableChannel', 'serviceOutput', 'serviceType', 'potentialAction']
280
- // []
281
- )).shift();
282
- if (paymentService === undefined) {
283
- throw new factory.errors.NotFound('PaymentService');
284
- }
285
- break;
286
- default:
287
- paymentService = (yield repos.paymentService.projectFields({
288
- limit: 1,
289
- page: 1,
290
- project: { id: { $eq: params.project.id } },
291
- typeOf: { $eq: paymentServiceType },
292
- id: { $eq: getPaymentServiceId(params) }
293
- }, ['availableChannel', 'serviceOutput', 'serviceType', 'potentialAction'])).shift();
294
- if (paymentService === undefined) {
295
- throw new factory.errors.NotFound('PaymentService');
296
- }
297
- }
298
- return paymentService;
299
- });
300
- }
301
- function validateSeller(params) {
302
- return (repos) => __awaiter(this, void 0, void 0, function* () {
303
- var _a, _b;
304
- const sellerId = (_a = params.recipient) === null || _a === void 0 ? void 0 : _a.id;
305
- if (typeof sellerId !== 'string') {
306
- throw new factory.errors.ArgumentNull('recipient.id');
307
- }
308
- const paymentMethodType = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.identifier;
309
- if (typeof paymentMethodType !== 'string') {
310
- throw new factory.errors.ArgumentNull('object.paymentMethod.identifier');
311
- }
312
- // FaceToFaceの場合、決済方法区分未指定に対応(2023-08-29~)
313
- if (params.object.typeOf === factory.service.paymentService.PaymentServiceType.FaceToFace) {
314
- if (paymentMethodType.length > 0) {
315
- // 販売者の対応決済方法かどうか確認
316
- // const paymentAccepted = seller.paymentAccepted?.some((a) => a.paymentMethodType === paymentMethodType);
317
- const paymentAccepted = yield repos.paymentAccepted.isAcceptedBySeller({
318
- seller: { id: sellerId },
319
- codeValue: paymentMethodType
320
- });
321
- if (paymentAccepted !== true) {
322
- throw new factory.errors.Argument('object.paymentMethod.identifier', `payment not accepted [${paymentMethodType}]`);
323
- }
324
- }
325
- }
326
- else {
327
- // 販売者の対応決済方法かどうか確認
328
- // const paymentAccepted = seller.paymentAccepted?.some((a) => a.paymentMethodType === paymentMethodType);
329
- const paymentAccepted = yield repos.paymentAccepted.isAcceptedBySeller({
330
- seller: { id: sellerId },
331
- codeValue: paymentMethodType
332
- });
333
- if (paymentAccepted !== true) {
334
- throw new factory.errors.Argument('object.paymentMethod.identifier', `payment not accepted [${paymentMethodType}]`);
335
- }
336
- }
337
- });
338
- }
339
- function processAuthorizeAccount(params, transaction, paymentServiceId) {
340
- return (repos) => __awaiter(this, void 0, void 0, function* () {
341
- var _a;
342
- const amount = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.amount;
343
- if (typeof amount !== 'number') {
344
- throw new factory.errors.ArgumentNull('object.paymentMethod?.amount');
345
- }
346
- yield (0, validation_1.validateAccount)(params)(repos);
347
- const { pendingTransaction, currency, accountNumber } = yield PaymentCardPayment.authorize(params, paymentServiceId)(repos);
348
- const totalPaymentDue = {
349
- typeOf: 'MonetaryAmount',
350
- currency,
351
- value: amount
352
- };
353
- const savingPendingTransaction = {
354
- typeOf: pendingTransaction.typeOf,
355
- id: pendingTransaction.id,
356
- transactionNumber: pendingTransaction.transactionNumber,
357
- object: { fromLocation: { accountNumber } }
358
- };
359
- return saveAuthorizeResult({
360
- id: transaction.id,
361
- update: {
362
- 'object.paymentMethod.totalPaymentDue': totalPaymentDue,
363
- 'object.pendingTransaction': savingPendingTransaction
364
- }
365
- })(repos);
366
- });
367
- }
368
- function processAuthorizeCreditCard(params, transaction, paymentServiceId, options) {
369
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
370
- var _a;
371
- yield CreditCardPayment.authorize(Object.assign(Object.assign({}, params), { id: transaction.id }), paymentServiceId, Object.assign({ processPublishPaymentUrl: false, executor: (typeof ((_a = options.executor) === null || _a === void 0 ? void 0 : _a.id) === 'string') ? { id: options.executor.id } : {} }, (options.pendingPaymentAgencyTransaction !== undefined)
372
- ? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
373
- : undefined))(repos, settings);
374
- // ↓discontinue(2024-06-14~)
375
- // return saveAuthorizeResult({
376
- // id: transaction.id,
377
- // update: {
378
- // 'object.accountId': authorizeResult.accountId,
379
- // 'object.paymentMethod.accountId': authorizeResult.accountId,
380
- // 'object.paymentMethod.paymentMethodId': authorizeResult.paymentMethodId,
381
- // 'object.entryTranArgs': authorizeResult.entryTranArgs,
382
- // 'object.entryTranResult': authorizeResult.entryTranResult,
383
- // 'object.execTranArgs': authorizeResult.execTranArgs,
384
- // 'object.execTranResult': authorizeResult.execTranResult,
385
- // ...(authorizeResult.secureTran2Result !== undefined)
386
- // ? { 'object.secureTran2Result': authorizeResult.secureTran2Result }
387
- // : undefined
388
- // }
389
- // })(repos);
390
- });
391
- }
392
- function processAuthorizeMovieTicket(params, transaction, paymentServiceId,
393
- // useCheckByIdentifierIfNotYet: boolean,
394
- options) {
395
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
396
- // const { accountsReceivablesByServiceType } = await MovieTicketPayment.authorize(
397
- // params, transaction, paymentServiceId, options
398
- // )(repos, settings);
399
- yield MovieTicketPayment.authorize(params, transaction, paymentServiceId, options)(repos, settings);
400
- return transaction;
401
- // discontinue(2024-12-17~)
402
- // return saveAuthorizeResult({
403
- // id: transaction.id,
404
- // update: {
405
- // 'object.accountsReceivablesByServiceType': accountsReceivablesByServiceType // 認証レスポンスより計上金額を保管(2023-05-15~)
406
- // }
407
- // })(repos);
408
- });
409
- }
410
- function saveAuthorizeResult(params) {
411
- return (repos) => __awaiter(this, void 0, void 0, function* () {
412
- return repos.assetTransaction.findByIdAndUpdateInProgress(params);
413
- });
414
- }
415
- /**
416
- * 取引確定
417
- */
418
- function confirm(params) {
419
- return (repos) => __awaiter(this, void 0, void 0, function* () {
420
- var _a, _b, _c, _d, _e, _f, _g, _h;
421
- let transaction;
422
- // 取引存在確認
423
- if (typeof params.id === 'string') {
424
- transaction = yield repos.assetTransaction.findById({
425
- typeOf: factory.assetTransactionType.Pay,
426
- id: params.id
427
- });
428
- }
429
- else if (typeof params.transactionNumber === 'string') {
430
- transaction = yield repos.assetTransaction.findByTransactionNumber({
431
- typeOf: factory.assetTransactionType.Pay,
432
- transactionNumber: params.transactionNumber
433
- });
434
- }
435
- else {
436
- throw new factory.errors.ArgumentNull('Transaction ID or Transaction Number');
437
- }
438
- let overwritingPaymentMethodIdentifier;
439
- if (transaction.object.typeOf === factory.service.paymentService.PaymentServiceType.FaceToFace) {
440
- const specifiedPaymentMethodIdentifire = (_b = (_a = params.object) === null || _a === void 0 ? void 0 : _a.paymentMethod) === null || _b === void 0 ? void 0 : _b.identifier;
441
- if (typeof specifiedPaymentMethodIdentifire === 'string' && specifiedPaymentMethodIdentifire.length > 0) {
442
- overwritingPaymentMethodIdentifier = specifiedPaymentMethodIdentifire;
443
- transaction.object.paymentMethod.identifier = overwritingPaymentMethodIdentifier;
444
- }
445
- }
446
- const confirmationNumber = (_e = (_d = (_c = params.potentialActions) === null || _c === void 0 ? void 0 : _c.pay) === null || _d === void 0 ? void 0 : _d.purpose) === null || _e === void 0 ? void 0 : _e.confirmationNumber;
447
- const orderNumber = (_h = (_g = (_f = params.potentialActions) === null || _f === void 0 ? void 0 : _f.pay) === null || _g === void 0 ? void 0 : _g.purpose) === null || _h === void 0 ? void 0 : _h.orderNumber;
448
- if (typeof confirmationNumber !== 'string' || confirmationNumber.length === 0
449
- || typeof orderNumber !== 'string' || orderNumber.length === 0) {
450
- throw new factory.errors.ArgumentNull('potentialActions.pay.purpose');
451
- }
452
- let potentialActions;
453
- // 注文検証
454
- const existingOrders = yield repos.order.projectFields({
455
- limit: 1,
456
- page: 1,
457
- project: { id: { $eq: transaction.project.id } },
458
- confirmationNumbers: [confirmationNumber],
459
- orderNumbers: [orderNumber]
460
- }, { inclusion: ['orderNumber'] });
461
- if (existingOrders.length === 0) {
462
- throw new factory.errors.NotFound(factory.order.OrderType.Order);
463
- }
464
- const payActionData4order = {
465
- object: { paymentMethod: { paymentMethodId: transaction.transactionNumber } },
466
- purpose: { confirmationNumber, orderNumber, typeOf: factory.order.OrderType.Order }
467
- };
468
- potentialActions = { pay: [payActionData4order] };
469
- yield repos.assetTransaction.confirm(Object.assign({ typeOf: factory.assetTransactionType.Pay, id: transaction.id, result: {}, potentialActions: potentialActions }, (typeof overwritingPaymentMethodIdentifier === 'string')
470
- ? { object: { paymentMethod: { identifier: overwritingPaymentMethodIdentifier } } }
471
- : undefined));
472
- });
473
- }
474
- /**
475
- * 取引中止
476
- */
477
- function cancel(params) {
478
- return (repos) => __awaiter(this, void 0, void 0, function* () {
479
- yield repos.assetTransaction.cancel({
480
- typeOf: factory.assetTransactionType.Pay,
481
- id: params.id,
482
- transactionNumber: params.transactionNumber
483
- });
484
- });
485
- }
486
- /**
487
- * 取引のタスク出力
488
- */
489
- function exportTasksById(params) {
490
- // tslint:disable-next-line:max-func-body-length
491
- return (repos) => __awaiter(this, void 0, void 0, function* () {
492
- const transaction = yield repos.assetTransaction.findById({
493
- typeOf: factory.assetTransactionType.Pay,
494
- id: params.id
495
- });
496
- const potentialActions = transaction.potentialActions;
497
- if (transaction.status === factory.transactionStatusType.InProgress) {
498
- throw new factory.errors.NotImplemented(`Transaction status "${transaction.status}" not implemented.`);
499
- }
500
- const taskAttributes = [];
501
- // タスク実行日時バッファの指定があれば調整
502
- let taskRunsAt = new Date();
503
- if (typeof params.runsTasksAfterInSeconds === 'number') {
504
- taskRunsAt = moment(taskRunsAt)
505
- .add(params.runsTasksAfterInSeconds, 'seconds')
506
- .toDate();
507
- }
508
- const payTransactionAsObject = {
509
- project: transaction.project,
510
- typeOf: transaction.typeOf,
511
- id: transaction.id,
512
- transactionNumber: transaction.transactionNumber,
513
- object: transaction.object,
514
- recipient: transaction.recipient
515
- };
516
- const voidPaymentTasks = {
517
- project: transaction.project,
518
- name: factory.taskName.VoidPayment,
519
- status: factory.taskStatus.Ready,
520
- runsAt: taskRunsAt,
521
- remainingNumberOfTries: 10,
522
- numberOfTried: 0,
523
- executionResults: [],
524
- data: { object: payTransactionAsObject }
525
- };
526
- // OnAssetTransactionStatusChangedを追加(2023-08-30~)
527
- const onAssetTransactionStatusChangedTaskData = {
528
- project: transaction.project,
529
- object: {
530
- typeOf: factory.assetTransactionType.Pay,
531
- transactionNumber: transaction.transactionNumber,
532
- status: transaction.status
533
- },
534
- purpose: {
535
- confirmationNumber: '',
536
- orderNumber: '',
537
- typeOf: factory.order.OrderType.Order
538
- },
539
- useOnOrderStatusChanged: true
540
- };
541
- const onAssetTransactionStatusChangedTask = {
542
- project: transaction.project,
543
- name: factory.taskName.OnAssetTransactionStatusChanged,
544
- status: factory.taskStatus.Ready,
545
- runsAt: taskRunsAt,
546
- remainingNumberOfTries: 10,
547
- numberOfTried: 0,
548
- executionResults: [],
549
- data: onAssetTransactionStatusChangedTaskData
550
- };
551
- switch (transaction.status) {
552
- case factory.transactionStatusType.Confirmed:
553
- const payActions = potentialActions === null || potentialActions === void 0 ? void 0 : potentialActions.pay;
554
- if (Array.isArray(payActions) && payActions.length > 0) {
555
- const payTasks = payActions.map(({ object, purpose }) => {
556
- const data = { object, purpose };
557
- return {
558
- project: transaction.project,
559
- name: factory.taskName.Pay,
560
- status: factory.taskStatus.Ready,
561
- runsAt: taskRunsAt,
562
- remainingNumberOfTries: 10,
563
- numberOfTried: 0,
564
- executionResults: [],
565
- data
566
- };
567
- });
568
- taskAttributes.push(...payTasks);
569
- }
570
- break;
571
- case factory.transactionStatusType.Canceled:
572
- taskAttributes.push(voidPaymentTasks, onAssetTransactionStatusChangedTask);
573
- break;
574
- case factory.transactionStatusType.Expired:
575
- taskAttributes.push(voidPaymentTasks, onAssetTransactionStatusChangedTask);
576
- break;
577
- default:
578
- throw new factory.errors.NotImplemented(`Transaction status "${transaction.status}" not implemented.`);
579
- }
580
- return repos.task.saveMany(taskAttributes, { emitImmediately: true });
581
- });
582
- }
583
- /**
584
- * 決済代行取引参照
585
- */
586
- function searchGMOTrade(params) {
587
- return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
588
- var _a, _b;
589
- const assetTransaction = yield repos.assetTransaction.findByTransactionNumber({
590
- typeOf: factory.assetTransactionType.Pay,
591
- transactionNumber: params.transactionNumber
592
- });
593
- if (assetTransaction.object.typeOf !== factory.service.paymentService.PaymentServiceType.CreditCard) {
594
- throw new factory.errors.Argument('transactionNumber', 'must be CreditCard payment service');
595
- }
596
- // if (assetTransaction.status !== factory.transactionStatusType.Confirmed) {
597
- // throw new factory.errors.Argument('transactionNumber', 'must be confirmed');
598
- // }
599
- // CreditCard系統の決済方法タイプは動的
600
- const paymentMethodType = (_a = assetTransaction.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.identifier;
601
- if (typeof paymentMethodType !== 'string') {
602
- throw new factory.errors.ArgumentNull('object.paymentMethod.identifier');
603
- }
604
- const paymentServiceId = String(assetTransaction.object.id);
605
- const availableChannel = yield repos.paymentService.findAvailableChannelCreditCard({
606
- project: assetTransaction.project,
607
- // typeOf: factory.service.paymentService.PaymentServiceType.CreditCard,
608
- id: paymentServiceId
609
- });
610
- const sellerId = (_b = assetTransaction.recipient) === null || _b === void 0 ? void 0 : _b.id;
611
- if (typeof sellerId !== 'string') {
612
- throw new factory.errors.ArgumentNull('recipient.id');
613
- }
614
- const { shopId, shopPass } = yield CreditCardPayment.getGMOInfoFromSeller({
615
- paymentMethodType,
616
- seller: { id: sellerId },
617
- paymentServiceId,
618
- requirePaymentAccepted: false
619
- })(repos);
620
- return CreditCardPayment.searchGMOTrade({
621
- availableChannel,
622
- paymentMethodId: String(assetTransaction.transactionNumber),
623
- shopId,
624
- shopPass
625
- }, settings);
626
- });
627
- }
7
+ const cancel_1 = require("./pay/cancel");
8
+ Object.defineProperty(exports, "cancel", { enumerable: true, get: function () { return cancel_1.cancel; } });
9
+ const check_1 = require("./pay/check");
10
+ Object.defineProperty(exports, "check", { enumerable: true, get: function () { return check_1.check; } });
11
+ const confirm_1 = require("./pay/confirm");
12
+ Object.defineProperty(exports, "confirm", { enumerable: true, get: function () { return confirm_1.confirm; } });
13
+ const exportTasksById_1 = require("./pay/exportTasksById");
14
+ Object.defineProperty(exports, "exportTasksById", { enumerable: true, get: function () { return exportTasksById_1.exportTasksById; } });
15
+ const publishPaymentUrl_1 = require("./pay/publishPaymentUrl");
16
+ Object.defineProperty(exports, "publishPaymentUrl", { enumerable: true, get: function () { return publishPaymentUrl_1.publishPaymentUrl; } });
17
+ const searchGMOTrade_1 = require("./pay/searchGMOTrade");
18
+ Object.defineProperty(exports, "searchGMOTrade", { enumerable: true, get: function () { return searchGMOTrade_1.searchGMOTrade; } });
19
+ const start_1 = require("./pay/start");
20
+ Object.defineProperty(exports, "start", { enumerable: true, get: function () { return start_1.start; } });
@@ -7,5 +7,5 @@ import * as factory from '../../../../factory';
7
7
  */
8
8
  declare function createOnOrderCancelledTasksByTransaction(params: {
9
9
  transaction: Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'project' | 'typeOf'>;
10
- }): (import("@chevre/factory/lib/task").IAttributes | import("@chevre/factory/lib/task/confirmMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/confirmRegisterService").IAttributes | import("@chevre/factory/lib/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/task/createEvent").IAttributes | import("@chevre/factory/lib/task/deletePerson").IAttributes | import("@chevre/factory/lib/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/task/givePointAward").IAttributes | import("@chevre/factory/lib/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/task/onEventChanged").IAttributes | import("@chevre/factory/lib/task/onResourceDeleted").IAttributes | import("@chevre/factory/lib/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/task/placeOrder").IAttributes | import("@chevre/factory/lib/task/returnOrder").IAttributes | import("@chevre/factory/lib/task/returnMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/task/returnPointAward").IAttributes | import("@chevre/factory/lib/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/task/sendOrder").IAttributes | import("@chevre/factory/lib/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/task/useReservation").IAttributes | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").IAttributes | import("@chevre/factory/lib/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/voidReserveTransaction").IAttributes)[];
10
+ }): (import("@chevre/factory/lib/task").IAttributes | import("@chevre/factory/lib/task/confirmMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/confirmRegisterService").IAttributes | import("@chevre/factory/lib/task/confirmPayTransaction").IAttributes | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/confirmReserveTransaction").IAttributes | import("@chevre/factory/lib/task/createAccountingReport").IAttributes | import("@chevre/factory/lib/task/deletePerson").IAttributes | import("@chevre/factory/lib/task/deleteTransaction").IAttributes | import("@chevre/factory/lib/task/givePointAward").IAttributes | import("@chevre/factory/lib/task/onAssetTransactionStatusChanged").IAttributes | import("@chevre/factory/lib/task/onAuthorizationCreated").IAttributes | import("@chevre/factory/lib/task/onEventChanged").IAttributes | import("@chevre/factory/lib/task/onResourceDeleted").IAttributes | import("@chevre/factory/lib/task/onResourceUpdated").IAttributes | import("@chevre/factory/lib/task/onOrderPaymentCompleted").IAttributes | import("@chevre/factory/lib/task/placeOrder").IAttributes | import("@chevre/factory/lib/task/returnOrder").IAttributes | import("@chevre/factory/lib/task/returnMoneyTransfer").IAttributes | import("@chevre/factory/lib/task/returnPayTransaction").IAttributes | import("@chevre/factory/lib/task/returnPointAward").IAttributes | import("@chevre/factory/lib/task/returnReserveTransaction").IAttributes | import("@chevre/factory/lib/task/sendEmailMessage").IAttributes | import("@chevre/factory/lib/task/sendOrder").IAttributes | import("@chevre/factory/lib/task/triggerWebhook").IAttributes | import("@chevre/factory/lib/task/useReservation").IAttributes | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").IAttributes | import("@chevre/factory/lib/task/voidPayTransaction").IAttributes | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").IAttributes | import("@chevre/factory/lib/task/voidReserveTransaction").IAttributes)[];
11
11
  export { createOnOrderCancelledTasksByTransaction };