I have created a lightbox using this html code from third party payment system (Datatrans) for the payment process and it works fine. How can I fetch the response programmatically?
Is there way to receive and process respionse XML from any payment system at all?
Thanks a lot.
import {fetch} from ‘wix-fetch’;
import xmljs from ‘xml-js’;
export function postPayment() {
const url = “https://api.sandbox.datatrans.com/upp/jsp/XML_authorize.jsp”;
console.log(“in Post Payment”)
var convert = xmljs
var xml =
‘<?xml version="1.0" encoding="UTF-8" ?>’ +
‘’ +
‘’ +
‘’ +
‘’ +
‘50’ +
‘XXX’ +
‘XXXXXX’ +
‘12’ +
‘21’ +
‘XXXXXXXXXX’ +
‘’ +
‘’ +
‘’ +
‘’;
console.log('xmlL ’ + xml)
var result1 = convert.xml2json(xml, {compact: true , spaces: 4});
var result2 = convert.xml2json(xml, {compact: false , spaces: 4});
// console.log(result1, ‘\n’, result2);
const key = ‘XXXXXXXXXXXXX=’
const headers = {
“Authorization”: "Bearer " + key,
“Content-Type”: “Content-Type: application/xml”
};
const params = ‘merchantId=XXXXXX&refno=1234567890&amount=85&theme=DT2015’;
// const data = from=${sender}&to=${recipient}&subject=${subject}&text=${body}
;
const request = {
“method”: “post”,
“headers”: headers,
“body”: xml
};
return fetch(url, request)
.then( (httpResponse) => {
if (httpResponse.ok) {
return httpResponse.text();
} else {
return Promise.reject(“Fetch did not succeed”);
}
} )
.then( (text ) => {
var converted = convert.xml2json(text, {compact: true , trim: true , alwaysArray: false });
return converted;
})
.then(res => {
var converted = JSON.parse(res);
var resp_code = converted[“authorizationService”][“body”][“transaction”][“response”][“responseCode”][“_text”];
var resp_msg = converted[“authorizationService”][“body”][“transaction”][“response”][“responseMessage”][“_text”];
var resp_tid = converted[“authorizationService”][“body”][“transaction”][“response”][“uppTransactionId”][“_text”];
console.log('response Code: ’ + resp_code);
console.log('response Message: ’ + resp_msg);
console.log('response TransactionId: ’ + resp_tid);
console.log('converted: ’ + converted);
return converted;
})
. catch (err => console.log(‘Error’ + err));
}