mirror of
https://github.com/jlengrand/adyen-node-api-library.git
synced 2026-03-10 08:01:20 +00:00
PW-6628: Serialize SaleToAcquirerData
Using same option (base64 encoded JSON string) on all terminal requests.
This commit is contained in:
@@ -89,13 +89,14 @@ describe("Terminal Cloud API", (): void => {
|
||||
const pOITransactionId = terminalAPIResponse.SaleToPOIResponse!.PaymentResponse!.POIData!.POITransactionID;
|
||||
expect(pOITransactionId).toBeTruthy();
|
||||
|
||||
|
||||
scope.post("/sync").reply(200, syncRefund);
|
||||
|
||||
const terminalAPIRefundRequest = createTerminalAPIRefundRequest(pOITransactionId);
|
||||
const id = Math.floor(Math.random() * Math.floor(10000000)).toString();
|
||||
terminalAPIRefundRequest.SaleToPOIRequest.MessageHeader.ServiceID = id;
|
||||
terminalAPIRefundRequest.SaleToPOIRequest.ReversalRequest!.SaleData!.SaleToAcquirerData!.currency = 'EUR';
|
||||
const terminalAPIRefundResponse = await terminalCloudAPI.sync(terminalAPIRefundRequest);
|
||||
|
||||
expect(terminalAPIRefundResponse.SaleToPOIResponse?.ReversalResponse).toBeDefined();
|
||||
});
|
||||
expect(terminalAPIRefundResponse.SaleToPOIResponse?.ReversalResponse?.Response.Result).toBe('Success');
|
||||
}, 20000);
|
||||
});
|
||||
|
||||
@@ -46,14 +46,6 @@ class TerminalCloudAPI extends ApiKeyAuthenticatedService {
|
||||
const reqWithAppInfo = {saleToPOIRequest};
|
||||
|
||||
mergeDeep(request, reqWithAppInfo);
|
||||
const formattedRequest = ObjectSerializer.serialize(request, "TerminalApiRequest");
|
||||
|
||||
if (formattedRequest.SaleToPOIRequest?.PaymentRequest?.SaleData?.SaleToAcquirerData) {
|
||||
const dataString = JSON.stringify(formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData);
|
||||
formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData = Buffer.from(dataString).toString("base64");
|
||||
}
|
||||
|
||||
return formattedRequest;
|
||||
}
|
||||
|
||||
return ObjectSerializer.serialize(request, "TerminalApiRequest");
|
||||
|
||||
@@ -47,12 +47,6 @@ class TerminalLocalAPI extends ApiKeyAuthenticatedService {
|
||||
securityKey: SecurityKey,
|
||||
): Promise<TerminalApiResponse> {
|
||||
const formattedRequest = ObjectSerializer.serialize(terminalApiRequest, "TerminalApiRequest");
|
||||
|
||||
if (formattedRequest.SaleToPOIRequest?.PaymentRequest?.SaleData?.SaleToAcquirerData) {
|
||||
const dataString = JSON.stringify(formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData);
|
||||
formattedRequest.SaleToPOIRequest.PaymentRequest.SaleData.SaleToAcquirerData = Buffer.from(dataString).toString("base64");
|
||||
}
|
||||
|
||||
const saleToPoiSecuredMessage: SaleToPOISecuredMessage = NexoCrypto.encrypt(
|
||||
terminalApiRequest.SaleToPOIRequest.MessageHeader,
|
||||
JSON.stringify(formattedRequest),
|
||||
|
||||
@@ -853,6 +853,9 @@ export class ObjectSerializer {
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return data.toISOString();
|
||||
} else if (type === "SaleToAcquirerData") {
|
||||
const dataString = JSON.stringify(data);
|
||||
return Buffer.from(dataString).toString("base64");
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
return data;
|
||||
|
||||
Reference in New Issue
Block a user