@unchainedshop/plugins
Version:
Official plugin collection for the Unchained Engine with payment, delivery, and pricing adapters
85 lines (84 loc) • 3.04 kB
JavaScript
import { PostFinanceApiClient } from "./api-client.js";
import { RefundType, } from "./api-types.js";
const { PFCHECKOUT_SPACE_ID, PFCHECKOUT_USER_ID, PFCHECKOUT_SECRET } = process.env;
const SPACE_ID = parseInt(PFCHECKOUT_SPACE_ID, 10);
const USER_ID = parseInt(PFCHECKOUT_USER_ID, 10);
let apiClient;
const getApiClient = () => {
if (!apiClient) {
apiClient = new PostFinanceApiClient({
spaceId: SPACE_ID,
userId: USER_ID,
apiSecret: PFCHECKOUT_SECRET,
});
}
return apiClient;
};
export const getTransaction = async (transactionId) => {
const client = getApiClient();
return client.get(`/transaction/read?spaceId=${SPACE_ID}&id=${transactionId}`);
};
export const getTransactionCompletion = async (id) => {
const client = getApiClient();
return client.get(`/transaction-completion/read?spaceId=${SPACE_ID}&id=${id}`);
};
export const getToken = async (spaceId, tokenId) => {
const client = getApiClient();
return client.get(`/token/read?spaceId=${spaceId || SPACE_ID}&id=${tokenId}`);
};
export const createTransaction = async (transaction) => {
const client = getApiClient();
const result = await client.post(`/transaction/create?spaceId=${SPACE_ID}`, transaction);
return result.id || null;
};
export const voidTransaction = async (transactionId) => {
const client = getApiClient();
try {
await client.post(`/transaction-void/voidOnline?spaceId=${SPACE_ID}&id=${transactionId}`, {});
return true;
}
catch {
return false;
}
};
export const refundTransaction = async (transactionId, orderId, amount) => {
const client = getApiClient();
const refund = {
transaction: parseInt(transactionId, 10),
externalId: orderId,
amount,
type: RefundType.MERCHANT_INITIATED_ONLINE,
};
try {
await client.post(`/refund/refund?spaceId=${SPACE_ID}`, refund);
return true;
}
catch {
return false;
}
};
export const confirmDeferredTransaction = async (transactionId) => {
const client = getApiClient();
try {
await client.post(`/transaction-completion/completeOnline?spaceId=${SPACE_ID}&transactionId=${transactionId}`, {});
return true;
}
catch {
return false;
}
};
export const getPaymentPageUrl = async (transactionId) => {
const client = getApiClient();
const result = await client.get(`/transaction-payment-page/payment-page-url?spaceId=${SPACE_ID}&id=${transactionId}`);
return result;
};
export const getLightboxJavascriptUrl = async (transactionId) => {
const client = getApiClient();
const result = await client.get(`/transaction-lightbox/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`);
return result;
};
export const getIframeJavascriptUrl = async (transactionId) => {
const client = getApiClient();
const result = await client.get(`/transaction-iframe/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`);
return result;
};