@chevre/domain 23.1.0-alpha.9 → 23.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example/src/chevre/{eventOffer/adminEventOffers.ts → acceptedPaymentMethodOffer/adminAcceptedPaymentMethodOffers.ts} +12 -11
- package/example/src/chevre/actions/checkAcceptPayActions.ts +60 -0
- package/example/src/chevre/assetTransaction/checkPayTransactionsTicketToken.ts +67 -0
- package/example/src/chevre/eventSeries/migrateEventSeriesUnacceptedPaymentMethod.ts +93 -0
- package/example/src/chevre/importEventsFromCOA.ts +5 -5
- package/example/src/chevre/pendingReservation/findEventSeatOffersBySection.ts +46 -0
- package/example/src/chevre/place/checkSectionCount.ts +27 -0
- package/example/src/chevre/place/findSectionsByRoom.ts +50 -0
- package/example/src/chevre/project/unsetProjectSettings.ts +73 -0
- package/example/src/chevre/reIndex.ts +0 -1
- package/example/src/chevre/roles/{addAdminSellerEventIfNotExists.ts → addAdminSellerEventOfferIfNotExists.ts} +1 -1
- package/example/src/chevre/stockHolder/findSeatsBySection.ts +59 -0
- package/example/src/chevre/stockHolder/searchSeats.ts +2 -2
- package/lib/chevre/repo/acceptedPaymentMethod.d.ts +41 -0
- package/lib/chevre/repo/acceptedPaymentMethod.js +180 -0
- package/lib/chevre/repo/authorization.d.ts +3 -2
- package/lib/chevre/repo/authorization.js +13 -5
- package/lib/chevre/repo/event.d.ts +1 -35
- package/lib/chevre/repo/event.js +2 -102
- package/lib/chevre/repo/eventOffer.js +3 -3
- package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.d.ts +10 -0
- package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +97 -0
- package/lib/chevre/repo/mongoose/schemas/eventOffer.js +9 -0
- package/lib/chevre/repo/note.js +4 -2
- package/lib/chevre/repo/pendingReservation.js +28 -71
- package/lib/chevre/repo/place/seat.d.ts +24 -0
- package/lib/chevre/repo/place/seat.js +103 -21
- package/lib/chevre/repo/place/section.d.ts +20 -0
- package/lib/chevre/repo/place/section.js +47 -0
- package/lib/chevre/repo/ticket.d.ts +7 -1
- package/lib/chevre/repo/ticket.js +14 -1
- package/lib/chevre/repository.d.ts +5 -0
- package/lib/chevre/repository.js +15 -2
- package/lib/chevre/service/assetTransaction/pay/factory.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/pay/factory.js +8 -3
- package/lib/chevre/service/assetTransaction/pay/validateAcceptedPaymentMethodIfNeeded.d.ts +16 -0
- package/lib/chevre/service/assetTransaction/pay/validateAcceptedPaymentMethodIfNeeded.js +94 -0
- package/lib/chevre/service/assetTransaction/pay.d.ts +6 -1
- package/lib/chevre/service/assetTransaction/pay.js +6 -1
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.d.ts +1 -2
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +7 -7
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.d.ts +6 -2
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +30 -30
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.d.ts +0 -1
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +7 -51
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +6 -8
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.d.ts +29 -1
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +9 -9
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +1 -1
- package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +48 -0
- package/lib/chevre/service/offer/event/issueEventOfferTicket.js +123 -0
- package/lib/chevre/service/offer/event.d.ts +2 -1
- package/lib/chevre/service/offer/event.js +3 -1
- package/lib/chevre/service/offer.d.ts +31 -1
- package/lib/chevre/service/offer.js +104 -34
- package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +9 -0
- package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +22 -11
- package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +19 -2
- package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +87 -9
- package/lib/chevre/service/payment/any/factory.d.ts +20 -3
- package/lib/chevre/service/payment/any/factory.js +26 -6
- package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +4 -0
- package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +15 -11
- package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.d.ts +6 -3
- package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +8 -22
- package/lib/chevre/service/payment/any.d.ts +5 -1
- package/lib/chevre/service/payment/any.js +22 -13
- package/lib/chevre/service/payment/factory.js +0 -5
- package/lib/chevre/service/payment/movieTicket/authorize.js +0 -5
- package/lib/chevre/service/task/authorizePayment.js +2 -0
- package/lib/chevre/service/task/publishPaymentUrl.js +4 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +1 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.d.ts +9 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.js +2 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.d.ts +8 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +45 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +38 -0
- package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +2 -8
- package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +5 -35
- package/package.json +3 -3
- package/example/src/chevre/checkReplaceActions.ts +0 -65
- package/example/src/chevre/upsertManyEventsByAdditionalProperty.ts +0 -193
- package/lib/chevre/service/code.d.ts +0 -8
- package/lib/chevre/service/code.js +0 -7
package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js
CHANGED
|
@@ -47,17 +47,73 @@ function recipe2paymentAgencyTransaction(actionRecipe) {
|
|
|
47
47
|
}
|
|
48
48
|
return { entryTranArgs, entryTranResult, execTranArgs, execTranResult };
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* 決済採用アクションから決済方法チケットを参照する
|
|
52
|
+
*/
|
|
53
|
+
function acceptAction2ticket(params) {
|
|
54
|
+
// tslint:disable-next-line:cyclomatic-complexity
|
|
55
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
const { acceptPayAction, project } = params;
|
|
58
|
+
const ticketToken = (_b = (_a = acceptPayAction.instrument) === null || _a === void 0 ? void 0 : _a.find((ticketAsInstrument) => ticketAsInstrument.typeOf === 'Ticket')) === null || _b === void 0 ? void 0 : _b.ticketToken;
|
|
59
|
+
let acceptAction2ticketResult;
|
|
60
|
+
if (typeof ticketToken === 'string' && ticketToken !== '') {
|
|
61
|
+
const ticket = (yield repos.ticket.findTickets({
|
|
62
|
+
limit: 1,
|
|
63
|
+
page: 1,
|
|
64
|
+
project: { id: { $eq: project.id } },
|
|
65
|
+
ticketToken: { $eq: ticketToken }
|
|
66
|
+
}, ['ticketToken'])).shift();
|
|
67
|
+
if (ticket === undefined) {
|
|
68
|
+
throw new factory.errors.NotFound('Ticket');
|
|
69
|
+
}
|
|
70
|
+
// 承認を参照
|
|
71
|
+
const validAuthorization = yield repos.authorization.findValidOneByCode({
|
|
72
|
+
project: { id: params.project.id },
|
|
73
|
+
code: ticket.ticketToken
|
|
74
|
+
});
|
|
75
|
+
const authorizedObject = validAuthorization.object;
|
|
76
|
+
if (authorizedObject.typeOf === 'OwnershipInfo') {
|
|
77
|
+
const { typeOfGood } = authorizedObject;
|
|
78
|
+
if (typeOfGood.typeOf === factory.service.paymentService.PaymentServiceType.CreditCard
|
|
79
|
+
|| typeOfGood.typeOf === factory.service.paymentService.PaymentServiceType.MovieTicket
|
|
80
|
+
|| typeOfGood.typeOf === factory.service.paymentService.PaymentServiceType.FaceToFace) {
|
|
81
|
+
if (acceptPayAction.object.transactionNumber !== typeOfGood.serviceOutput.paymentMethodId) {
|
|
82
|
+
// 念のため決済方法IDの一致検証
|
|
83
|
+
throw new factory.errors.Internal('acceptPayAction.object.transactionNumber must be the same as typeOfGood.serviceOutput.paymentMethodId');
|
|
84
|
+
}
|
|
85
|
+
acceptAction2ticketResult = {
|
|
86
|
+
invoiceByTicketToken: typeOfGood.serviceOutput,
|
|
87
|
+
ticketToken
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
throw new factory.errors.Argument('ticketToken', `invalid typeOfGood.typeOf ${typeOfGood.typeOf}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
throw new factory.errors.Argument('ticketToken', 'must be OwnershipInfo');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return { acceptAction2ticketResult };
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 決済承認前の決済採用アクションを参照する
|
|
103
|
+
*/
|
|
104
|
+
// tslint:disable-next-line:max-func-body-length
|
|
50
105
|
function handlePrePublishedPaymentMethodIdOnAuthorizing(params) {
|
|
51
106
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
52
107
|
let creditCard;
|
|
53
108
|
let pendingPaymentAgencyTransaction;
|
|
54
109
|
let existingCompletedAuthorizeAction;
|
|
110
|
+
let acceptPayAction;
|
|
55
111
|
// transaction.objectへのアクセス回避(2024-05-30~)
|
|
56
112
|
// const paymentMethodByTransaction = transaction.object.paymentMethods;
|
|
57
113
|
const paymentMethodByTransaction = yield repos.transaction.findInProgressPaymentMethodId({ id: params.transaction.id });
|
|
58
114
|
if (params.prePublishedPaymentMethodId === (paymentMethodByTransaction === null || paymentMethodByTransaction === void 0 ? void 0 : paymentMethodByTransaction.paymentMethodId)) {
|
|
59
115
|
// check existence of acceptAction when authorizing payment(2024-06-01~)
|
|
60
|
-
|
|
116
|
+
acceptPayAction = (yield repos.action.search({
|
|
61
117
|
limit: 1,
|
|
62
118
|
page: 1,
|
|
63
119
|
project: { id: { $eq: params.transaction.project.id } },
|
|
@@ -68,7 +124,7 @@ function handlePrePublishedPaymentMethodIdOnAuthorizing(params) {
|
|
|
68
124
|
transactionNumber: { $eq: params.prePublishedPaymentMethodId },
|
|
69
125
|
typeOf: { $eq: factory.assetTransactionType.Pay }
|
|
70
126
|
}
|
|
71
|
-
}, ['object', 'result'])).shift();
|
|
127
|
+
}, ['object', 'result', 'instrument'])).shift();
|
|
72
128
|
if (acceptPayAction === undefined) {
|
|
73
129
|
throw new factory.errors.NotFound(factory.actionType.AcceptAction);
|
|
74
130
|
}
|
|
@@ -113,10 +169,17 @@ function handlePrePublishedPaymentMethodIdOnAuthorizing(params) {
|
|
|
113
169
|
});
|
|
114
170
|
existingCompletedAuthorizeAction = existingCompletedAuthorizeActions.shift();
|
|
115
171
|
if (existingCompletedAuthorizeAction !== undefined) {
|
|
116
|
-
return {
|
|
172
|
+
return {
|
|
173
|
+
existingCompletedAuthorizeAction: { id: existingCompletedAuthorizeAction.id }
|
|
174
|
+
};
|
|
117
175
|
}
|
|
176
|
+
// 採用アクションのinstrumentから、決済方法チケットを参照する(2025-11-23~)
|
|
177
|
+
const { acceptAction2ticketResult } = yield acceptAction2ticket({
|
|
178
|
+
project: { id: params.transaction.project.id },
|
|
179
|
+
acceptPayAction
|
|
180
|
+
})(repos);
|
|
118
181
|
return {
|
|
119
|
-
authorizeParams: { creditCard, pendingPaymentAgencyTransaction, paymentMethodByTransaction }
|
|
182
|
+
authorizeParams: { creditCard, pendingPaymentAgencyTransaction, paymentMethodByTransaction, acceptAction2ticketResult }
|
|
120
183
|
};
|
|
121
184
|
}
|
|
122
185
|
else {
|
|
@@ -126,16 +189,13 @@ function handlePrePublishedPaymentMethodIdOnAuthorizing(params) {
|
|
|
126
189
|
});
|
|
127
190
|
}
|
|
128
191
|
/**
|
|
129
|
-
*
|
|
192
|
+
* 決済採用と決済承認の整合性を検証する
|
|
130
193
|
*/
|
|
131
194
|
function validatePaymentMethodByTransaction(params) {
|
|
132
|
-
var _a, _b;
|
|
195
|
+
var _a, _b, _c, _d;
|
|
133
196
|
const paymentServiceIdByObject = params.object.issuedThrough.id;
|
|
134
197
|
const amountByObject = params.object.amount;
|
|
135
198
|
const paymentMethodTypeByObject = params.object.paymentMethod;
|
|
136
|
-
// const paymentServiceIdByTransaction = params.paymentMethodByTransaction.issuedThrough.id;
|
|
137
|
-
// const amountByTransaction = params.paymentMethodByTransaction.paymentMethod?.amount;
|
|
138
|
-
// const paymentMethodTypeByTransaction = params.paymentMethodByTransaction.paymentMethod?.identifier;
|
|
139
199
|
const paymentServiceIdByTransaction = params.acceptObject.object.id;
|
|
140
200
|
const amountByTransaction = (_a = params.acceptObject.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.amount;
|
|
141
201
|
const paymentMethodTypeByTransaction = (_b = params.acceptObject.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.identifier;
|
|
@@ -151,4 +211,22 @@ function validatePaymentMethodByTransaction(params) {
|
|
|
151
211
|
if (paymentMethodTypeByObject !== paymentMethodTypeByTransaction) {
|
|
152
212
|
throw new factory.errors.Argument('object.paymentMethod', 'paymentMethod must match the target of the paymentUrl');
|
|
153
213
|
}
|
|
214
|
+
// 注文アイテム検証(2025-11-25)
|
|
215
|
+
let eventIdsMustBe = [];
|
|
216
|
+
let eventIdsByAuthorizeAction = [];
|
|
217
|
+
const orderedItemsByAcceptAction = (_c = params.acceptObject.object.serviceOutput) === null || _c === void 0 ? void 0 : _c.referencesOrder.orderedItem;
|
|
218
|
+
const orderedItemsByAuthorizeAction = (_d = params.object.referencesOrder) === null || _d === void 0 ? void 0 : _d.orderedItem;
|
|
219
|
+
if (Array.isArray(orderedItemsByAcceptAction)) {
|
|
220
|
+
eventIdsMustBe = orderedItemsByAcceptAction.map((orderedItem) => orderedItem.orderedItem.serviceOutput.reservationFor.id);
|
|
221
|
+
}
|
|
222
|
+
if (Array.isArray(orderedItemsByAuthorizeAction)) {
|
|
223
|
+
eventIdsByAuthorizeAction =
|
|
224
|
+
orderedItemsByAuthorizeAction.map((orderedItem) => orderedItem.orderedItem.serviceOutput.reservationFor.id);
|
|
225
|
+
}
|
|
226
|
+
debug('validatePaymentMethodByTransaction: eventIdsMustBe,eventIdsByAuthorizeAction:', JSON.stringify(eventIdsMustBe), JSON.stringify(eventIdsByAuthorizeAction));
|
|
227
|
+
const eventIdsMatched = eventIdsMustBe.length === eventIdsByAuthorizeAction.length
|
|
228
|
+
&& eventIdsMustBe.every((eventIdMustExist) => eventIdsByAuthorizeAction.includes(eventIdMustExist));
|
|
229
|
+
if (!eventIdsMatched) {
|
|
230
|
+
throw new factory.errors.Argument('id', `referencesOrder.orderedItem between authorze and accept not matched.`);
|
|
231
|
+
}
|
|
154
232
|
}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
|
+
/**
|
|
3
|
+
* 決済方法チケットによって表現された請求情報
|
|
4
|
+
*/
|
|
5
|
+
export type IInvoiceByTicketToken = factory.authorization.IInvoiceAsPaymentMethodServiceOutput;
|
|
2
6
|
export type INotification = factory.notification.payAction.IPayAction4inform | factory.notification.refundAction.IRefundAction4inform;
|
|
3
7
|
export declare function creatPublishPaymentUrlParams(params: {
|
|
4
8
|
accountId?: string;
|
|
5
|
-
object: Pick<factory.action.authorize.paymentMethod.any.IObjectIncludingPaymentMethodDetails, 'amount' | 'creditCard' | 'issuedThrough' | 'method' | 'paymentMethod'>;
|
|
9
|
+
object: Pick<factory.action.authorize.paymentMethod.any.IObjectIncludingPaymentMethodDetails, 'amount' | 'creditCard' | 'issuedThrough' | 'method' | 'paymentMethod' | 'referencesOrder'>;
|
|
6
10
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
7
11
|
transaction: Pick<factory.transaction.ITransaction<factory.transactionType.PlaceOrder>, 'expires' | 'seller' | 'project'>;
|
|
8
12
|
transactionNumber: string;
|
|
9
13
|
location?: factory.action.trade.pay.ILocation;
|
|
10
14
|
identifier?: string;
|
|
15
|
+
/**
|
|
16
|
+
* 決済採用に使用される決済方法チケットトークン
|
|
17
|
+
*/
|
|
18
|
+
ticketToken?: string;
|
|
11
19
|
}): Pick<factory.assetTransaction.pay.IStartParamsWithoutDetail, 'agent' | 'location' | 'project' | 'recipient' | 'transactionNumber' | 'typeOf'> & {
|
|
12
20
|
object: factory.action.accept.pay.IPayObject;
|
|
13
21
|
identifier?: string;
|
|
22
|
+
instrument: factory.action.accept.pay.IInstrument[];
|
|
14
23
|
};
|
|
15
24
|
export declare function creatPayTransactionStartParams(params: {
|
|
16
25
|
accountId?: string;
|
|
@@ -26,14 +35,22 @@ export declare function creatPayTransactionStartParams(params: {
|
|
|
26
35
|
confirmationNumber: string;
|
|
27
36
|
orderNumber: string;
|
|
28
37
|
};
|
|
29
|
-
action: Pick<factory.action.authorize.
|
|
38
|
+
action: Pick<factory.action.authorize.paymentMethod.any.IAction, 'id' | 'typeOf'>;
|
|
39
|
+
/**
|
|
40
|
+
* 決済方法チケット
|
|
41
|
+
*/
|
|
42
|
+
ticketToken?: string;
|
|
30
43
|
}): factory.assetTransaction.pay.IStartParamsWithoutDetail & {
|
|
31
|
-
instrument: factory.action.trade.pay.
|
|
44
|
+
instrument: factory.action.trade.pay.IPlaceOrderRelatedInstrument[];
|
|
32
45
|
};
|
|
33
46
|
export declare function createMovieTicket(params: factory.action.trade.pay.IMovieTicket): factory.action.trade.pay.IMovieTicket;
|
|
34
47
|
export declare function createAuthorizeResult(params: {
|
|
35
48
|
object: factory.action.authorize.paymentMethod.any.IObjectIncludingPaymentMethodDetails;
|
|
36
49
|
payTransaction: Pick<factory.assetTransaction.pay.ITransaction, 'object'>;
|
|
50
|
+
/**
|
|
51
|
+
* 決済方法チケットの承認対象
|
|
52
|
+
*/
|
|
53
|
+
invoiceByTicketToken?: IInvoiceByTicketToken;
|
|
37
54
|
}): factory.action.authorize.paymentMethod.any.IResult;
|
|
38
55
|
/**
|
|
39
56
|
* 通知対象としてのアクションを最適化
|
|
@@ -22,9 +22,14 @@ function creatPublishPaymentUrlParams(params) {
|
|
|
22
22
|
const object = {
|
|
23
23
|
typeOf: params.paymentServiceType,
|
|
24
24
|
id: issuedThroughId,
|
|
25
|
-
paymentMethod
|
|
25
|
+
paymentMethod,
|
|
26
|
+
serviceOutput: {
|
|
27
|
+
typeOf: 'Invoice',
|
|
28
|
+
referencesOrder: params.object.referencesOrder
|
|
29
|
+
}
|
|
26
30
|
};
|
|
27
|
-
|
|
31
|
+
const ticketAsInstrument = (typeof params.ticketToken === 'string') ? { ticketToken: params.ticketToken, typeOf: 'Ticket' } : undefined;
|
|
32
|
+
return Object.assign(Object.assign(Object.assign({ project: { id: params.transaction.project.id, typeOf: factory.organizationType.Project }, typeOf: factory.assetTransactionType.Pay, transactionNumber: params.transactionNumber, agent: {
|
|
28
33
|
typeOf: params.transaction.seller.typeOf,
|
|
29
34
|
id: params.transaction.seller.id,
|
|
30
35
|
name: (typeof params.transaction.seller.name === 'string')
|
|
@@ -38,12 +43,13 @@ function creatPublishPaymentUrlParams(params) {
|
|
|
38
43
|
typeOf: params.transaction.seller.typeOf
|
|
39
44
|
}, object }, (typeof ((_d = params.location) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string')
|
|
40
45
|
? { location: params.location }
|
|
41
|
-
: undefined), (typeof params.identifier === 'string')
|
|
46
|
+
: undefined), { instrument: (ticketAsInstrument !== undefined) ? [ticketAsInstrument] : [] }), (typeof params.identifier === 'string')
|
|
42
47
|
? { identifier: params.identifier }
|
|
43
48
|
: undefined);
|
|
44
49
|
}
|
|
45
50
|
function creatPayTransactionStartParams(params) {
|
|
46
51
|
var _a, _b, _c, _d;
|
|
52
|
+
const { ticketToken } = params;
|
|
47
53
|
let expires = moment(params.transaction.expires)
|
|
48
54
|
.add(1, 'month')
|
|
49
55
|
.toDate(); // 余裕を持って
|
|
@@ -61,9 +67,11 @@ function creatPayTransactionStartParams(params) {
|
|
|
61
67
|
? params.accountId
|
|
62
68
|
: (typeof params.object.accountId === 'string') ? params.object.accountId : undefined;
|
|
63
69
|
const movieTickets = (Array.isArray(params.object.movieTickets)) ? params.object.movieTickets.map(createMovieTicket) : undefined;
|
|
70
|
+
const ticketAsInstrument = (typeof ticketToken === 'string') ? { ticketToken, typeOf: 'Ticket' } : undefined;
|
|
64
71
|
const instrument = [
|
|
65
72
|
{ id: params.action.id, typeOf: params.action.typeOf },
|
|
66
|
-
{ orderNumber, typeOf: factory.order.OrderType.Order }
|
|
73
|
+
{ orderNumber, typeOf: factory.order.OrderType.Order },
|
|
74
|
+
...(ticketAsInstrument !== undefined) ? [ticketAsInstrument] : [] // add ticketAsInstrument(2025-11-25~)
|
|
67
75
|
];
|
|
68
76
|
return Object.assign({ project: { id: params.transaction.project.id, typeOf: factory.organizationType.Project }, typeOf: factory.assetTransactionType.Pay, transactionNumber: params.transactionNumber, agent: {
|
|
69
77
|
typeOf: params.transaction.seller.typeOf,
|
|
@@ -89,7 +97,11 @@ function creatPayTransactionStartParams(params) {
|
|
|
89
97
|
}, object: {
|
|
90
98
|
typeOf: params.paymentServiceType,
|
|
91
99
|
id: issuedThroughId,
|
|
92
|
-
paymentMethod: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: params.object.paymentMethod, amount: params.object.amount, additionalProperty: (Array.isArray(params.object.additionalProperty)) ? params.object.additionalProperty : [] }, (typeof params.object.method === 'string') ? { method: params.object.method } : undefined), (typeof params.object.name === 'string') ? { name: params.object.name } : undefined), (typeof accountId === 'string') ? { accountId } : undefined), (typeof params.object.description === 'string') ? { description: params.object.description } : undefined), (typeof params.object.fromLocation === 'string') ? { fromLocation: params.object.fromLocation } : undefined), (params.object.creditCard !== undefined) ? { creditCard: params.object.creditCard } : undefined), (Array.isArray(movieTickets)) ? { movieTickets } : undefined)
|
|
100
|
+
paymentMethod: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: params.object.paymentMethod, amount: params.object.amount, additionalProperty: (Array.isArray(params.object.additionalProperty)) ? params.object.additionalProperty : [] }, (typeof params.object.method === 'string') ? { method: params.object.method } : undefined), (typeof params.object.name === 'string') ? { name: params.object.name } : undefined), (typeof accountId === 'string') ? { accountId } : undefined), (typeof params.object.description === 'string') ? { description: params.object.description } : undefined), (typeof params.object.fromLocation === 'string') ? { fromLocation: params.object.fromLocation } : undefined), (params.object.creditCard !== undefined) ? { creditCard: params.object.creditCard } : undefined), (Array.isArray(movieTickets)) ? { movieTickets } : undefined),
|
|
101
|
+
serviceOutput: {
|
|
102
|
+
typeOf: 'Invoice',
|
|
103
|
+
referencesOrder: params.object.referencesOrder
|
|
104
|
+
}
|
|
93
105
|
}, expires: expires, purpose: {
|
|
94
106
|
typeOf: factory.order.OrderType.Order,
|
|
95
107
|
confirmationNumber,
|
|
@@ -156,6 +168,13 @@ function createAuthorizeResult(params) {
|
|
|
156
168
|
paymentStatus = factory.paymentStatusType.PaymentDue;
|
|
157
169
|
}
|
|
158
170
|
}
|
|
171
|
+
let invoiceOrderItems;
|
|
172
|
+
if (params.object.referencesOrder.typeOf === factory.order.OrderType.Order) {
|
|
173
|
+
if (Array.isArray(params.object.referencesOrder.orderedItem)) {
|
|
174
|
+
invoiceOrderItems = params.object.referencesOrder.orderedItem;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const referencesOrder = Object.assign({ typeOf: factory.order.OrderType.Order }, (Array.isArray(invoiceOrderItems) && invoiceOrderItems.length > 0) ? { orderedItem: invoiceOrderItems } : undefined);
|
|
159
178
|
// Array対応(2023-09-02~)
|
|
160
179
|
const resultAsInvoice = {
|
|
161
180
|
accountId: (typeof ((_e = payTransactionObject.paymentMethod) === null || _e === void 0 ? void 0 : _e.accountId) === 'string')
|
|
@@ -174,7 +193,8 @@ function createAuthorizeResult(params) {
|
|
|
174
193
|
: params.object.paymentMethod,
|
|
175
194
|
totalPaymentDue: totalPaymentDue,
|
|
176
195
|
additionalProperty: (Array.isArray(params.object.additionalProperty)) ? params.object.additionalProperty : [],
|
|
177
|
-
typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment
|
|
196
|
+
typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment,
|
|
197
|
+
referencesOrder // add(2025-11-23~)
|
|
178
198
|
};
|
|
179
199
|
// tslint:disable-next-line:no-suspicious-comment
|
|
180
200
|
// TODO 保留 resultにメンバーシップを追加(2024-08-13~)
|
|
@@ -21,5 +21,9 @@ declare function fixTransactionNumberOnPublishPaymentUrl(params: {
|
|
|
21
21
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
22
22
|
}): IFixTransactionNumberOperation<{
|
|
23
23
|
transactionNumber: string;
|
|
24
|
+
/**
|
|
25
|
+
* 決済採用に使用される決済方法チケットトークン
|
|
26
|
+
*/
|
|
27
|
+
ticketToken?: string;
|
|
24
28
|
}>;
|
|
25
29
|
export { fixTransactionNumberOnPublishPaymentUrl };
|
package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js
CHANGED
|
@@ -17,26 +17,30 @@ const verifyTicketTokenAsNeeded_1 = require("../verifyTicketTokenAsNeeded");
|
|
|
17
17
|
*/
|
|
18
18
|
function fixTransactionNumberOnPublishPaymentUrl(params) {
|
|
19
19
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
var _a, _b, _c, _d;
|
|
20
21
|
const { paymentServiceType, transaction, object } = params;
|
|
21
22
|
// 取引番号生成
|
|
22
23
|
let transactionNumber;
|
|
24
|
+
let ticketToken;
|
|
23
25
|
// support ticketToken(2024-08-21~)
|
|
24
|
-
const {
|
|
26
|
+
const { verifyPaymentMethodTicketResult } = yield (0, verifyTicketTokenAsNeeded_1.verifyTicketTokenAsNeeded)({
|
|
25
27
|
project: { id: transaction.project.id },
|
|
26
28
|
object,
|
|
27
29
|
paymentServiceType,
|
|
28
30
|
purpose: { id: transaction.id }
|
|
29
31
|
})(repos);
|
|
30
|
-
if ((
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
if (((_a = verifyPaymentMethodTicketResult === null || verifyPaymentMethodTicketResult === void 0 ? void 0 : verifyPaymentMethodTicketResult.invoiceByTicketToken) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.permit.PermitType.Permit) {
|
|
33
|
+
throw new factory.errors.Argument('ticketToken', `typeOfGood.typeOf ${(_b = verifyPaymentMethodTicketResult === null || verifyPaymentMethodTicketResult === void 0 ? void 0 : verifyPaymentMethodTicketResult.invoiceByTicketToken) === null || _b === void 0 ? void 0 : _b.typeOf} discontinued`);
|
|
34
|
+
// const paymentMethodIdByPermit = permitOrInvoice?.identifier;
|
|
35
|
+
// if (typeof paymentMethodIdByPermit === 'string') {
|
|
36
|
+
// transactionNumber = paymentMethodIdByPermit;
|
|
37
|
+
// }
|
|
35
38
|
}
|
|
36
|
-
else if ((
|
|
39
|
+
else if (((_c = verifyPaymentMethodTicketResult === null || verifyPaymentMethodTicketResult === void 0 ? void 0 : verifyPaymentMethodTicketResult.invoiceByTicketToken) === null || _c === void 0 ? void 0 : _c.typeOf) === 'Invoice') {
|
|
37
40
|
// support Invoice ticket(2025-11-09~)
|
|
38
|
-
if (typeof (
|
|
39
|
-
transactionNumber =
|
|
41
|
+
if (typeof ((_d = verifyPaymentMethodTicketResult.invoiceByTicketToken) === null || _d === void 0 ? void 0 : _d.paymentMethodId) === 'string') {
|
|
42
|
+
transactionNumber = verifyPaymentMethodTicketResult.invoiceByTicketToken.paymentMethodId;
|
|
43
|
+
ticketToken = verifyPaymentMethodTicketResult.ticketToken;
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
if (typeof transactionNumber !== 'string') {
|
|
@@ -44,8 +48,8 @@ function fixTransactionNumberOnPublishPaymentUrl(params) {
|
|
|
44
48
|
transactionNumber = publishTransactionNumberResult.transactionNumber;
|
|
45
49
|
}
|
|
46
50
|
return {
|
|
47
|
-
transactionNumber
|
|
48
|
-
|
|
51
|
+
transactionNumber,
|
|
52
|
+
ticketToken
|
|
49
53
|
};
|
|
50
54
|
});
|
|
51
55
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
2
|
import type { AuthorizationRepo } from '../../../repo/authorization';
|
|
3
3
|
import type { TicketRepo } from '../../../repo/ticket';
|
|
4
|
-
type
|
|
4
|
+
import type { IInvoiceByTicketToken } from './factory';
|
|
5
5
|
declare function verifyTicketTokenAsNeeded(params: {
|
|
6
6
|
project: {
|
|
7
7
|
id: string;
|
|
@@ -13,6 +13,9 @@ declare function verifyTicketTokenAsNeeded(params: {
|
|
|
13
13
|
authorization: AuthorizationRepo;
|
|
14
14
|
ticket: TicketRepo;
|
|
15
15
|
}) => Promise<{
|
|
16
|
-
|
|
16
|
+
verifyPaymentMethodTicketResult?: {
|
|
17
|
+
invoiceByTicketToken: IInvoiceByTicketToken;
|
|
18
|
+
ticketToken: string;
|
|
19
|
+
};
|
|
17
20
|
}>;
|
|
18
|
-
export {
|
|
21
|
+
export { verifyTicketTokenAsNeeded };
|
|
@@ -18,14 +18,14 @@ function verifyTicketTokenAsNeeded(params) {
|
|
|
18
18
|
var _a;
|
|
19
19
|
const { paymentServiceType, object, project } = params;
|
|
20
20
|
const { issuedThrough, ticketToken } = object;
|
|
21
|
-
let
|
|
21
|
+
let verifyPaymentMethodTicketResult;
|
|
22
22
|
// メンバーシップチケットが指定された場合、メンバーシップコードへ変換する
|
|
23
23
|
if (typeof ticketToken === 'string' && ticketToken !== '') {
|
|
24
24
|
switch (paymentServiceType) {
|
|
25
25
|
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
26
26
|
case factory.service.paymentService.PaymentServiceType.MovieTicket:
|
|
27
27
|
case factory.service.paymentService.PaymentServiceType.FaceToFace:
|
|
28
|
-
const ticket = (yield repos.ticket.
|
|
28
|
+
const ticket = (yield repos.ticket.findTickets({
|
|
29
29
|
limit: 1,
|
|
30
30
|
page: 1,
|
|
31
31
|
project: { id: { $eq: project.id } },
|
|
@@ -47,26 +47,9 @@ function verifyTicketTokenAsNeeded(params) {
|
|
|
47
47
|
}
|
|
48
48
|
if (authorizedObject.typeOf === 'OwnershipInfo') {
|
|
49
49
|
const { typeOfGood } = authorizedObject;
|
|
50
|
-
if (typeOfGood.typeOf === factory.permit.PermitType.Permit
|
|
50
|
+
if (typeOfGood.typeOf === factory.permit.PermitType.Permit) {
|
|
51
51
|
// discontinue(2025-11-14~)
|
|
52
52
|
throw new factory.errors.Argument('ticketToken', `typeOfGood.typeOf ${typeOfGood.typeOf} discontinued`);
|
|
53
|
-
// if (typeOfGood.issuedThrough?.typeOf !== paymentServiceType) {
|
|
54
|
-
// throw new factory.errors.Argument('ticketToken', 'paymentServiceType not matched');
|
|
55
|
-
// }
|
|
56
|
-
// // FaceToFace以外の場合、発行サービスIDを検証
|
|
57
|
-
// if (typeOfGood.issuedThrough.typeOf !== factory.service.paymentService.PaymentServiceType.FaceToFace) {
|
|
58
|
-
// if (typeOfGood.issuedThrough.id !== issuedThrough.id) {
|
|
59
|
-
// throw new factory.errors.Argument('ticketToken', 'issuedThrough.id not matched');
|
|
60
|
-
// }
|
|
61
|
-
// }
|
|
62
|
-
// if (typeOfGood.typeOf === factory.permit.PermitType.Permit) {
|
|
63
|
-
// permitOrInvoice = { identifier: typeOfGood.identifier, typeOf: factory.permit.PermitType.Permit };
|
|
64
|
-
// } else if (typeOfGood.typeOf === 'Invoice') {
|
|
65
|
-
// // support paymentServiceType.MovieTicket(2024-11-23~)
|
|
66
|
-
// permitOrInvoice = { paymentMethodId: typeOfGood.paymentMethodId, typeOf: 'Invoice' };
|
|
67
|
-
// } else {
|
|
68
|
-
// throw new factory.errors.Argument('ticketToken', 'must be Permit or Invoice');
|
|
69
|
-
// }
|
|
70
53
|
}
|
|
71
54
|
else if (typeOfGood.typeOf === factory.service.paymentService.PaymentServiceType.CreditCard
|
|
72
55
|
|| typeOfGood.typeOf === factory.service.paymentService.PaymentServiceType.MovieTicket
|
|
@@ -81,7 +64,10 @@ function verifyTicketTokenAsNeeded(params) {
|
|
|
81
64
|
throw new factory.errors.Argument('ticketToken', 'issuedThrough.id not matched');
|
|
82
65
|
}
|
|
83
66
|
}
|
|
84
|
-
|
|
67
|
+
verifyPaymentMethodTicketResult = {
|
|
68
|
+
invoiceByTicketToken: { paymentMethodId: typeOfGood.serviceOutput.paymentMethodId, typeOf: 'Invoice' },
|
|
69
|
+
ticketToken
|
|
70
|
+
};
|
|
85
71
|
}
|
|
86
72
|
else {
|
|
87
73
|
throw new factory.errors.Argument('ticketToken', `invalid typeOfGood.typeOf ${typeOfGood.typeOf}`);
|
|
@@ -96,6 +82,6 @@ function verifyTicketTokenAsNeeded(params) {
|
|
|
96
82
|
throw new factory.errors.NotImplemented(`ticketToken issued through ${paymentServiceType} not implemented`);
|
|
97
83
|
}
|
|
98
84
|
}
|
|
99
|
-
return {
|
|
85
|
+
return { verifyPaymentMethodTicketResult };
|
|
100
86
|
});
|
|
101
87
|
}
|
|
@@ -7,6 +7,7 @@ import type { AuthorizationRepo } from '../../repo/authorization';
|
|
|
7
7
|
import type { ConfirmationNumberRepo } from '../../repo/confirmationNumber';
|
|
8
8
|
import type { CredentialsRepo } from '../../repo/credentials';
|
|
9
9
|
import type { EventRepo } from '../../repo/event';
|
|
10
|
+
import type { EventSeriesRepo } from '../../repo/eventSeries';
|
|
10
11
|
import type { OrderNumberRepo } from '../../repo/orderNumber';
|
|
11
12
|
import type { PaymentServiceRepo } from '../../repo/paymentService';
|
|
12
13
|
import type { PaymentServiceProviderRepo } from '../../repo/paymentServiceProvider';
|
|
@@ -85,6 +86,7 @@ interface IAuthorizeRepos {
|
|
|
85
86
|
confirmationNumber: ConfirmationNumberRepo;
|
|
86
87
|
credentials: CredentialsRepo;
|
|
87
88
|
event: EventRepo;
|
|
89
|
+
eventSeries: EventSeriesRepo;
|
|
88
90
|
orderNumber: OrderNumberRepo;
|
|
89
91
|
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
90
92
|
paymentService: PaymentServiceRepo;
|
|
@@ -102,6 +104,8 @@ interface IPublishPaymentUrlRepos {
|
|
|
102
104
|
action: ActionRepo;
|
|
103
105
|
assetTransaction: AssetTransactionRepo;
|
|
104
106
|
authorization: AuthorizationRepo;
|
|
107
|
+
event: EventRepo;
|
|
108
|
+
eventSeries: EventSeriesRepo;
|
|
105
109
|
orderNumber: OrderNumberRepo;
|
|
106
110
|
paymentAccepted: SellerPaymentAcceptedRepo;
|
|
107
111
|
paymentService: PaymentServiceRepo;
|
|
@@ -125,7 +129,7 @@ declare function publishPaymentUrl(params: {
|
|
|
125
129
|
agent: {
|
|
126
130
|
id: string;
|
|
127
131
|
};
|
|
128
|
-
object: Pick<IObjectWithoutDetail, 'amount' | 'creditCard' | 'issuedThrough' | 'method' | 'paymentMethod'>;
|
|
132
|
+
object: Pick<IObjectWithoutDetail, 'amount' | 'creditCard' | 'issuedThrough' | 'method' | 'paymentMethod' | 'referencesOrder'>;
|
|
129
133
|
purpose: factory.action.authorize.paymentMethod.any.IPurpose;
|
|
130
134
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
131
135
|
location: factory.action.trade.pay.ILocation;
|
|
@@ -323,7 +323,7 @@ function processVoidPayTransaction(params) {
|
|
|
323
323
|
function publishPaymentUrl(params) {
|
|
324
324
|
// tslint:disable-next-line:max-func-body-length
|
|
325
325
|
return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
|
|
326
|
-
var _a;
|
|
326
|
+
var _a, _b;
|
|
327
327
|
const { paymentServiceType, purpose, project } = params;
|
|
328
328
|
if (purpose.typeOf !== factory.transactionType.PlaceOrder) {
|
|
329
329
|
throw new factory.errors.NotImplemented(`purpose.typeOf '${purpose.typeOf} not implemented'`);
|
|
@@ -340,7 +340,7 @@ function publishPaymentUrl(params) {
|
|
|
340
340
|
object: { orderDate: new Date() }
|
|
341
341
|
})(repos);
|
|
342
342
|
// 取引番号生成
|
|
343
|
-
const { transactionNumber } = yield (0, fixTransactionNumberOnPublishPaymentUrl_1.fixTransactionNumberOnPublishPaymentUrl)({
|
|
343
|
+
const { transactionNumber, ticketToken } = yield (0, fixTransactionNumberOnPublishPaymentUrl_1.fixTransactionNumberOnPublishPaymentUrl)({
|
|
344
344
|
object: params.object,
|
|
345
345
|
transaction,
|
|
346
346
|
paymentServiceType
|
|
@@ -361,9 +361,13 @@ function publishPaymentUrl(params) {
|
|
|
361
361
|
// }
|
|
362
362
|
let result;
|
|
363
363
|
// URL発行
|
|
364
|
-
const authorizeObject = Object.assign(Object.assign({}, params.object), { accountId: '', paymentMethodId: transactionNumber, typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment
|
|
365
|
-
|
|
366
|
-
|
|
364
|
+
const authorizeObject = Object.assign(Object.assign({}, params.object), { accountId: '', paymentMethodId: transactionNumber, typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment,
|
|
365
|
+
// support referencesOrder(2025-11-24~)
|
|
366
|
+
referencesOrder: (((_a = params.object.referencesOrder) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.order.OrderType.Order)
|
|
367
|
+
? params.object.referencesOrder
|
|
368
|
+
: { typeOf: factory.order.OrderType.Order } });
|
|
369
|
+
const startParams = (0, factory_1.creatPublishPaymentUrlParams)(Object.assign(Object.assign({ object: authorizeObject, paymentServiceType, transaction: transaction, transactionNumber: transactionNumber, location: params.location }, (typeof params.identifier === 'string') ? { identifier: params.identifier } : undefined), (typeof ticketToken === 'string') ? { ticketToken } : undefined));
|
|
370
|
+
const taskId = (_b = params.sameAs) === null || _b === void 0 ? void 0 : _b.id;
|
|
367
371
|
result = yield PayTransactionService.publishPaymentUrl(startParams, {
|
|
368
372
|
purposeAsTransaction: { id: transaction.id },
|
|
369
373
|
executor: (typeof taskId === 'string') ? { id: taskId } : {} // タスク関連付け(2024-05-22~)
|
|
@@ -416,7 +420,7 @@ function minimizeObjectIncludingPaymentMethodDetails(authorizeObjectIncludingPay
|
|
|
416
420
|
function authorize(params) {
|
|
417
421
|
// tslint:disable-next-line:cyclomatic-complexity max-func-body-length
|
|
418
422
|
return (repos, settings) => __awaiter(this, void 0, void 0, function* () {
|
|
419
|
-
var _a, _b;
|
|
423
|
+
var _a, _b, _c;
|
|
420
424
|
const { paymentServiceType, purpose, project } = params;
|
|
421
425
|
if (purpose.typeOf !== factory.transactionType.PlaceOrder) {
|
|
422
426
|
throw new factory.errors.NotImplemented(`purpose.typeOf '${purpose.typeOf} not implemented'`);
|
|
@@ -439,7 +443,7 @@ function authorize(params) {
|
|
|
439
443
|
if (typeof fixTransactionNumberResult.id === 'string') {
|
|
440
444
|
return { id: fixTransactionNumberResult.id };
|
|
441
445
|
}
|
|
442
|
-
const { transactionNumber, pendingPaymentAgencyTransaction, creditCard } = fixTransactionNumberResult;
|
|
446
|
+
const { transactionNumber, pendingPaymentAgencyTransaction, creditCard, invoiceByTicketToken, ticketToken } = fixTransactionNumberResult;
|
|
443
447
|
// let transactionNumber: string | undefined;
|
|
444
448
|
// let pendingPaymentAgencyTransaction: PayTransactionService.IPaymentAgencyTransaction | undefined;
|
|
445
449
|
// let creditCard: factory.action.authorize.paymentMethod.any.ICreditCard | undefined = params.object.creditCard;
|
|
@@ -497,10 +501,14 @@ function authorize(params) {
|
|
|
497
501
|
const { accountId } = yield fixAccountIdIfPossible({
|
|
498
502
|
object: params.object, project: { id: transaction.project.id }
|
|
499
503
|
})();
|
|
500
|
-
const authorizeObjectIncludingPaymentMethodDetails = Object.assign(Object.assign(Object.assign(Object.assign({}, params.object), { accountId, paymentMethodId: transactionNumber, typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment
|
|
504
|
+
const authorizeObjectIncludingPaymentMethodDetails = Object.assign(Object.assign(Object.assign(Object.assign({}, params.object), { accountId, paymentMethodId: transactionNumber, typeOf: factory.action.authorize.paymentMethod.any.ResultType.Payment,
|
|
505
|
+
// support referencesOrder(2025-11-24~)
|
|
506
|
+
referencesOrder: (((_a = params.object.referencesOrder) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.order.OrderType.Order)
|
|
507
|
+
? params.object.referencesOrder
|
|
508
|
+
: { typeOf: factory.order.OrderType.Order } }), (creditCard !== undefined) ? { creditCard } : undefined), (Array.isArray(movieTickets)) ? { movieTickets } : undefined);
|
|
501
509
|
const { authorizeObject } = minimizeObjectIncludingPaymentMethodDetails(authorizeObjectIncludingPaymentMethodDetails);
|
|
502
510
|
// 承認アクションを開始する
|
|
503
|
-
const taskId = (
|
|
511
|
+
const taskId = (_b = params.sameAs) === null || _b === void 0 ? void 0 : _b.id;
|
|
504
512
|
const uniqueActionIdentifier = util.format(`%s:%s:%s`, factory.actionType.AuthorizeAction, factory.action.authorize.paymentMethod.any.ResultType.Payment, authorizeObject.paymentMethodId);
|
|
505
513
|
const actionAttributes = Object.assign({ project: transaction.project, typeOf: factory.actionType.AuthorizeAction, object: authorizeObject, agent: {
|
|
506
514
|
typeOf: transaction.agent.typeOf,
|
|
@@ -514,7 +522,7 @@ function authorize(params) {
|
|
|
514
522
|
id: transaction.seller.id,
|
|
515
523
|
name: (typeof transaction.seller.name === 'string')
|
|
516
524
|
? transaction.seller.name
|
|
517
|
-
: String((
|
|
525
|
+
: String((_c = transaction.seller.name) === null || _c === void 0 ? void 0 : _c.ja)
|
|
518
526
|
}, purpose: { typeOf: transaction.typeOf, id: transaction.id }, identifier: uniqueActionIdentifier }, (typeof taskId === 'string') ? { sameAs: { id: taskId, typeOf: 'Task' } } : undefined // タスク関連付け(2024-04-22~)
|
|
519
527
|
);
|
|
520
528
|
const action = yield repos.action.start(actionAttributes);
|
|
@@ -530,7 +538,8 @@ function authorize(params) {
|
|
|
530
538
|
// confirmationNumber required(2025-02-12~)
|
|
531
539
|
// orderNumber required(2025-02-14~)
|
|
532
540
|
order: { confirmationNumber, orderNumber },
|
|
533
|
-
action: { id: action.id, typeOf: action.typeOf }
|
|
541
|
+
action: { id: action.id, typeOf: action.typeOf },
|
|
542
|
+
ticketToken
|
|
534
543
|
});
|
|
535
544
|
payTransaction = yield PayTransactionService.start(startParams, Object.assign({
|
|
536
545
|
// useCheckByIdentifierIfNotYet: params.options.useCheckByIdentifierIfNotYet,
|
|
@@ -570,8 +579,8 @@ function authorize(params) {
|
|
|
570
579
|
}
|
|
571
580
|
const result = (0, factory_1.createAuthorizeResult)({
|
|
572
581
|
payTransaction,
|
|
573
|
-
object: authorizeObjectIncludingPaymentMethodDetails
|
|
574
|
-
|
|
582
|
+
object: authorizeObjectIncludingPaymentMethodDetails,
|
|
583
|
+
invoiceByTicketToken
|
|
575
584
|
});
|
|
576
585
|
yield repos.action.completeWithVoid({ typeOf: action.typeOf, id: action.id, result: result });
|
|
577
586
|
return { id: action.id };
|
|
@@ -15,11 +15,6 @@ function createPayOrderAction(params) {
|
|
|
15
15
|
confirmationNumber: params.order.confirmationNumber,
|
|
16
16
|
orderNumber: params.order.orderNumber
|
|
17
17
|
};
|
|
18
|
-
// const instrument: factory.action.trade.pay.IInstrument = {
|
|
19
|
-
// id: params.transaction.id,
|
|
20
|
-
// transactionNumber: params.transaction.transactionNumber,
|
|
21
|
-
// typeOf: params.transaction.typeOf
|
|
22
|
-
// };
|
|
23
18
|
const instrument = [
|
|
24
19
|
{
|
|
25
20
|
id: params.transaction.id,
|
|
@@ -48,11 +48,6 @@ function authorize(params, transaction, paymentServiceId, options) {
|
|
|
48
48
|
}, typeOf: paymentMethodType }, (typeof accountId === 'string') ? { accountId } : undefined),
|
|
49
49
|
movieTickets: paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.movieTickets
|
|
50
50
|
};
|
|
51
|
-
// const instrument: factory.action.trade.pay.IInstrument = {
|
|
52
|
-
// id: transaction.id,
|
|
53
|
-
// transactionNumber: transaction.transactionNumber,
|
|
54
|
-
// typeOf: transaction.typeOf
|
|
55
|
-
// };
|
|
56
51
|
const instrument = [
|
|
57
52
|
{
|
|
58
53
|
id: transaction.id,
|
|
@@ -18,6 +18,7 @@ const authorization_1 = require("../../repo/authorization");
|
|
|
18
18
|
const confirmationNumber_1 = require("../../repo/confirmationNumber");
|
|
19
19
|
const credentials_1 = require("../../repo/credentials");
|
|
20
20
|
const event_1 = require("../../repo/event");
|
|
21
|
+
const eventSeries_1 = require("../../repo/eventSeries");
|
|
21
22
|
const orderNumber_1 = require("../../repo/orderNumber");
|
|
22
23
|
const paymentService_1 = require("../../repo/paymentService");
|
|
23
24
|
const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
|
|
@@ -63,6 +64,7 @@ function call(params) {
|
|
|
63
64
|
expireInSeconds: (useCredentialsRepo) ? credentialsExpireInSeconds : 0
|
|
64
65
|
}),
|
|
65
66
|
event: new event_1.EventRepo(connection),
|
|
67
|
+
eventSeries: new eventSeries_1.EventSeriesRepo(connection),
|
|
66
68
|
orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
|
|
67
69
|
paymentAccepted: new sellerPaymentAccepted_1.SellerPaymentAcceptedRepo(connection),
|
|
68
70
|
paymentService: new paymentService_1.PaymentServiceRepo(connection),
|
|
@@ -14,6 +14,8 @@ const factory = require("../../factory");
|
|
|
14
14
|
const action_1 = require("../../repo/action");
|
|
15
15
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
16
16
|
const authorization_1 = require("../../repo/authorization");
|
|
17
|
+
const event_1 = require("../../repo/event");
|
|
18
|
+
const eventSeries_1 = require("../../repo/eventSeries");
|
|
17
19
|
const orderNumber_1 = require("../../repo/orderNumber");
|
|
18
20
|
const paymentService_1 = require("../../repo/paymentService");
|
|
19
21
|
const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
|
|
@@ -43,6 +45,8 @@ function call(params) {
|
|
|
43
45
|
action: actionRepo,
|
|
44
46
|
assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
|
|
45
47
|
authorization: new authorization_1.AuthorizationRepo(connection),
|
|
48
|
+
event: new event_1.EventRepo(connection),
|
|
49
|
+
eventSeries: new eventSeries_1.EventSeriesRepo(connection),
|
|
46
50
|
orderNumber: new orderNumber_1.OrderNumberRepo({ connection }),
|
|
47
51
|
paymentAccepted: new sellerPaymentAccepted_1.SellerPaymentAcceptedRepo(connection),
|
|
48
52
|
paymentService: new paymentService_1.PaymentServiceRepo(connection),
|