UNPKG

@unchainedshop/plugins

Version:

Official plugin collection for the Unchained Engine with payment, delivery, and pricing adapters

85 lines (84 loc) 3.04 kB
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; };