import { IAction as IBaseAction } from '../../action'; import { IAcceptedPaymentMethodOfferAsInstrument, IPaymentMethodTicketAsInstrument } from '../../action/trade/pay'; import { ActionType } from '../../actionType'; import { IAgent, IObjectWithoutDetail, IPaymentMethodWithoutDetail } from '../../assetTransaction/pay'; import { AssetTransactionType } from '../../assetTransactionType'; import { IExecTran3dsArgs, IExecTran3dsResult, IRecipe } from '../../recipe/publishPaymentUrl'; import { TransactionType } from '../../transactionType'; import { IAttributes as IBaseAttributes } from '../accept'; export { IExecTran3dsArgs, IExecTran3dsResult, IAgent, IRecipe }; export type IPaymentMethod = Pick; /** * 採用する決済方法 */ export type IPayObject = Pick & { paymentMethod: IPaymentMethod; }; export interface IObject { /** * 決済方法(決済サービス) */ object: IPayObject; transactionNumber: string; typeOf: AssetTransactionType.Pay; } export interface IResult { paymentMethodId: string; paymentUrl: string; } export interface IPurpose { typeOf: TransactionType.PlaceOrder; id: string; } export type IInstrument = IPaymentMethodTicketAsInstrument | IAcceptedPaymentMethodOfferAsInstrument; /** * 決済採用アクション属性 */ export interface IAttributes extends Pick, 'agent' | 'error' | 'identifier' | 'location' | 'object' | 'project' | 'purpose' | 'result' | 'sameAs' | 'typeOf'> { typeOf: ActionType.AcceptAction; object: IObject; agent: IAgent; purpose: IPurpose; /** * add identifier for an unique index(2025-02-25~) * authorize payment action identifier */ identifier?: string; /** * 決済採用に使用されるチケット * 2025-11-22まではinstrument自体存在しない */ instrument?: IInstrument[]; } /** * 決済採用アクション */ export type IAction = IBaseAction;