sibs-payments
Version:
A payment system module for SIBS payments integration with card tokenization support
66 lines • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SaveCard = SaveCard;
const types_1 = require("./types");
async function SaveCard(iam, data) {
const now = new Date();
const auth = await (await fetch(types_1.API, {
method: 'POST',
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${iam.bearerToken}`,
"X-IBM-Client-Id": iam.clientId
},
body: JSON.stringify({
"merchant": {
"terminalId": iam.terminalId,
"channel": "web",
"merchantTransactionId": data.id || ""
},
"transaction": {
"transactionTimestamp": now.toISOString(),
"description": data.description || "",
"moto": false,
"paymentType": "AUTH",
"amount": {
"value": 0,
"currency": "EUR"
},
"paymentMethod": [
"CARD"
]
},
"customer": {
"customerInfo": {
"customerEmail": data.customerEmail,
"shippingAddress": data.billingAddress,
"billingAddress": data.billingAddress
}
},
"tokenisation": {
"tokenisationRequest": {
"tokeniseCard": true
}
}
})
})).json();
const payment = await (await fetch(`${types_1.API}/${auth.transactionID}/card/purchase`, {
method: 'POST',
headers: {
"Content-Type": "application/json",
"Authorization": `Digest ${auth.transactionSignature}`,
"X-IBM-Client-Id": iam.clientId
},
body: JSON.stringify({
"cardInfo": {
"PAN": data.PAN,
"secureCode": data.secureCode,
"validationDate": data.validationDate,
"cardholderName": data.customerName,
"createToken": true
},
})
})).json();
return { auth, payment };
}
//# sourceMappingURL=save-card.js.map