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
17 changes: 17 additions & 0 deletions samples/payment/RetrieveCardFromIVR.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const Craftgate = require('../../dist');
const RetrieveCardFromIvrRequest = require('../../src/request/RetrieveCardFromIvrRequest');

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

const request = {
cardUserKey: '45f12c74-3000-465c-96dc-876850e7dd7a',
callToken: "0309ac2d-c5a5-4b4f-a91f-5c444ba07b24"
};

craftgate.payment().retrieveCardFromIvr(request)
.then(result => console.info('Retrieve card from ivr', result))
.catch(err => console.error('Failed to retrieve card from ivr', err));
6 changes: 6 additions & 0 deletions src/adapter/PaymentAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import RefundPaymentRequest from '../request/RefundPaymentRequest';
import RefundPaymentTransactionMarkAsRefundedRequest from '../request/RefundPaymentTransactionMarkAsRefundedRequest';
import RefundPaymentTransactionRequest from '../request/RefundPaymentTransactionRequest';
import RefundWaitingPaymentRequest from '../request/RefundWaitingPaymentRequest';
import RetrieveCardFromIvrRequest from '../request/RetrieveCardFromIvrRequest';
import RetrieveLoyaltiesRequest from '../request/RetrieveLoyaltiesRequest';
import RetrieveProviderCardRequest from '../request/RetrieveProviderCardRequest';
import SearchStoredCardsRequest from '../request/SearchStoredCardsRequest';
Expand All @@ -55,6 +56,7 @@ import InitMultiPaymentResponse from '../response/InitMultipaymentPaymentRespons
import InitPosApmPaymentResponse from '../response/InitPosApmPaymentResponse';
import InitThreeDSPaymentResponse from '../response/InitThreeDSPaymentResponse';
import InstantTransferBanksResponse from '../response/InstantTransferBanksResponse';
import IVRCardTokenizationResponse from '../response/IVRCardTokenizationResponse';
import MultiPaymentResponse from '../response/MultiPaymentResponse';
import PaymentRefundResponse from '../response/PaymentRefundResponse';
import PaymentResponse from '../response/PaymentResponse';
Expand Down Expand Up @@ -271,6 +273,10 @@ export default class PaymentAdapter extends BaseAdapter {
return this._client.get('/payment/v1/cards/provider-card-mappings', request);
}

async retrieveCardFromIvr(request: RetrieveCardFromIvrRequest): Promise<IVRCardTokenizationResponse> {
return this._client.get('/payment/v1/ivr-cards', request);
}

async is3DSecureCallbackVerified(threeDSecureCallbackKey: string, params: Map<string, string>): Promise<boolean> {
const hash = params['hash'];
const hashString: string = [
Expand Down
6 changes: 6 additions & 0 deletions src/request/RetrieveCardFromIvrRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
type RetrieveCardFromIvrRequest = {
callToken: string;
cardUserKey: string;
};

export default RetrieveCardFromIvrRequest;
9 changes: 9 additions & 0 deletions src/response/IVRCardTokenizationResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
type IVRCardTokenizationResponse = {
binNumber: string;
lastFourDigits: string;
cardUserKey: string;
cardToken: string;
secureFieldsToken: string;
};

export default IVRCardTokenizationResponse;
Loading