Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions samples/payment/InitMultiPayment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const Craftgate = require('../../dist');

const craftgate = new Craftgate.Client({
apiKey: 'api-key',
secretKey: 'secret-key',
baseUrl: 'https://sandbox-api.craftgate.io'
});

const request = {
price: 100.0,
paidPrice: 100.0,
callbackUrl: 'https://www.your-website.com/craftgate-checkout-callback',
currency: Craftgate.Model.Currency.TRY,
conversationId: '456d1297-908e-4bd6-a13b-4be31a6e47d5',
externalId: '123d1297-839e-4bd6-a13b-4be31a6e12b8',
paymentGroup: Craftgate.Model.PaymentGroup.ListingOrSubscription,
paymentPhase: Craftgate.Model.PaymentPhase.Auth,
items: [
{
name: 'Item 1',
price: 30.0,
externalId: '123d1297-839e-4bd6-a13b-4be31a6e12a8'
},
{
name: 'Item 2',
price: 50.0,
externalId: '789d1297-839e-4bd6-a13b-4be31a6e13f7'
},
{
name: 'Item 3',
price: 20.0,
externalId: '3a1d1297-839e-4bd6-a13b-4be31a6e18e6'
}
]
};

craftgate.payment().initMultiPayment(request)
.then(payment => console.info('Init Multi payment', payment))
.catch(err => console.error('Failed to init multi payment', err));
4 changes: 0 additions & 4 deletions src/adapter/MerchantApmAdapter.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import {ClientCreationOptions} from '../lib/HttpClient';

import RetrieveDailyPaymentReportRequest from '../request/RetrieveDailyPaymentReportRequest';
import RetrieveDailyTransactionReportRequest from '../request/RetrieveDailyTransactionReportRequest';

import DataResponse from '../response/DataResponse';
import MerchantApmResponse from '../response/MerchantApmResponse';
import WalletResponse from '../response/WalletResponse';

import BaseAdapter from './BaseAdapter';

Expand Down
6 changes: 6 additions & 0 deletions src/adapter/PaymentAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import InitBnplPaymentRequest from '../request/InitBnplPaymentRequest';
import InitCheckoutCardVerifyRequest from '../request/InitCheckoutCardVerifyRequest';
import InitCheckoutPaymentRequest from '../request/InitCheckoutPaymentRequest';
import InitGarantiPayPaymentRequest from '../request/InitGarantiPayPaymentRequest';
import InitMultiPaymentRequest from '../request/InitMultiPaymentRequest';
import InitPosApmPaymentRequest from '../request/InitPosApmPaymentRequest';
import InitThreeDSPaymentRequest from '../request/InitThreeDSPaymentRequest';
import PostAuthPaymentRequest from '../request/PostAuthPaymentRequest';
Expand Down Expand Up @@ -47,6 +48,7 @@ import InitBnplPaymentResponse from '../response/InitBnplPaymentResponse';
import InitCheckoutCardVerifyResponse from '../response/InitCheckoutCardVerifyResponse';
import InitCheckoutPaymentResponse from '../response/InitCheckoutPaymentResponse';
import InitGarantiPayPaymentResponse from '../response/InitGarantiPayPaymentResponse';
import InitMultiPaymentResponse from '../response/InitMultipaymentPaymentResponse';
import InitPosApmPaymentResponse from '../response/InitPosApmPaymentResponse';
import InitThreeDSPaymentResponse from '../response/InitThreeDSPaymentResponse';
import InstantTransferBanksResponse from '../response/InstantTransferBanksResponse';
Expand Down Expand Up @@ -246,6 +248,10 @@ export default class PaymentAdapter extends BaseAdapter {
return this._client.get(`/payment/v1/instant-transfer-banks`);
}

async initMultiPayment(request: InitMultiPaymentRequest): Promise<InitMultiPaymentResponse> {
return this._client.post(`/payment/v1/multi-payments/init`, request);
}

async retrieveMultiPayment(token: string): Promise<MultiPaymentResponse> {
return this._client.get(`/payment/v1/multi-payments/${token}`);
}
Expand Down
1 change: 1 addition & 0 deletions src/model/WebhookEventType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ enum WebhookEventType {
WalletTxCreated = 'WALLET_TX_CREATED',
BnplNotification = 'BNPL_NOTIFICATION',
MultiPaymentCompleted = 'MULTI_PAYMENT_COMPLETED',
MultiPaymentExpired = 'MULTI_PAYMENT_EXPIRED',
BkmExpressPaymentNotification = 'BKM_EXPRESS_PAYMENT_NOTIFICATION'
}

Expand Down
2 changes: 1 addition & 1 deletion src/model/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import BounceStatus from './BounceStatus';
import CardAssociation from './CardAssociation';
import CardBrand from './CardBrand';
import CardExpiryStatus from './CardExpiryStatus';
import CardType from './CardType';
import CardVerificationAuthType from './CardVerificationAuthType';
import CardVerifyStatus from './CardVerifyStatus';
import CardType from './CardType';
import ClientType from './ClientType';
import Currency from './Currency';
import FileStatus from './FileStatus';
Expand Down
39 changes: 39 additions & 0 deletions src/request/InitMultiPaymentRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import Currency from '../model/Currency';
import PaymentGroup from '../model/PaymentGroup';
import PaymentMethod from '../model/PaymentMethod';
import PaymentPhase from '../model/PaymentPhase';
import PaymentSource from '../model/PaymentSource';

import PaymentItem from './dto/PaymentItem';

type InitMultiPaymentRequest = {
price: number;
paidPrice: number;
currency: Currency;
paymentGroup: PaymentGroup;
paymentSource?: PaymentSource;
conversationId?: string;
externalId?: string;
callbackUrl: string;
paymentPhase?: PaymentPhase;
paymentChannel?: string;
enabledPaymentMethods?: PaymentMethod[];
cardUserKey?: string;
buyerMemberId?: number;
allowOnlyCreditCard?: boolean;
forceAuthForNonCreditCards?: boolean;
allowOnlyStoredCards?: boolean;
allowInstallmentOnlyCommercialCards?: boolean;
alwaysStoreCardAfterPayment?: boolean;
disableStoreCard?: boolean;
forceThreeDS?: boolean;
masterpassGsmNumber?: string;
masterpassUserId?: string;
apmUserIdentity?: string;
items?: PaymentItem[];
ttl?: number;
maximumSplitPaymentCount?: number;
additionalParams?: Record<string, unknown>;
};

export default InitMultiPaymentRequest;
7 changes: 7 additions & 0 deletions src/response/InitMultipaymentPaymentResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type InitMultiPaymentResponse = {
token: string;
pageUrl: string;
tokenExpireDate: Date;
};

export default InitMultiPaymentResponse;