@chevre/domain 23.2.0-alpha.6 → 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.
- package/example/src/chevre/acceptedPaymentMethodOffer/adminAcceptedPaymentMethodOffers.ts +25 -17
- package/example/src/chevre/confirmationNumber/testRandomness.ts +49 -0
- package/example/src/chevre/emailMessage/createEmailMessageText.ts +63 -0
- package/example/src/chevre/event/importEventsFromCOAByTitle.ts +2 -2
- package/example/src/chevre/event/unsetSuperEventVideoFormat.ts +30 -0
- package/example/src/chevre/eventSeries/unsetVideoFormat.ts +31 -0
- package/example/src/chevre/{upsertScreeningEventSeriesByVersion.ts → eventSeries/upsertScreeningEventSeriesByVersion.ts} +47 -43
- package/example/src/chevre/{upsertOfferCatalogItemsByIdentifier.ts → offerCatalog/upsertOfferCatalogItemsByIdentifier.ts} +6 -3
- package/example/src/chevre/{upsertOfferCatalogsByIdentifier.ts → offerCatalog/upsertOfferCatalogsByIdentifier.ts} +8 -3
- package/example/src/chevre/{upsertOffersByIdentifier.ts → offers/upsertOffersByIdentifier.ts} +5 -3
- package/example/src/chevre/orderNumber/testRandomness.ts +54 -0
- package/example/src/chevre/place/adminEntranceGates.ts +69 -0
- package/example/src/chevre/place/checkEntranceGatesCount.ts +82 -0
- package/example/src/chevre/place/findRooms.ts +24 -0
- package/example/src/chevre/place/findSections.ts +28 -0
- package/example/src/chevre/place/migrateSectionIdentifier.ts +92 -0
- package/example/src/chevre/place/seatsJson2csv.ts +63 -0
- package/example/src/chevre/place/upsertMovieTheatersByBranchCode.ts +41 -0
- package/example/src/chevre/place/upsertRoomsByBranchCode.ts +40 -0
- package/example/src/chevre/place/upsertSeatSectionsByBranchCode.ts +56 -0
- package/example/src/chevre/reIndex.ts +1 -1
- package/example/src/chevre/roles/addAdminAcceptedPaymentMethodReadPermissionIfNotExists.ts +33 -0
- package/example/src/chevre/roles/addAdminAcceptedPaymentMethodWritePermissionIfNotExists.ts +33 -0
- package/example/src/chevre/roles/addAdminMovieReadPermissionIfNotExists.ts +49 -0
- package/example/src/chevre/roles/addAdminRoomReadPermissionIfNotExists.ts +34 -0
- package/example/src/chevre/roles/addAdminRoomWritePermissionIfNotExists.ts +34 -0
- package/example/src/chevre/settings/addOrderNumberSetting.ts +44 -0
- package/example/src/chevre/settings/addTransactionNumberSetting.ts +40 -0
- package/example/src/chevre/transactionNumber/publishByTimestamp.ts +23 -0
- package/example/src/chevre/transactionNumber/testRandomness.ts +42 -0
- package/example/src/chevre/unsetUnnecessaryFields.ts +8 -4
- package/lib/chevre/emailMessageBuilder.js +1 -0
- package/lib/chevre/factory/event.d.ts +1 -1
- package/lib/chevre/factory/event.js +11 -5
- package/lib/chevre/factory/transactionNumber.d.ts +19 -0
- package/lib/chevre/factory/transactionNumber.js +54 -0
- package/lib/chevre/repo/acceptedPaymentMethod.d.ts +41 -8
- package/lib/chevre/repo/acceptedPaymentMethod.js +72 -27
- package/lib/chevre/repo/aggregateOffer.d.ts +6 -1
- package/lib/chevre/repo/aggregateOffer.js +11 -3
- package/lib/chevre/repo/aggregateOrder.js +0 -93
- package/lib/chevre/repo/aggregateReservation.d.ts +0 -1
- package/lib/chevre/repo/aggregateReservation.js +0 -2
- package/lib/chevre/repo/confirmationNumber.d.ts +1 -0
- package/lib/chevre/repo/confirmationNumber.js +32 -25
- package/lib/chevre/repo/event.d.ts +3 -18
- package/lib/chevre/repo/event.js +94 -83
- package/lib/chevre/repo/eventOffer.d.ts +8 -0
- package/lib/chevre/repo/eventOffer.js +11 -0
- package/lib/chevre/repo/eventSeries.d.ts +17 -30
- package/lib/chevre/repo/eventSeries.js +204 -146
- package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +0 -1
- package/lib/chevre/repo/mongoose/schemas/eventSeries.js +20 -5
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +2 -8
- package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +28 -2
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -2
- package/lib/chevre/repo/mongoose/schemas/setting.d.ts +40 -0
- package/lib/chevre/repo/mongoose/schemas/setting.js +3 -0
- package/lib/chevre/repo/offerCatalog.d.ts +14 -1
- package/lib/chevre/repo/offerCatalog.js +41 -19
- package/lib/chevre/repo/offerCatalogItem.d.ts +10 -1
- package/lib/chevre/repo/offerCatalogItem.js +32 -17
- package/lib/chevre/repo/orderNumber.d.ts +6 -0
- package/lib/chevre/repo/orderNumber.js +110 -35
- package/lib/chevre/repo/place/entranceGate.d.ts +57 -0
- package/lib/chevre/repo/place/entranceGate.js +172 -0
- package/lib/chevre/repo/place/movieTheater.d.ts +40 -3
- package/lib/chevre/repo/place/movieTheater.js +77 -6
- package/lib/chevre/repo/place/screeningRoom.d.ts +60 -31
- package/lib/chevre/repo/place/screeningRoom.js +227 -135
- package/lib/chevre/repo/place/seat.d.ts +47 -45
- package/lib/chevre/repo/place/seat.js +175 -45
- package/lib/chevre/repo/place/section.d.ts +60 -30
- package/lib/chevre/repo/place/section.js +337 -127
- package/lib/chevre/repo/serviceOutputIdentifier.d.ts +3 -1
- package/lib/chevre/repo/serviceOutputIdentifier.js +42 -27
- package/lib/chevre/repo/setting.d.ts +1 -1
- package/lib/chevre/repo/setting.js +2 -2
- package/lib/chevre/repo/task.d.ts +1 -1
- package/lib/chevre/repo/transactionNumber.d.ts +5 -0
- package/lib/chevre/repo/transactionNumber.js +63 -27
- package/lib/chevre/repository.d.ts +8 -0
- package/lib/chevre/repository.js +16 -0
- package/lib/chevre/service/assetTransaction/fixInformAction.d.ts +3 -0
- package/lib/chevre/service/assetTransaction/fixInformAction.js +3 -0
- package/lib/chevre/service/assetTransaction/pay/cancel.d.ts +12 -0
- package/lib/chevre/service/assetTransaction/pay/cancel.js +25 -0
- package/lib/chevre/service/assetTransaction/pay/check.d.ts +23 -0
- package/lib/chevre/service/assetTransaction/pay/check.js +37 -0
- package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +24 -0
- package/lib/chevre/service/assetTransaction/pay/confirm.js +72 -0
- package/lib/chevre/service/assetTransaction/pay/exportTasksById.d.ts +18 -0
- package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +111 -0
- package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +48 -0
- package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +164 -0
- package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +20 -0
- package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +59 -0
- package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.d.ts +2 -2
- package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay/{factory.d.ts → start/factory.d.ts} +1 -1
- package/lib/chevre/service/assetTransaction/pay/{factory.js → start/factory.js} +1 -1
- package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.d.ts → start/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts} +4 -4
- package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.js → start/preStart/validateAcceptedPaymentMethodIfNeeded.js} +1 -4
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.d.ts +8 -0
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +54 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.d.ts +13 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +49 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +29 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +37 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +42 -0
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +31 -0
- package/lib/chevre/service/assetTransaction/pay/start.d.ts +60 -0
- package/lib/chevre/service/assetTransaction/pay/start.js +145 -0
- package/lib/chevre/service/assetTransaction/pay.d.ts +8 -170
- package/lib/chevre/service/assetTransaction/pay.js +16 -623
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +10 -2
- package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +1 -1
- package/lib/chevre/service/event/processUpdateMovieTheater.js +13 -11
- package/lib/chevre/service/event/saveScreeningEventSeries.js +4 -5
- package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -2
- package/lib/chevre/service/event/saveScreeningEvents.js +16 -12
- package/lib/chevre/service/offer/event/authorize/factory.js +9 -1
- package/lib/chevre/service/offer/event/searchEventTicketOffers.js +7 -4
- package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +9 -6
- package/lib/chevre/service/offer/event/searchOffersByIds.js +7 -4
- package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +7 -1
- package/lib/chevre/service/offer/onEventChanged.js +10 -6
- package/lib/chevre/service/offer/product.js +1 -1
- package/lib/chevre/service/offer.d.ts +5 -0
- package/lib/chevre/service/offer.js +34 -9
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +13 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +53 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +13 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +56 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +15 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +58 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +17 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +75 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +19 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +60 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +20 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +51 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +27 -0
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +100 -0
- package/lib/chevre/service/task/onResourceDeleted.d.ts +6 -0
- package/lib/chevre/service/task/onResourceDeleted.js +168 -0
- package/lib/chevre/service/task/onResourceUpdated.js +205 -42
- package/lib/chevre/service/task/syncResourcesFromCOA.js +4 -2
- package/lib/chevre/service/taskHandler.js +1 -0
- package/package.json +9 -9
- package/example/src/chevre/event/upsertManyScreeningEventByIdentifier.ts +0 -191
- package/example/src/chevre/eventSeries/migrateEventSeriesUnacceptedPaymentMethod.ts +0 -93
- package/example/src/chevre/offers/createSampleOffers.ts +0 -154
- package/example/src/chevre/settings/addSettings.ts +0 -46
- package/lib/chevre/service/eventOld.d.ts +0 -60
- package/lib/chevre/service/eventOld.js +0 -864
- package/lib/chevre/service/task/createEvent/createEvent.d.ts +0 -25
- package/lib/chevre/service/task/createEvent/createEvent.js +0 -45
- package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +0 -22
- package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +0 -188
- package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.d.ts +0 -15
- package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +0 -116
- package/lib/chevre/service/task/createEvent/createEventBySchedule.d.ts +0 -25
- package/lib/chevre/service/task/createEvent/createEventBySchedule.js +0 -107
- package/lib/chevre/service/task/createEvent/createEventSeries.d.ts +0 -13
- package/lib/chevre/service/task/createEvent/createEventSeries.js +0 -118
- package/lib/chevre/service/task/createEvent.d.ts +0 -6
- package/lib/chevre/service/task/createEvent.js +0 -46
- package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +0 -45
- package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +0 -447
|
@@ -0,0 +1,111 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.exportTasksById = exportTasksById;
|
|
13
|
+
const moment = require("moment");
|
|
14
|
+
const factory = require("../../../factory");
|
|
15
|
+
/**
|
|
16
|
+
* 取引のタスク出力
|
|
17
|
+
*/
|
|
18
|
+
function exportTasksById(params) {
|
|
19
|
+
// tslint:disable-next-line:max-func-body-length
|
|
20
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const transaction = yield repos.assetTransaction.findById({
|
|
22
|
+
typeOf: factory.assetTransactionType.Pay,
|
|
23
|
+
id: params.id
|
|
24
|
+
});
|
|
25
|
+
const potentialActions = transaction.potentialActions;
|
|
26
|
+
if (transaction.status === factory.transactionStatusType.InProgress) {
|
|
27
|
+
throw new factory.errors.NotImplemented(`Transaction status "${transaction.status}" not implemented.`);
|
|
28
|
+
}
|
|
29
|
+
const taskAttributes = [];
|
|
30
|
+
// タスク実行日時バッファの指定があれば調整
|
|
31
|
+
let taskRunsAt = new Date();
|
|
32
|
+
if (typeof params.runsTasksAfterInSeconds === 'number') {
|
|
33
|
+
taskRunsAt = moment(taskRunsAt)
|
|
34
|
+
.add(params.runsTasksAfterInSeconds, 'seconds')
|
|
35
|
+
.toDate();
|
|
36
|
+
}
|
|
37
|
+
const payTransactionAsObject = {
|
|
38
|
+
project: transaction.project,
|
|
39
|
+
typeOf: transaction.typeOf,
|
|
40
|
+
id: transaction.id,
|
|
41
|
+
transactionNumber: transaction.transactionNumber,
|
|
42
|
+
object: transaction.object,
|
|
43
|
+
recipient: transaction.recipient
|
|
44
|
+
};
|
|
45
|
+
const voidPaymentTasks = {
|
|
46
|
+
project: transaction.project,
|
|
47
|
+
name: factory.taskName.VoidPayment,
|
|
48
|
+
status: factory.taskStatus.Ready,
|
|
49
|
+
runsAt: taskRunsAt,
|
|
50
|
+
remainingNumberOfTries: 10,
|
|
51
|
+
numberOfTried: 0,
|
|
52
|
+
executionResults: [],
|
|
53
|
+
data: { object: payTransactionAsObject }
|
|
54
|
+
};
|
|
55
|
+
// OnAssetTransactionStatusChangedを追加(2023-08-30~)
|
|
56
|
+
const onAssetTransactionStatusChangedTaskData = {
|
|
57
|
+
project: transaction.project,
|
|
58
|
+
object: {
|
|
59
|
+
typeOf: factory.assetTransactionType.Pay,
|
|
60
|
+
transactionNumber: transaction.transactionNumber,
|
|
61
|
+
status: transaction.status
|
|
62
|
+
},
|
|
63
|
+
purpose: {
|
|
64
|
+
confirmationNumber: '',
|
|
65
|
+
orderNumber: '',
|
|
66
|
+
typeOf: factory.order.OrderType.Order
|
|
67
|
+
},
|
|
68
|
+
useOnOrderStatusChanged: true
|
|
69
|
+
};
|
|
70
|
+
const onAssetTransactionStatusChangedTask = {
|
|
71
|
+
project: transaction.project,
|
|
72
|
+
name: factory.taskName.OnAssetTransactionStatusChanged,
|
|
73
|
+
status: factory.taskStatus.Ready,
|
|
74
|
+
runsAt: taskRunsAt,
|
|
75
|
+
remainingNumberOfTries: 10,
|
|
76
|
+
numberOfTried: 0,
|
|
77
|
+
executionResults: [],
|
|
78
|
+
data: onAssetTransactionStatusChangedTaskData
|
|
79
|
+
};
|
|
80
|
+
switch (transaction.status) {
|
|
81
|
+
case factory.transactionStatusType.Confirmed:
|
|
82
|
+
const payActions = potentialActions === null || potentialActions === void 0 ? void 0 : potentialActions.pay;
|
|
83
|
+
if (Array.isArray(payActions) && payActions.length > 0) {
|
|
84
|
+
const payTasks = payActions.map(({ object, purpose }) => {
|
|
85
|
+
const data = { object, purpose };
|
|
86
|
+
return {
|
|
87
|
+
project: transaction.project,
|
|
88
|
+
name: factory.taskName.Pay,
|
|
89
|
+
status: factory.taskStatus.Ready,
|
|
90
|
+
runsAt: taskRunsAt,
|
|
91
|
+
remainingNumberOfTries: 10,
|
|
92
|
+
numberOfTried: 0,
|
|
93
|
+
executionResults: [],
|
|
94
|
+
data
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
taskAttributes.push(...payTasks);
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case factory.transactionStatusType.Canceled:
|
|
101
|
+
taskAttributes.push(voidPaymentTasks, onAssetTransactionStatusChangedTask);
|
|
102
|
+
break;
|
|
103
|
+
case factory.transactionStatusType.Expired:
|
|
104
|
+
taskAttributes.push(voidPaymentTasks, onAssetTransactionStatusChangedTask);
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
107
|
+
throw new factory.errors.NotImplemented(`Transaction status "${transaction.status}" not implemented.`);
|
|
108
|
+
}
|
|
109
|
+
return repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
110
|
+
});
|
|
111
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as factory from '../../../factory';
|
|
2
|
+
import { Settings } from '../../../settings';
|
|
3
|
+
import type { AcceptedPaymentMethodRepo } from '../../../repo/acceptedPaymentMethod';
|
|
4
|
+
import type { ActionRepo } from '../../../repo/action';
|
|
5
|
+
import type { EventRepo } from '../../../repo/event';
|
|
6
|
+
import type { EventSeriesRepo } from '../../../repo/eventSeries';
|
|
7
|
+
import type { PaymentServiceRepo } from '../../../repo/paymentService';
|
|
8
|
+
import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
|
|
9
|
+
import type { SellerPaymentAcceptedRepo } from '../../../repo/sellerPaymentAccepted';
|
|
10
|
+
import * as CreditCardPayment from '../../payment/creditCard';
|
|
11
|
+
export type IPublishPaymentUrlOperation<T> = (repos: {
|
|
12
|
+
acceptedPaymentMethod: AcceptedPaymentMethodRepo;
|
|
13
|
+
action: ActionRepo;
|
|
14
|
+
event: EventRepo;
|
|
15
|
+
eventSeries: EventSeriesRepo;
|
|
16
|
+
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
17
|
+
paymentService: PaymentServiceRepo;
|
|
18
|
+
paymentServiceProvider: PaymentServiceProviderRepo;
|
|
19
|
+
}, settings: Settings) => Promise<T>;
|
|
20
|
+
export type IPublishPaymentUrlResult = CreditCardPayment.IPaymentAgencyTransaction & {
|
|
21
|
+
paymentMethodId: string;
|
|
22
|
+
paymentUrl: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* 決済ロケーション発行
|
|
26
|
+
*/
|
|
27
|
+
export declare function publishPaymentUrl(params: Pick<factory.assetTransaction.pay.IStartParamsWithoutDetail, 'agent' | 'location' | 'project' | 'recipient' | 'transactionNumber' | 'typeOf'> & {
|
|
28
|
+
object: factory.action.accept.pay.IPayObject;
|
|
29
|
+
/**
|
|
30
|
+
* add identifier for an unique index(2025-02-25~)
|
|
31
|
+
*/
|
|
32
|
+
identifier?: string;
|
|
33
|
+
instrument: factory.action.accept.pay.IInstrument[];
|
|
34
|
+
}, options: {
|
|
35
|
+
purposeAsTransaction: {
|
|
36
|
+
id: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* 実行者
|
|
40
|
+
*/
|
|
41
|
+
executor?: {
|
|
42
|
+
/**
|
|
43
|
+
* task ID
|
|
44
|
+
* taskによって実行されている場合値が存在する
|
|
45
|
+
*/
|
|
46
|
+
id?: string;
|
|
47
|
+
};
|
|
48
|
+
}): IPublishPaymentUrlOperation<IPublishPaymentUrlResult>;
|
|
@@ -0,0 +1,164 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.publishPaymentUrl = publishPaymentUrl;
|
|
13
|
+
const factory = require("../../../factory");
|
|
14
|
+
const CreditCardPayment = require("../../payment/creditCard");
|
|
15
|
+
const validateAcceptedPaymentMethodIfNeeded_1 = require("./start/preStart/validateAcceptedPaymentMethodIfNeeded");
|
|
16
|
+
const validateSeller_1 = require("./start/preStart/validateSeller");
|
|
17
|
+
function publishPaymentUrlResult2recipe(params) {
|
|
18
|
+
const { project, result } = params;
|
|
19
|
+
return {
|
|
20
|
+
project: { id: project.id, typeOf: factory.organizationType.Project },
|
|
21
|
+
typeOf: 'Recipe',
|
|
22
|
+
recipeCategory: factory.recipe.RecipeCategory.publishPaymentUrl,
|
|
23
|
+
step: [{
|
|
24
|
+
typeOf: 'HowToSection',
|
|
25
|
+
itemListElement: [
|
|
26
|
+
{
|
|
27
|
+
typeOf: 'HowToStep',
|
|
28
|
+
identifier: factory.recipe.StepIdentifier.entryTran,
|
|
29
|
+
itemListElement: [{
|
|
30
|
+
typeOf: 'HowToDirection',
|
|
31
|
+
beforeMedia: result.entryTranArgs,
|
|
32
|
+
afterMedia: result.entryTranResult
|
|
33
|
+
// text: 'entryTran'
|
|
34
|
+
}]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
typeOf: 'HowToStep',
|
|
38
|
+
identifier: factory.recipe.StepIdentifier.execTran,
|
|
39
|
+
itemListElement: [{
|
|
40
|
+
typeOf: 'HowToDirection',
|
|
41
|
+
beforeMedia: result.execTranArgs,
|
|
42
|
+
afterMedia: result.execTranResult
|
|
43
|
+
// text: 'execTran'
|
|
44
|
+
}]
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}]
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 決済ロケーション発行
|
|
52
|
+
*/
|
|
53
|
+
// tslint:disable-next-line:max-func-body-length
|
|
54
|
+
function publishPaymentUrl(params, options) {
|
|
55
|
+
// tslint:disable-next-line:max-func-body-length
|
|
56
|
+
return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
var _a, _b, _c, _d, _e, _f;
|
|
58
|
+
const paymentServiceType = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf;
|
|
59
|
+
// 金額をfix
|
|
60
|
+
const amount = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.amount;
|
|
61
|
+
if (typeof amount !== 'number') {
|
|
62
|
+
throw new factory.errors.ArgumentNull('object.paymentMethod.amount');
|
|
63
|
+
}
|
|
64
|
+
const transactionNumber = params.transactionNumber;
|
|
65
|
+
if (typeof transactionNumber !== 'string' || transactionNumber.length === 0) {
|
|
66
|
+
throw new factory.errors.ArgumentNull('transactionNumber');
|
|
67
|
+
}
|
|
68
|
+
yield (0, validateSeller_1.validateSeller)(params)(repos);
|
|
69
|
+
// リソースの対応決済方法検証(2025-12-02~)
|
|
70
|
+
yield (0, validateAcceptedPaymentMethodIfNeeded_1.validateAcceptedPaymentMethodIfNeeded)(params)(repos);
|
|
71
|
+
// 決済サービス確認
|
|
72
|
+
const paymentServiceId = getPaymentServiceId(params);
|
|
73
|
+
// 決済受入アクション生成(2024-03-28~)
|
|
74
|
+
const taskId = (_c = options === null || options === void 0 ? void 0 : options.executor) === null || _c === void 0 ? void 0 : _c.id;
|
|
75
|
+
const actionAttributes = Object.assign(Object.assign(Object.assign({ project: params.project, typeOf: factory.actionType.AcceptAction, agent: params.agent, object: {
|
|
76
|
+
object: params.object,
|
|
77
|
+
transactionNumber,
|
|
78
|
+
typeOf: params.typeOf
|
|
79
|
+
}, purpose: { typeOf: factory.transactionType.PlaceOrder, id: options.purposeAsTransaction.id }, instrument: (Array.isArray(params.instrument)) ? params.instrument : [] }, (typeof taskId === 'string')
|
|
80
|
+
? { sameAs: { id: taskId, typeOf: 'Task' } } // タスク関連付け(2024-05-22~)
|
|
81
|
+
: undefined), (typeof ((_d = params.location) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string')
|
|
82
|
+
? { location: params.location }
|
|
83
|
+
: undefined), (typeof params.identifier === 'string') ? { identifier: params.identifier } : undefined);
|
|
84
|
+
const action = yield repos.action.start(actionAttributes);
|
|
85
|
+
let result;
|
|
86
|
+
let recipe;
|
|
87
|
+
try {
|
|
88
|
+
switch (paymentServiceType) {
|
|
89
|
+
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
90
|
+
const authorizeResult = yield CreditCardPayment.authorize(Object.assign(Object.assign({}, params), { id: '' // 決済URL発行プロセスにおいては決済取引IDは使用しないので空文字でok
|
|
91
|
+
}), paymentServiceId, {
|
|
92
|
+
processPublishPaymentUrl: true,
|
|
93
|
+
executor: (typeof ((_e = options.executor) === null || _e === void 0 ? void 0 : _e.id) === 'string') ? { id: options.executor.id } : {} // タスク関連付け(2024-05-22~)
|
|
94
|
+
})(repos, settings);
|
|
95
|
+
let paymentUrl;
|
|
96
|
+
// 3DS拡張(2024-01-02~)
|
|
97
|
+
const retUrl = (_f = params.object.paymentMethod.creditCard) === null || _f === void 0 ? void 0 : _f.retUrl;
|
|
98
|
+
if (typeof retUrl === 'string' && retUrl.length > 0) {
|
|
99
|
+
paymentUrl = authorizeResult.execTranResult.redirectUrl;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
paymentUrl = authorizeResult.execTranResult.acsUrl;
|
|
103
|
+
}
|
|
104
|
+
if (typeof paymentUrl !== 'string' || paymentUrl.length === 0) {
|
|
105
|
+
throw new factory.errors.Internal(`Payment URL unable to publish. [retUrl: ${retUrl}]`);
|
|
106
|
+
}
|
|
107
|
+
result = {
|
|
108
|
+
paymentMethodId: transactionNumber,
|
|
109
|
+
paymentUrl,
|
|
110
|
+
entryTranArgs: authorizeResult.entryTranArgs,
|
|
111
|
+
entryTranResult: authorizeResult.entryTranResult,
|
|
112
|
+
execTranArgs: authorizeResult.execTranArgs,
|
|
113
|
+
execTranResult: authorizeResult.execTranResult
|
|
114
|
+
};
|
|
115
|
+
// create recipe(2024-06-02~)
|
|
116
|
+
recipe = publishPaymentUrlResult2recipe({
|
|
117
|
+
project: { id: params.project.id },
|
|
118
|
+
result
|
|
119
|
+
});
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
try {
|
|
127
|
+
yield repos.action.giveUp({ typeOf: actionAttributes.typeOf, id: action.id, error });
|
|
128
|
+
}
|
|
129
|
+
catch (__) {
|
|
130
|
+
// 失敗したら仕方ない
|
|
131
|
+
}
|
|
132
|
+
throw error;
|
|
133
|
+
}
|
|
134
|
+
const actionResult = {
|
|
135
|
+
paymentMethodId: result.paymentMethodId,
|
|
136
|
+
paymentUrl: result.paymentUrl
|
|
137
|
+
};
|
|
138
|
+
yield repos.action.completeWithVoid({ typeOf: actionAttributes.typeOf, id: action.id, result: actionResult, recipe });
|
|
139
|
+
return result;
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function getPaymentServiceId(params) {
|
|
143
|
+
var _a;
|
|
144
|
+
let paymentServiceId = '';
|
|
145
|
+
const paymentServiceType = (_a = params.object) === null || _a === void 0 ? void 0 : _a.typeOf;
|
|
146
|
+
if (typeof params.object.id === 'string' && params.object.id.length > 0) {
|
|
147
|
+
paymentServiceId = params.object.id;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
switch (paymentServiceType) {
|
|
151
|
+
case factory.service.paymentService.PaymentServiceType.FaceToFace:
|
|
152
|
+
// 対面決済は特に何もしない
|
|
153
|
+
break;
|
|
154
|
+
case factory.service.paymentService.PaymentServiceType.PaymentCard:
|
|
155
|
+
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
156
|
+
case factory.service.paymentService.PaymentServiceType.MovieTicket:
|
|
157
|
+
// リクエストでの指定を必須化(2022-04-12~)
|
|
158
|
+
throw new factory.errors.ArgumentNull('object.id');
|
|
159
|
+
default:
|
|
160
|
+
throw new factory.errors.NotImplemented(`Payment service '${paymentServiceType}' not implemented`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return paymentServiceId;
|
|
164
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 決済取引サービス
|
|
3
|
+
*/
|
|
4
|
+
import * as GMO from '@motionpicture/gmo-service';
|
|
5
|
+
import { Settings } from '../../../settings';
|
|
6
|
+
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
7
|
+
import type { PaymentServiceRepo } from '../../../repo/paymentService';
|
|
8
|
+
import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
|
|
9
|
+
import type { SellerPaymentAcceptedRepo } from '../../../repo/sellerPaymentAccepted';
|
|
10
|
+
/**
|
|
11
|
+
* 決済代行取引参照
|
|
12
|
+
*/
|
|
13
|
+
export declare function searchGMOTrade(params: {
|
|
14
|
+
transactionNumber: string;
|
|
15
|
+
}): (repos: {
|
|
16
|
+
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
17
|
+
paymentService: PaymentServiceRepo;
|
|
18
|
+
paymentServiceProvider: PaymentServiceProviderRepo;
|
|
19
|
+
assetTransaction: AssetTransactionRepo;
|
|
20
|
+
}, settings: Settings) => Promise<GMO.factory.credit.ISearchTradeResult>;
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.searchGMOTrade = searchGMOTrade;
|
|
13
|
+
const factory = require("../../../factory");
|
|
14
|
+
const CreditCardPayment = require("../../payment/creditCard");
|
|
15
|
+
/**
|
|
16
|
+
* 決済代行取引参照
|
|
17
|
+
*/
|
|
18
|
+
function searchGMOTrade(params) {
|
|
19
|
+
return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const assetTransaction = yield repos.assetTransaction.findByTransactionNumber({
|
|
22
|
+
typeOf: factory.assetTransactionType.Pay,
|
|
23
|
+
transactionNumber: params.transactionNumber
|
|
24
|
+
});
|
|
25
|
+
if (assetTransaction.object.typeOf !== factory.service.paymentService.PaymentServiceType.CreditCard) {
|
|
26
|
+
throw new factory.errors.Argument('transactionNumber', 'must be CreditCard payment service');
|
|
27
|
+
}
|
|
28
|
+
// if (assetTransaction.status !== factory.transactionStatusType.Confirmed) {
|
|
29
|
+
// throw new factory.errors.Argument('transactionNumber', 'must be confirmed');
|
|
30
|
+
// }
|
|
31
|
+
// CreditCard系統の決済方法タイプは動的
|
|
32
|
+
const paymentMethodType = (_a = assetTransaction.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.identifier;
|
|
33
|
+
if (typeof paymentMethodType !== 'string') {
|
|
34
|
+
throw new factory.errors.ArgumentNull('object.paymentMethod.identifier');
|
|
35
|
+
}
|
|
36
|
+
const paymentServiceId = String(assetTransaction.object.id);
|
|
37
|
+
const availableChannel = yield repos.paymentService.findAvailableChannelCreditCard({
|
|
38
|
+
project: assetTransaction.project,
|
|
39
|
+
// typeOf: factory.service.paymentService.PaymentServiceType.CreditCard,
|
|
40
|
+
id: paymentServiceId
|
|
41
|
+
});
|
|
42
|
+
const sellerId = (_b = assetTransaction.recipient) === null || _b === void 0 ? void 0 : _b.id;
|
|
43
|
+
if (typeof sellerId !== 'string') {
|
|
44
|
+
throw new factory.errors.ArgumentNull('recipient.id');
|
|
45
|
+
}
|
|
46
|
+
const { shopId, shopPass } = yield CreditCardPayment.getGMOInfoFromSeller({
|
|
47
|
+
paymentMethodType,
|
|
48
|
+
seller: { id: sellerId },
|
|
49
|
+
paymentServiceId,
|
|
50
|
+
requirePaymentAccepted: false
|
|
51
|
+
})(repos);
|
|
52
|
+
return CreditCardPayment.searchGMOTrade({
|
|
53
|
+
availableChannel,
|
|
54
|
+
paymentMethodId: String(assetTransaction.transactionNumber),
|
|
55
|
+
shopId,
|
|
56
|
+
shopPass
|
|
57
|
+
}, settings);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ペイメントカード決済取引バリデーション
|
|
3
3
|
*/
|
|
4
|
-
import type { SellerPaymentAcceptedRepo } from '
|
|
5
|
-
import * as factory from '
|
|
4
|
+
import type { SellerPaymentAcceptedRepo } from '../../../../../repo/sellerPaymentAccepted';
|
|
5
|
+
import * as factory from '../../../../../factory';
|
|
6
6
|
export declare function validateAccount(params: factory.assetTransaction.pay.IStartParamsWithoutDetail): (repos: {
|
|
7
7
|
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
8
8
|
}) => Promise<void>;
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.validateAccount = validateAccount;
|
|
13
|
-
const factory = require("
|
|
13
|
+
const factory = require("../../../../../factory");
|
|
14
14
|
function validateAccount(params) {
|
|
15
15
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
16
16
|
var _a, _b, _c;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 決済取引ファクトリー
|
|
3
3
|
*/
|
|
4
|
-
import * as factory from '
|
|
4
|
+
import * as factory from '../../../../factory';
|
|
5
5
|
export declare function createStartParams(params: factory.assetTransaction.pay.IStartParamsWithoutDetail & {
|
|
6
6
|
transactionNumber: string;
|
|
7
7
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
@@ -4,7 +4,7 @@ exports.createStartParams = createStartParams;
|
|
|
4
4
|
/**
|
|
5
5
|
* 決済取引ファクトリー
|
|
6
6
|
*/
|
|
7
|
-
const factory = require("
|
|
7
|
+
const factory = require("../../../../factory");
|
|
8
8
|
// tslint:disable-next-line:cyclomatic-complexity max-func-body-length
|
|
9
9
|
function createStartParams(params, options) {
|
|
10
10
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as factory from '
|
|
2
|
-
import type { AcceptedPaymentMethodRepo } from '
|
|
3
|
-
import type { EventRepo } from '
|
|
4
|
-
import type { EventSeriesRepo } from '
|
|
1
|
+
import * as factory from '../../../../../factory';
|
|
2
|
+
import type { AcceptedPaymentMethodRepo } from '../../../../../repo/acceptedPaymentMethod';
|
|
3
|
+
import type { EventRepo } from '../../../../../repo/event';
|
|
4
|
+
import type { EventSeriesRepo } from '../../../../../repo/eventSeries';
|
|
5
5
|
/**
|
|
6
6
|
* 必要あらば関連リソースの対応決済方法を検証する
|
|
7
7
|
*/
|
|
@@ -10,11 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.validateAcceptedPaymentMethodIfNeeded = validateAcceptedPaymentMethodIfNeeded;
|
|
13
|
-
/**
|
|
14
|
-
* ペイメントカード決済取引バリデーション
|
|
15
|
-
*/
|
|
16
13
|
const createDebug = require("debug");
|
|
17
|
-
const factory = require("
|
|
14
|
+
const factory = require("../../../../../factory");
|
|
18
15
|
const debug = createDebug('chevre-domain:service:assetTransaction:pay');
|
|
19
16
|
/**
|
|
20
17
|
* 必要あらば関連リソースの対応決済方法を検証する
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as factory from '../../../../../factory';
|
|
2
|
+
import type { SellerPaymentAcceptedRepo } from '../../../../../repo/sellerPaymentAccepted';
|
|
3
|
+
/**
|
|
4
|
+
* 販売者の対応決済方法検証
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateSeller(params: Pick<factory.assetTransaction.pay.IStartParamsWithoutDetail, 'object' | 'recipient'>): (repos: {
|
|
7
|
+
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
8
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.validateSeller = validateSeller;
|
|
13
|
+
const factory = require("../../../../../factory");
|
|
14
|
+
/**
|
|
15
|
+
* 販売者の対応決済方法検証
|
|
16
|
+
*/
|
|
17
|
+
function validateSeller(params) {
|
|
18
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
const sellerId = (_a = params.recipient) === null || _a === void 0 ? void 0 : _a.id;
|
|
21
|
+
if (typeof sellerId !== 'string') {
|
|
22
|
+
throw new factory.errors.ArgumentNull('recipient.id');
|
|
23
|
+
}
|
|
24
|
+
const paymentMethodType = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.identifier;
|
|
25
|
+
if (typeof paymentMethodType !== 'string') {
|
|
26
|
+
throw new factory.errors.ArgumentNull('object.paymentMethod.identifier');
|
|
27
|
+
}
|
|
28
|
+
// FaceToFaceの場合、決済方法区分未指定に対応(2023-08-29~)
|
|
29
|
+
if (params.object.typeOf === factory.service.paymentService.PaymentServiceType.FaceToFace) {
|
|
30
|
+
if (paymentMethodType.length > 0) {
|
|
31
|
+
// 販売者の対応決済方法かどうか確認
|
|
32
|
+
// const paymentAccepted = seller.paymentAccepted?.some((a) => a.paymentMethodType === paymentMethodType);
|
|
33
|
+
const paymentAccepted = yield repos.paymentAccepted.isAcceptedBySeller({
|
|
34
|
+
seller: { id: sellerId },
|
|
35
|
+
codeValue: paymentMethodType
|
|
36
|
+
});
|
|
37
|
+
if (paymentAccepted !== true) {
|
|
38
|
+
throw new factory.errors.Argument('object.paymentMethod.identifier', `payment not accepted [${paymentMethodType}]`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// 販売者の対応決済方法かどうか確認
|
|
44
|
+
// const paymentAccepted = seller.paymentAccepted?.some((a) => a.paymentMethodType === paymentMethodType);
|
|
45
|
+
const paymentAccepted = yield repos.paymentAccepted.isAcceptedBySeller({
|
|
46
|
+
seller: { id: sellerId },
|
|
47
|
+
codeValue: paymentMethodType
|
|
48
|
+
});
|
|
49
|
+
if (paymentAccepted !== true) {
|
|
50
|
+
throw new factory.errors.Argument('object.paymentMethod.identifier', `payment not accepted [${paymentMethodType}]`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as factory from '../../../../factory';
|
|
2
|
+
import type { AssetTransactionRepo } from '../../../../repo/assetTransaction';
|
|
3
|
+
import type { EventRepo } from '../../../../repo/event';
|
|
4
|
+
import type { ProductRepo } from '../../../../repo/product';
|
|
5
|
+
import type { SellerPaymentAcceptedRepo } from '../../../../repo/sellerPaymentAccepted';
|
|
6
|
+
export declare function processAuthorizeAccount(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: {
|
|
7
|
+
id: string;
|
|
8
|
+
}, paymentServiceId: string): (repos: {
|
|
9
|
+
event: EventRepo;
|
|
10
|
+
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
11
|
+
product: ProductRepo;
|
|
12
|
+
assetTransaction: AssetTransactionRepo;
|
|
13
|
+
}) => Promise<factory.assetTransaction.pay.ITransaction>;
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.processAuthorizeAccount = processAuthorizeAccount;
|
|
13
|
+
const factory = require("../../../../factory");
|
|
14
|
+
const PaymentCardPayment = require("../../../payment/paymentCard");
|
|
15
|
+
const validation_1 = require("./account/validation");
|
|
16
|
+
function processAuthorizeAccount(params, transaction, paymentServiceId) {
|
|
17
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
var _a;
|
|
19
|
+
const amount = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.amount;
|
|
20
|
+
if (typeof amount !== 'number') {
|
|
21
|
+
throw new factory.errors.ArgumentNull('object.paymentMethod?.amount');
|
|
22
|
+
}
|
|
23
|
+
yield (0, validation_1.validateAccount)(params)(repos);
|
|
24
|
+
const { pendingTransaction, currency, accountNumber } = yield PaymentCardPayment.authorize(params, paymentServiceId)(repos);
|
|
25
|
+
const totalPaymentDue = {
|
|
26
|
+
typeOf: 'MonetaryAmount',
|
|
27
|
+
currency,
|
|
28
|
+
value: amount
|
|
29
|
+
};
|
|
30
|
+
const savingPendingTransaction = {
|
|
31
|
+
typeOf: pendingTransaction.typeOf,
|
|
32
|
+
id: pendingTransaction.id,
|
|
33
|
+
transactionNumber: pendingTransaction.transactionNumber,
|
|
34
|
+
object: { fromLocation: { accountNumber } }
|
|
35
|
+
};
|
|
36
|
+
return saveAuthorizeResult({
|
|
37
|
+
id: transaction.id,
|
|
38
|
+
update: {
|
|
39
|
+
'object.paymentMethod.totalPaymentDue': totalPaymentDue,
|
|
40
|
+
'object.pendingTransaction': savingPendingTransaction
|
|
41
|
+
}
|
|
42
|
+
})(repos);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function saveAuthorizeResult(params) {
|
|
46
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
return repos.assetTransaction.findByIdAndUpdateInProgress(params);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as factory from '../../../../factory';
|
|
2
|
+
import { Settings } from '../../../../settings';
|
|
3
|
+
import type { ActionRepo } from '../../../../repo/action';
|
|
4
|
+
import type { AssetTransactionRepo } from '../../../../repo/assetTransaction';
|
|
5
|
+
import type { PaymentServiceRepo } from '../../../../repo/paymentService';
|
|
6
|
+
import type { PaymentServiceProviderRepo } from '../../../../repo/paymentServiceProvider';
|
|
7
|
+
import type { SellerPaymentAcceptedRepo } from '../../../../repo/sellerPaymentAccepted';
|
|
8
|
+
import * as CreditCardPayment from '../../../payment/creditCard';
|
|
9
|
+
export declare function processAuthorizeCreditCard(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: {
|
|
10
|
+
id: string;
|
|
11
|
+
}, paymentServiceId: string, options: {
|
|
12
|
+
pendingPaymentAgencyTransaction?: CreditCardPayment.IPaymentAgencyTransaction;
|
|
13
|
+
/**
|
|
14
|
+
* 実行者
|
|
15
|
+
*/
|
|
16
|
+
executor?: {
|
|
17
|
+
/**
|
|
18
|
+
* task ID
|
|
19
|
+
* taskによって実行されている場合値が存在する
|
|
20
|
+
*/
|
|
21
|
+
id?: string;
|
|
22
|
+
};
|
|
23
|
+
}): (repos: {
|
|
24
|
+
action: ActionRepo;
|
|
25
|
+
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
26
|
+
paymentService: PaymentServiceRepo;
|
|
27
|
+
paymentServiceProvider: PaymentServiceProviderRepo;
|
|
28
|
+
assetTransaction: AssetTransactionRepo;
|
|
29
|
+
}, settings: Settings) => Promise<void>;
|