Skip to content

Commit 7e83fdd

Browse files
authored
Merge branch 'master' into pay-by-link-basket-identifier
2 parents 7f9080c + 5fb4bfb commit 7e83fdd

37 files changed

Lines changed: 480 additions & 11 deletions

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@craftgate/craftgate",
3-
"version": "1.0.65",
3+
"version": "1.0.66",
44
"description": "Craftgate API JavaScript Client",
55
"main": "dist/index.js",
66
"scripts": {
@@ -38,6 +38,6 @@
3838
"typescript": "4.4.4"
3939
},
4040
"dependencies": {
41-
"axios": "0.30.2"
41+
"axios": "0.31.0"
4242
}
43-
}
43+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const Craftgate = require('../../dist');
2+
const ApmType = require('../../src/model/ApmType');
3+
4+
const craftgate = new Craftgate.Client({
5+
apiKey: 'api-key',
6+
secretKey: 'secret-key',
7+
baseUrl: 'https://sandbox-api.craftgate.io'
8+
});
9+
10+
craftgate.payment().bnplLimitInquiry({
11+
apmType: ApmType.Zip,
12+
additionalParams: {
13+
buyerPhoneNumber: '+905320000000',
14+
otpCode: '123456'
15+
}
16+
})
17+
.then(results => console.info('Complete BNPL limit inquiry response ', results))
18+
.catch(err => console.error('Failed to complete BNPL limit inquiry', err));
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const Craftgate = require('../../dist');
2+
const ApmType = require('../../src/model/ApmType');
3+
4+
const craftgate = new Craftgate.Client({
5+
apiKey: 'api-key',
6+
secretKey: 'secret-key',
7+
baseUrl: 'https://sandbox-api.craftgate.io'
8+
});
9+
10+
craftgate.payment().bnplLimitInquiryInit({
11+
apmType: ApmType.Zip,
12+
additionalParams: {
13+
buyerPhoneNumber: '5320000000',
14+
buyerIdentityNumber: '11111111110',
15+
buyerBirthdate: '1990-01-01'
16+
}
17+
})
18+
.then(results => console.info('Init BNPL limit inquiry response ', results))
19+
.catch(err => console.error('Failed to init BNPL limit inquiry', err));
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
verificationPrice: 10,
11+
currency: Craftgate.Model.Currency.TRY,
12+
conversationId: '456d1297-908e-4bd6-a13b-4be31a6e47d5',
13+
callbackUrl: 'https://www.your-website.com/craftgate-checkout-card-verify-callback',
14+
paymentAuthenticationType: Craftgate.Model.CardVerificationAuthType.NonThreeDs
15+
};
16+
17+
craftgate.payment().initCheckoutCardVerify(request)
18+
.then(result => console.info('Init checkout card verify successful', result))
19+
.catch(err => console.error('Init checkout card verify failed', err));
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));
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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+
secureFieldsToken:"xxXXxx",
11+
};
12+
13+
craftgate.payment().storeCard(request)
14+
.then(results => console.info('Store card response', results))
15+
.catch(err => console.error('Failed to store card', err));

samples/payment/VerifyCard.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
card: {
11+
cardHolderName: 'Haluk Demir',
12+
cardNumber: '5258640000000001',
13+
expireYear: '2044',
14+
expireMonth: '07',
15+
cvc: '000',
16+
cardAlias: 'My YKB Card'
17+
},
18+
paymentAuthenticationType: Craftgate.Model.CardVerificationAuthType.ThreeDs,
19+
callbackUrl: 'https://www.your-website.com/craftgate-3DSecure-card-verify-callback',
20+
conversationId: '456d1297-908e-4bd6-a13b-4be31a6e47d5',
21+
verificationPrice: 10,
22+
currency: Craftgate.Model.Currency.TRY,
23+
clientIp: '127.0.0.1'
24+
};
25+
26+
craftgate.payment().verifyCard(request)
27+
.then(result => console.info('Verify card successful', result))
28+
.catch(err => console.error('Verify card failed', err));

src/CraftgateError.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1+
type ProviderError = {
2+
errorCode?: string;
3+
errorMessage?: string;
4+
};
5+
16
type ErrorResponse = {
27
errorCode: string;
38
errorDescription: string;
9+
providerError?: ProviderError;
410
};
511

612
export default class CraftgateError extends Error {
713
private _errorCode: string;
814
private _errorDescription: string;
15+
private _providerError?: ProviderError;
916
private _errorData: any;
1017

11-
constructor({errorCode, errorDescription, ...rest}: ErrorResponse) {
18+
constructor({errorCode, errorDescription, providerError, ...rest}: ErrorResponse) {
1219
super(errorDescription);
1320

1421
this._errorCode = errorCode;
1522
this._errorDescription = errorDescription;
23+
this._providerError = providerError;
1624
this._errorData = rest;
1725

1826
Object.setPrototypeOf(this, CraftgateError.prototype);
@@ -26,6 +34,10 @@ export default class CraftgateError extends Error {
2634
return this._errorDescription;
2735
}
2836

37+
getProviderError(): ProviderError | undefined {
38+
return this._providerError;
39+
}
40+
2941
getErrorData(): any {
3042
return this._errorData;
3143
}

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: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import ApprovePaymentTransactionsRequest from '../request/ApprovePaymentTransact
66
import BnplPaymentOfferRequest from '../request/BnplPaymentOfferRequest';
77
import CloneCardRequest from '../request/CloneCardRequest';
88
import CompleteApmPaymentRequest from '../request/CompleteApmPaymentRequest';
9+
import CompleteBnplLimitInquiryRequest from '../request/CompleteBnplLimitInquiryRequest';
910
import CompletePosApmPaymentRequest from '../request/CompletePosApmPaymentRequest';
1011
import CompleteThreeDSPaymentRequest from '../request/CompleteThreeDSPaymentRequest';
1112
import CreateApmPaymentRequest from '../request/CreateApmPaymentRequest';
@@ -16,9 +17,12 @@ import DeleteStoredCardRequest from '../request/DeleteStoredCardRequest';
1617
import DisapprovePaymentTransactionsRequest from '../request/DisapprovePaymentTransactionsRequest';
1718
import InitApmDepositPaymentRequest from '../request/InitApmDepositPaymentRequest';
1819
import InitApmPaymentRequest from '../request/InitApmPaymentRequest';
20+
import InitBnplLimitInquiryRequest from '../request/InitBnplLimitInquiryRequest';
1921
import InitBnplPaymentRequest from '../request/InitBnplPaymentRequest';
22+
import InitCheckoutCardVerifyRequest from '../request/InitCheckoutCardVerifyRequest';
2023
import InitCheckoutPaymentRequest from '../request/InitCheckoutPaymentRequest';
2124
import InitGarantiPayPaymentRequest from '../request/InitGarantiPayPaymentRequest';
25+
import InitMultiPaymentRequest from '../request/InitMultiPaymentRequest';
2226
import InitPosApmPaymentRequest from '../request/InitPosApmPaymentRequest';
2327
import InitThreeDSPaymentRequest from '../request/InitThreeDSPaymentRequest';
2428
import PostAuthPaymentRequest from '../request/PostAuthPaymentRequest';
@@ -32,8 +36,10 @@ import SearchStoredCardsRequest from '../request/SearchStoredCardsRequest';
3236
import StoreCardRequest from '../request/StoreCardRequest';
3337
import UpdateCardRequest from '../request/UpdateCardRequest';
3438
import UpdatePaymentTransactionRequest from '../request/UpdatePaymentTransactionRequest';
39+
import VerifyCardRequest from '../request/VerifyCardRequest';
3540

3641
import ApmDepositPaymentResponse from '../response/ApmDepositPaymentResponse';
42+
import BnplLimitInquiryResponse from '../response/BnplLimitInquiryResponse';
3743
import BnplPaymentOfferResponse from '../response/BnplPaymentOfferResponse';
3844
import BnplPaymentVerifyResponse from '../response/BnplPaymentVerifyResponse';
3945
import CompleteApmPaymentResponse from '../response/CompleteApmPaymentResponse';
@@ -42,8 +48,10 @@ import DepositPaymentResponse from '../response/DepositPaymentResponse';
4248
import FundTransferDepositPaymentResponse from '../response/FundTransferDepositPaymentResponse';
4349
import InitApmPaymentResponse from '../response/InitApmPaymentResponse';
4450
import InitBnplPaymentResponse from '../response/InitBnplPaymentResponse';
51+
import InitCheckoutCardVerifyResponse from '../response/InitCheckoutCardVerifyResponse';
4552
import InitCheckoutPaymentResponse from '../response/InitCheckoutPaymentResponse';
4653
import InitGarantiPayPaymentResponse from '../response/InitGarantiPayPaymentResponse';
54+
import InitMultiPaymentResponse from '../response/InitMultipaymentPaymentResponse';
4755
import InitPosApmPaymentResponse from '../response/InitPosApmPaymentResponse';
4856
import InitThreeDSPaymentResponse from '../response/InitThreeDSPaymentResponse';
4957
import InstantTransferBanksResponse from '../response/InstantTransferBanksResponse';
@@ -54,8 +62,10 @@ import PaymentTransactionApprovalListResponse from '../response/PaymentTransacti
5462
import PaymentTransactionRefundListResponse from '../response/PaymentTransactionRefundListResponse';
5563
import PaymentTransactionRefundResponse from '../response/PaymentTransactionRefundResponse';
5664
import PaymentTransactionResponse from '../response/PaymentTransactionResponse';
65+
import RetrieveCheckoutCardVerifyResponse from '../response/RetrieveCheckoutCardVerifyResponse';
5766
import RetrieveLoyaltiesResponse from '../response/RetrieveLoyaltiesResponse';
5867
import StoredCardResponse from '../response/StoredCardResponse';
68+
import VerifyCardResponse from '../response/VerifyCardResponse';
5969
import WaitingPaymentRefundResponse from '../response/WaitingPaymentRefundResponse';
6070

6171
import BaseAdapter from './BaseAdapter';
@@ -89,6 +99,14 @@ export default class PaymentAdapter extends BaseAdapter {
8999
return this._client.post('/payment/v1/checkout-payments/init', request);
90100
}
91101

102+
async initCheckoutCardVerify(request: InitCheckoutCardVerifyRequest): Promise<InitCheckoutCardVerifyResponse> {
103+
return this._client.post('/payment/v1/checkout-card-verify/init', request);
104+
}
105+
106+
async retrieveCheckoutCardVerify(token: string): Promise<RetrieveCheckoutCardVerifyResponse> {
107+
return this._client.get(`/payment/v1/checkout-card-verify/${token}`);
108+
}
109+
92110
async retrieveCheckoutPayment(token: string): Promise<PaymentResponse> {
93111
return this._client.get(`/payment/v1/checkout-payments/${token}`);
94112
}
@@ -189,6 +207,10 @@ export default class PaymentAdapter extends BaseAdapter {
189207
await this._client.post('/payment/v1/cards/delete', request);
190208
}
191209

210+
async verifyCard(request: VerifyCardRequest): Promise<VerifyCardResponse> {
211+
return this._client.post('/payment/v1/cards/verify', request);
212+
}
213+
192214
async approvePaymentTransactions(request: ApprovePaymentTransactionsRequest): Promise<PaymentTransactionApprovalListResponse> {
193215
return this._client.post('/payment/v1/payment-transactions/approve', request);
194216
}
@@ -225,10 +247,22 @@ export default class PaymentAdapter extends BaseAdapter {
225247
return this._client.post(`/payment/v1/bnpl-payments/${paymentId}/verify`);
226248
}
227249

250+
async bnplLimitInquiryInit(request: InitBnplLimitInquiryRequest): Promise<BnplLimitInquiryResponse> {
251+
return this._client.post(`/payment/v1/bnpl-payments/limit-inquiry/init`, request);
252+
}
253+
254+
async bnplLimitInquiry(request: CompleteBnplLimitInquiryRequest): Promise<BnplLimitInquiryResponse> {
255+
return this._client.post(`/payment/v1/bnpl-payments/limit-inquiry`, request);
256+
}
257+
228258
async retrieveActiveBanks(): Promise<InstantTransferBanksResponse> {
229259
return this._client.get(`/payment/v1/instant-transfer-banks`);
230260
}
231261

262+
async initMultiPayment(request: InitMultiPaymentRequest): Promise<InitMultiPaymentResponse> {
263+
return this._client.post(`/payment/v1/multi-payments/init`, request);
264+
}
265+
232266
async retrieveMultiPayment(token: string): Promise<MultiPaymentResponse> {
233267
return this._client.get(`/payment/v1/multi-payments/${token}`);
234268
}

0 commit comments

Comments
 (0)