JavaScript Library

The below code is a sample application that connects to a PosBuddy terminal. The application sends an auth call followed by a sale.

Example implementation:

<script type='text/javascript' src='posbuddy_1.0.js'></script> <script language="javascript" type="text/javascript"> // Example implementation of PosBuddy in javascript // To use it, copy the code into a file with a .html extension and update the device specific variables var selected_items = []; var pb = new posBuddy(pb_writeLog); // Device specific variables // Update these with your own environment variables pb.setApplicationKey("6397dead-7d4b-47f7-a0a5-71e5d1705fc4"); pb.setUsername("default"); pb.setMerchantId("000000002451"); pb.setAuthenticationKey("2e4c6acd-9a66-439e-8d02-b39588081559"); pb.setBarcodeCallback(pb_barcodeCallback); pb.connect("123456", pb_statusCallback); //This number can be found on the POSBuddy app. // Initiate the auth call, result returned to pb_authCallback function startAuth() { pb.doAuth(pb_authCallback); } // Process result of auth. On success, start payment function pb_authCallback(obj) { if (typeof obj.errorBundle != 'undefined') { console.log("Auth error: " + obj.errorBundle.description + "\n" + obj.errorBundle.message); } else { pb.setAuthenticationKey(obj.authenticationKey); startPayment(); } } function pb_barcodeCallback(barcode) { console.log("Received barcode: " + barcode); } // Function to display items and initiate the payment process function startPayment() { // display items selected_items.push({ "description": "Hamburger", "price": 5200, "count": 1 }); let total_amount = 5200; pb.displayItems(total_amount, selected_items); selected_items.push({ "description": "Coffee", "price": 3000, "count": 1 }); pb.displayItems(total_amount, selected_items); total_amount += 3000; // start payment after 3 seconds setTimeout(() => { pb.doSale(total_amount, null, pb_saleCallback); }, 3000); } // This function logs debug data received from posbuddy function pb_writeLog(logtype, message) { if (logtype != pb.transmitData && logtype != pb.receiveData) console.log("Log received:" + message); } // This function logs the changes to the websocet status and start payment after connection success function pb_statusCallback(status) { switch (status) { case pbStatus.connected: console.log("Received status: connected"); startAuth(); break; case pbStatus.disconnected: console.log("Received status: disconnected"); break; case pbStatus.error: console.log("Received status: error"); break; } } // This function is called when a payment is finished function pb_saleCallback(obj) { console.log("salecallback received: " + JSON.stringify(obj)); } </script>