@unchainedshop/plugins
Version:
Because of a Typescript issue with upstream "postfinancecheckout", the Postfinance plugin has been disabled from transpilation, import the source ts files from src and enable node_module tsc or copy over the src/payment/postfinance-checkout to your projec
109 lines • 4.31 kB
JavaScript
import * as pf from 'postfinancecheckout';
const { PostFinanceCheckout } = pf;
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);
const getConfig = () => {
return {
space_id: SPACE_ID,
user_id: USER_ID,
api_secret: PFCHECKOUT_SECRET,
};
};
const getTransactionService = () => {
return new PostFinanceCheckout.api.TransactionService(getConfig());
};
const getTransactionCompletionService = () => {
return new PostFinanceCheckout.api.TransactionCompletionService(getConfig());
};
const getTransactionVoidService = () => {
return new PostFinanceCheckout.api.TransactionVoidService(getConfig());
};
const getRefundService = () => {
return new PostFinanceCheckout.api.RefundService(getConfig());
};
const getTransactionPaymentPageService = () => {
return new PostFinanceCheckout.api.TransactionPaymentPageService(getConfig());
};
const getTransactionIframeService = () => {
return new PostFinanceCheckout.api.TransactionIframeService(getConfig());
};
const getTransactionLightboxService = () => {
return new PostFinanceCheckout.api.TransactionLightboxService(getConfig());
};
const getTokenService = () => {
return new PostFinanceCheckout.api.TokenService(getConfig());
};
export const getTransaction = async (transactionId) => {
const transactionService = getTransactionService();
const transaction = await transactionService.read(SPACE_ID, parseInt(transactionId, 10));
return transaction.body;
};
export const getTransactionCompletion = async (entityId) => {
const transactionCompletionService = getTransactionCompletionService();
const transactionCompletion = await transactionCompletionService.read(SPACE_ID, parseInt(entityId, 10));
return transactionCompletion.body;
};
export const getToken = async (spaceId, tokenId) => {
const tokenService = getTokenService();
const token = await tokenService.read(spaceId || SPACE_ID, tokenId);
return token.body;
};
export const createTransaction = async (transaction) => {
const transactionService = getTransactionService();
const transactionCreateRes = await transactionService.create(SPACE_ID, transaction);
const transactionCreate = transactionCreateRes.body;
return transactionCreate.id || null;
};
export const voidTransaction = async (transactionId) => {
const transactionVoidService = getTransactionVoidService();
try {
await transactionVoidService.voidOnline(SPACE_ID, parseInt(transactionId, 10));
return true;
}
catch {
return false;
}
};
export const refundTransaction = async (transactionId, orderId, amount) => {
const refundService = getRefundService();
const refund = {
transaction: parseInt(transactionId, 10),
externalId: orderId,
amount,
type: PostFinanceCheckout.model.RefundType.MERCHANT_INITIATED_ONLINE,
};
try {
await refundService.refund(SPACE_ID, refund);
return true;
}
catch {
return false;
}
};
export const confirmDeferredTransaction = async (transactionId) => {
const transactionCompletionService = getTransactionCompletionService();
try {
await transactionCompletionService.completeOnline(SPACE_ID, parseInt(transactionId, 10));
return true;
}
catch {
return false;
}
};
export const getPaymentPageUrl = async (transactionId) => {
const transactionPaymentPageService = getTransactionPaymentPageService();
const paymentPageUrl = await transactionPaymentPageService.paymentPageUrl(SPACE_ID, transactionId);
return paymentPageUrl.body;
};
export const getLightboxJavascriptUrl = async (transactionId) => {
const transactionLightboxService = getTransactionLightboxService();
const javascriptUrl = await transactionLightboxService.javascriptUrl(SPACE_ID, transactionId);
return javascriptUrl.body;
};
export const getIframeJavascriptUrl = async (transactionId) => {
const transactionIframeService = getTransactionIframeService();
const javascriptUrl = await transactionIframeService.javascriptUrl(SPACE_ID, transactionId);
return javascriptUrl.body;
};
//# sourceMappingURL=api.js.map