Skip to content

Commit 7c6241e

Browse files
authored
Init multi payment endpoint and samples added (#307)
* Init multi payment endpoint and samples added * Init multi payment endpoint and samples added * Init multi payment endpoint and samples added * Init multi payment endpoint and samples added
1 parent dcf06bd commit 7c6241e

7 files changed

Lines changed: 93 additions & 5 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
const Craftgate = require('../../dist');
2+
3+
const craftgate = new Craftgate.Client({
4+
apiKey: 'api-key',
5+
secretKey: 'secret-key',
6+
baseUrl: 'https://sandbox-api.craftgate.io'
7+
});
8+
9+
const request = {
10+
price: 100.0,
11+
paidPrice: 100.0,
12+
callbackUrl: 'https://www.your-website.com/craftgate-checkout-callback',
13+
currency: Craftgate.Model.Currency.TRY,
14+
conversationId: '456d1297-908e-4bd6-a13b-4be31a6e47d5',
15+
externalId: '123d1297-839e-4bd6-a13b-4be31a6e12b8',
16+
paymentGroup: Craftgate.Model.PaymentGroup.ListingOrSubscription,
17+
paymentPhase: Craftgate.Model.PaymentPhase.Auth,
18+
items: [
19+
{
20+
name: 'Item 1',
21+
price: 30.0,
22+
externalId: '123d1297-839e-4bd6-a13b-4be31a6e12a8'
23+
},
24+
{
25+
name: 'Item 2',
26+
price: 50.0,
27+
externalId: '789d1297-839e-4bd6-a13b-4be31a6e13f7'
28+
},
29+
{
30+
name: 'Item 3',
31+
price: 20.0,
32+
externalId: '3a1d1297-839e-4bd6-a13b-4be31a6e18e6'
33+
}
34+
]
35+
};
36+
37+
craftgate.payment().initMultiPayment(request)
38+
.then(payment => console.info('Init Multi payment', payment))
39+
.catch(err => console.error('Failed to init multi payment', err));

src/adapter/MerchantApmAdapter.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import {ClientCreationOptions} from '../lib/HttpClient';
22

3-
import RetrieveDailyPaymentReportRequest from '../request/RetrieveDailyPaymentReportRequest';
4-
import RetrieveDailyTransactionReportRequest from '../request/RetrieveDailyTransactionReportRequest';
5-
63
import DataResponse from '../response/DataResponse';
74
import MerchantApmResponse from '../response/MerchantApmResponse';
8-
import WalletResponse from '../response/WalletResponse';
95

106
import BaseAdapter from './BaseAdapter';
117

src/adapter/PaymentAdapter.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import InitBnplPaymentRequest from '../request/InitBnplPaymentRequest';
2020
import InitCheckoutCardVerifyRequest from '../request/InitCheckoutCardVerifyRequest';
2121
import InitCheckoutPaymentRequest from '../request/InitCheckoutPaymentRequest';
2222
import InitGarantiPayPaymentRequest from '../request/InitGarantiPayPaymentRequest';
23+
import InitMultiPaymentRequest from '../request/InitMultiPaymentRequest';
2324
import InitPosApmPaymentRequest from '../request/InitPosApmPaymentRequest';
2425
import InitThreeDSPaymentRequest from '../request/InitThreeDSPaymentRequest';
2526
import PostAuthPaymentRequest from '../request/PostAuthPaymentRequest';
@@ -47,6 +48,7 @@ import InitBnplPaymentResponse from '../response/InitBnplPaymentResponse';
4748
import InitCheckoutCardVerifyResponse from '../response/InitCheckoutCardVerifyResponse';
4849
import InitCheckoutPaymentResponse from '../response/InitCheckoutPaymentResponse';
4950
import InitGarantiPayPaymentResponse from '../response/InitGarantiPayPaymentResponse';
51+
import InitMultiPaymentResponse from '../response/InitMultipaymentPaymentResponse';
5052
import InitPosApmPaymentResponse from '../response/InitPosApmPaymentResponse';
5153
import InitThreeDSPaymentResponse from '../response/InitThreeDSPaymentResponse';
5254
import InstantTransferBanksResponse from '../response/InstantTransferBanksResponse';
@@ -246,6 +248,10 @@ export default class PaymentAdapter extends BaseAdapter {
246248
return this._client.get(`/payment/v1/instant-transfer-banks`);
247249
}
248250

251+
async initMultiPayment(request: InitMultiPaymentRequest): Promise<InitMultiPaymentResponse> {
252+
return this._client.post(`/payment/v1/multi-payments/init`, request);
253+
}
254+
249255
async retrieveMultiPayment(token: string): Promise<MultiPaymentResponse> {
250256
return this._client.get(`/payment/v1/multi-payments/${token}`);
251257
}

src/model/WebhookEventType.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ enum WebhookEventType {
1111
WalletTxCreated = 'WALLET_TX_CREATED',
1212
BnplNotification = 'BNPL_NOTIFICATION',
1313
MultiPaymentCompleted = 'MULTI_PAYMENT_COMPLETED',
14+
MultiPaymentExpired = 'MULTI_PAYMENT_EXPIRED',
1415
BkmExpressPaymentNotification = 'BKM_EXPRESS_PAYMENT_NOTIFICATION'
1516
}
1617

src/model/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import BounceStatus from './BounceStatus';
77
import CardAssociation from './CardAssociation';
88
import CardBrand from './CardBrand';
99
import CardExpiryStatus from './CardExpiryStatus';
10+
import CardType from './CardType';
1011
import CardVerificationAuthType from './CardVerificationAuthType';
1112
import CardVerifyStatus from './CardVerifyStatus';
12-
import CardType from './CardType';
1313
import ClientType from './ClientType';
1414
import Currency from './Currency';
1515
import FileStatus from './FileStatus';
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import Currency from '../model/Currency';
2+
import PaymentGroup from '../model/PaymentGroup';
3+
import PaymentMethod from '../model/PaymentMethod';
4+
import PaymentPhase from '../model/PaymentPhase';
5+
import PaymentSource from '../model/PaymentSource';
6+
7+
import PaymentItem from './dto/PaymentItem';
8+
9+
type InitMultiPaymentRequest = {
10+
price: number;
11+
paidPrice: number;
12+
currency: Currency;
13+
paymentGroup: PaymentGroup;
14+
paymentSource?: PaymentSource;
15+
conversationId?: string;
16+
externalId?: string;
17+
callbackUrl: string;
18+
paymentPhase?: PaymentPhase;
19+
paymentChannel?: string;
20+
enabledPaymentMethods?: PaymentMethod[];
21+
cardUserKey?: string;
22+
buyerMemberId?: number;
23+
allowOnlyCreditCard?: boolean;
24+
forceAuthForNonCreditCards?: boolean;
25+
allowOnlyStoredCards?: boolean;
26+
allowInstallmentOnlyCommercialCards?: boolean;
27+
alwaysStoreCardAfterPayment?: boolean;
28+
disableStoreCard?: boolean;
29+
forceThreeDS?: boolean;
30+
masterpassGsmNumber?: string;
31+
masterpassUserId?: string;
32+
apmUserIdentity?: string;
33+
items?: PaymentItem[];
34+
ttl?: number;
35+
maximumSplitPaymentCount?: number;
36+
additionalParams?: Record<string, unknown>;
37+
};
38+
39+
export default InitMultiPaymentRequest;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
type InitMultiPaymentResponse = {
2+
token: string;
3+
pageUrl: string;
4+
tokenExpireDate: Date;
5+
};
6+
7+
export default InitMultiPaymentResponse;

0 commit comments

Comments
 (0)