PROVISIO DevBlog

Use SiteKiosk to Accept Payment for any kind of Service

The SiteKiosk Pay version allows you to charge a kiosk user for a variety of basic services right out of the box. You can take a fee for surfing the web, making a download, sending a multimedia email, using an application or printing.

By a little bit of code you can use the payment options of SiteKiosk to allow payment directly at the kiosk for whatever service you desire. This can be for goods in a webshop, concert tickets or even fines, e.g. paying a parking violation ticket. This code can even be added to an existing project to add payment by SiteKiosk as an additional feature. You may then use browser detection to execute the SiteKiosk code only within the SiteKiosk browser.

The following code makes use of the SiteKiosk Object Model. It uses the Dispatch object to access the SiteCashScript.js file that implements the StartPullRequest method that we will be using. The file SiteCashScript.js is loaded automatically when you launch SiteKiosk. So to kick off our request for payment we use the following line:

SiteKiosk.Plugins("SiteCash").Script.Dispatch.StartPullRequest("Text to show in the pullmode dialog that states the reason for requesting payment", 0.5, OnPullRequestCompleted, 30);

The first parameter of the StartPullRequest method is a string that states the reason for requesting payment. It will be displayed in the payment request dialog that is triggered by calling the StartPullRequest method. The second parameter is the amount to be requested. The third parameter is the method that is being called once the pull request completes. The fourth and last parameter is the time in seconds that the request dialog will wait for an inpayment.

When the pull request is complete it will call the method you named as the third parameter. This is how it needs to be added to your code:

function OnPullRequestCompleted(bool_success){
    if (bool_success){
        //your code for a successful payment
	}
	else{
		//your code if the payment failed
	}
}

The parameter passed to the method is a boolean value that states whether the requested amount has been paid or not. Depending on the outcome you can add your own code for either of the two scenarios.

A simple implementation of the above could look like this:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<title>Pullmode Example</title>
<SCRIPT TYPE="text/javascript">
    //Initializing the SiteKiosk Object Model
    window.external.InitScriptInterface();
     
    function OnPullRequestCompleted(bool_success){
		if (bool_success){
			document.getElementById("result").innerHTML = "Thank you. The payment was successful.";
		}
		else{
			document.getElementById("result").innerHTML = "Payment has not been made.";
		}
	} 
//-->
</script>
<body>
    Please click the button and pay the requested amount 
	<input type="button" value="Make your payment" onclick="SiteKiosk.Plugins('SiteCash').Script.Dispatch.StartPullRequest('Please make your payment! This service', 0.5, OnPullRequestCompleted, 30); ">
    <br />
    <span id="result"></span>
</body>
</html>

When you use the example in SiteKiosk you will see this:

You can even influence the whole process further by editing the StartPullRequest method. We have learned above that the StartPullRequest method is implemented in the file ..\SiteKiosk\SiteCash\SiteCashScript.js and it can be modified to fit your special requirements, e.g. you can change the design of the payment request dialog.

Please make sure to allow scripting for your HTML pages that you use the SiteKiosk Object Model on. To do so, enter the page and the path to the page in the SiteKiosk configuration under ACCESS-> URLs with script permission.