73 lines
2.7 KiB
JavaScript
73 lines
2.7 KiB
JavaScript
// This is a sample PostalPoint plugin that adds a card payment processor.
|
|
|
|
exports.init = function () {
|
|
global.apis.pos.registerCryptoProcessor({
|
|
name: "Demo Crypto",
|
|
init: async function () {
|
|
// This is run after PostalPoint starts, and before any other crypto functions are called.
|
|
},
|
|
checkout: async function ( {amount}) {
|
|
// Run the checkout process.
|
|
// amount is the amount of USD to collect, in pennies.
|
|
|
|
// If an error is encountered during processing,
|
|
// display an error message in a dialog and return boolean false.
|
|
// If this function returns anything except false or undefined, and doesn't throw an error,
|
|
// it is assumed the payment was successful.
|
|
|
|
// Adds a line of text visible to the cashier
|
|
global.apis.pos.addOnscreenPaymentLog("Getting crypto payment...");
|
|
|
|
// Display a web page (i.e. with a payment QR code) to the customer on the customer-facing display.
|
|
global.apis.ui.setCustomerScreen("<html></html>", "html");
|
|
global.apis.ui.setCustomerScreen("https://postalpoint.app", "raw");
|
|
|
|
// Poll the status of the crypto transaction
|
|
var paymentComplete = false;
|
|
do {
|
|
await global.apis.util.delay(1000);
|
|
paymentComplete = true;
|
|
} while (paymentComplete != true);
|
|
|
|
global.apis.pos.addReceiptPayment(
|
|
new global.apis.pos.ReceiptPayment(
|
|
(amount / 100).toFixed(2) * 1,
|
|
"crypto", // Payment type.
|
|
"Bitcoin\n0.00001234 BTC" // Additional text for receipt
|
|
)
|
|
);
|
|
global.apis.pos.addOnscreenPaymentLog("Payment successful!");
|
|
global.apis.ui.clearCustomerScreen();
|
|
},
|
|
cancelCheckout: function () {
|
|
// The user requested to cancel the payment.
|
|
// Reset things accordingly.
|
|
global.apis.ui.clearCustomerScreen();
|
|
},
|
|
isConfigured: function () {
|
|
// Is this plugin properly setup and able to process payments? If not, return false.
|
|
return true;
|
|
}
|
|
});
|
|
}
|
|
|
|
// Plugin settings to display.
|
|
exports.config = [
|
|
{
|
|
type: "password",
|
|
key: "democryproprocessor_apikey",
|
|
defaultVal: "",
|
|
label: "API Key",
|
|
placeholder: "",
|
|
text: "API Key"
|
|
},
|
|
{
|
|
type: "button",
|
|
label: "Test Button",
|
|
text: "Some text about the button",
|
|
onClick: function () {
|
|
global.apis.ui.openSystemWebBrowser("https://postalpoint.app");
|
|
}
|
|
}
|
|
];
|