Home > Pay > Bezahlgeräte > Unterstützte Bezahlgeräte > Prepaid Smart Cards > Smart Card ScriptAPI

SmartCard ScriptAPI

Die SmartCard SriptAPI ermöglicht das Auslesen von vorhandenen Datenfeldern auf der ACOS SmartCard z.B. über Webseiten (Siehe Beispiel unten). Theoretisch ist auch das Anlegen von neuen Datenfeldern möglich, allerdings aus Sicherheitsgründen noch nicht implementiert. Bitte kontaktieren Sie uns, sofern Sie in dieser Hinsicht konkrete Bedürfnisse haben.

Die SmartCard ScriptAPI ist Teil des SiteKiosk Object Model.

Am Ende dieser Seite finden Sie ein komplettes Beispiel zur Nutzung der SmartCard ScriptAPI in einer HTML-Seite.

Bitte beachten Sie:
Aus verständlichen Gründen können wir Ihnen (ausser dieser ausführlichen Dokumentation) keinen Support bei der Implementierung und Nutzung der SmartCard API leisten.

1. Das SmartCard Object
          // Member-Functions
 
Boolean = SiteKiosk.Plugins("SiteCash").Devices("ACOS").IsCardValid();
Boolean = SiteKiosk.Plugins("SiteCash").Devices("ACOS").IsCardInserted();
SiteKiosk.Plugins("SiteCash").Devices("ACOS").Credit(Value);
SiteKiosk.Plugins("SiteCash").Devices("ACOS").Debit(Value);
 
          // Events, Overridable
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnCardInserted();
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnCardRemoved();
 
          // Properties
Value = SiteKiosk.Plugins("SiteCash").Devices("ACOS").Balance;
SiteKiosk.Plugins("SiteCash").Devices("ACOS").CustomerData;    // Object


2. Das CustomerData Object
          // Member-Functions
QuestionID = CustomerData.GetData(Callback, DataArray);


3. IsCardValid()
Der Rückgabewert dieser Funktion ist true, wenn die eingelegte Karte eine ACOS-SmartCard ist und mit der gleichen Mastercard initialisiert wurde, wie der Terminal. Andernfalls ist der Rückgabewert false.


4. IsCardInserted()
Diese Funktion hat den Rückgabewert, wenn eine Karte im Lesegerät steckt.


5. Credit()
Sofern innerhalb der Smartkonfigurationen erlaubt, können Sie Guthaben auf eine Karte aufbuchen.


6. Debit()
Sofern innerhalb der Smartkonfigurationen erlaubt, können Sie Guthaben von einer Karte abbuchen.


7. OnCardInserted() // overridable
Diese Funktion wird aufgerufen, wenn jemand eine Karte in das Lesegerät steckt.


8. OnCardRemoved() // overridable
Diese Funktion wird aufgerufen, wenn eine Karte aus dem Lesegerät gezogen wird.


9. OnCredit(Succeeded, Value) // overridable
Diese Funktion wird aufgerufen, wenn ein Betrag erfolgreich auf eine Karte gebucht wurde.
Das erste Parameter enthält true, wenn die Buchungsoperation erfolgreich war. Der zweite Parameter enthält den Wert der gebucht wurde oder werden sollte.


10. OnDebit(Succeeded, Value) // overridable
Diese Funktion wird aufgerufen, wenn erfolgreich ein Betrag von der Karte abgebucht wurde. Der erste Parameter enthält true, wenn die Buchungsoperation erfolgreich war. Der zweite Parameter enthält den Wert der gebucht wurde oder werden sollte.


11. GetData(Callback, DataArray)
Der erste Parameter der GetData-Funktion muss der Name einer Funktion mit drei Parametern sein (siehe Beispiel).
Der zweite Parameter akzeptiert einen ID-Array oder eine einzelne ID. Für diese ID werden die Werte ausgelesen.
Der Rückgabewert der Funktion ist eine bestimmte ID. Die QuestionID des korrespondierenden Callback-Funktionsaufrufs hat den gleichen Wert.
Die nachfolgende Tabelle zeigt die gültigen IDs, die an GetData übergeben werden können:

0 => username
1 => email
2 => pop server
3 => pop password
4 => freedata string
5 => homepage
6 => currency
Beispiel für GetData:

function UserDataReady(QuestionID, Index, Value)
{
}
 
SiteKiosk.Plugins("SiteCash").Devices("ACOS")
.CustomerData.GetData(UserDataReady, 1)
// To simply get the email


12. Die Benutzung der SmartCard ScriptAPI in einer HTML-Seite
Einer Seite mit diesem Code muss unter Zugriff Script Erlaubnis gewährt werden, damit SiteKiosk den Code ausführt. Die SmartCard Funktionen müssen aktiviert sein, damit das Beispiel in SiteKiosk funktioniert.

<html>
<body>
 
<p>
 <table>
  <tr>
   <th align='left'>Card Valid:
   <td><span id='cardvaliddiv'></span>
  <tr>
   <th align='left'>Card Inserted:
   <td><span id='cardinserteddiv'></span>
  <tr>
   <th align='left'>Balance on CardCard:
   <td><span id='balancediv'></span>
  <tr>
   <th align='left'>Status:
   <td><span id="DivStatus"></span>
  <tr>
   <th align='left'>Card Owner:
   <td><span id="DivCust0"></span>
  <tr>
   <th align='left'>Email-Address:
   <td><span id="DivCust1"></span>
  <tr>
   <th align='left'>Email-Server:
   <td><span id="DivCust2"></span>
  <tr>
   <th align='left'>Password:
   <td><span id="DivCust3"></span>
  <tr>
   <th align='left'>Customer ID:
   <td><span id="DivCust4"></span>
  <tr>
   <th align='left'>Currency:
   <td><span id="DivCust5"></span>
  <tr>
   <th align='left'>Transstart:
   <td><span id='transstartdiv'></span>
  <tr>
   <th align='left'>Transend:
   <td><span id='transenddiv'></span>
 </table>
<p>
 
<input name='creditinput' type='input' value='0'>
<input type='button' onClick='Credit(creditinput.value)' value='Credit Card'>
<br>
<input name='debitinput' type='input' value='0'>
<input type='button' onClick='Debit(debitinput.value)' value='Debit Card'>
 
<script language='jscript'>
         var question_idx;
 
         window.external.InitScriptInterface();
 
         function CardInserted(cardtype)
                  {
            cardinserteddiv.innerHTML =
            SiteKiosk.Plugins("SiteCash").Devices("ACOS").IsCardInserted();
            cardvaliddiv.innerHTML =
            SiteKiosk.Plugins("SiteCash").Devices("ACOS").IsCardValid();
            balancediv.innerHTML =
            SiteKiosk.Plugins("SiteCash").Devices("ACOS").Balance;
 
            DivStatus.innerText = "Reading...";
            testarray = new Array(0,1,2,3,4,5);
            question_idx = SiteKiosk.Plugins("SiteCash").Devices("ACOS").
            CustomerData.GetData(UserDataReady, testarray);
            DivStatus.innerText = "Found Card in Cardreader.";
                  }
 
         function CardRemoved()
                  {
            cardvaliddiv.innerHTML = "";
            cardinserteddiv.innerHTML = "";
            balancediv.innerHTML = "";
 
            DivStatus.innerText = "No Card inserted.";
            DivCust0.innerText = "unknown.";
            DivCust1.innerText = "unknown.";
            DivCust2.innerText = "unknown.";
            DivCust3.innerText = "unknown.";
            DivCust4.innerText = "unknown.";
            DivCust5.innerText = "unknown.";´
                  }
 
         function UserDataReady(questionid, index, value)
                  {
                  }
 
         function TransactionFinished(transid, success)
                  {
                  balancediv.innerHTML =
                  SiteKiosk.Plugins("SiteCash").Devices("ACOS").Balance;
                  transenddiv.innerHTML = "Transaction - ID: " + transid +
                  " Success: " + success;
                  }
 
         function Credit(value)
                  {
                  transstartdiv.innerHTML = "Credit - Value: " + value + " ID: " +
                   SiteKiosk.Plugins("SiteCash").Devices("ACOS").Credit(value);
                  }
 
                  function Debit(value)
                  {
                  transstartdiv.innerHTML = "Debit - Value: " + value + " ID: " +
                   SiteKiosk.Plugins("SiteCash").Devices("ACOS").Debit(value);
                  }
 
         function UserDataReady(question_id, userdata_index, userdata_value)
            {
            switch (userdata_index)
                  {
                   case 0: DivCust0.innerText = userdata_value;
                     break;
                   case 1: DivCust1.innerText = userdata_value;
                     break;
                   case 2: DivCust2.innerText = userdata_value;
                     break;
                   case 3: DivCust3.innerText = userdata_value;
                     break;
                   case 4: DivCust4.innerText = userdata_value;
                     break;
                   case 5: DivCust5.innerText = userdata_value;
                     break;
                   }
                  }
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnCardInserted = CardInserted;
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnCardRemoved = CardRemoved;
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnUserDataReady = UserDataReady;
SiteKiosk.Plugins("SiteCash").Devices("ACOS").OnTransactionFinished = TransactionFinished;
 
         if (SiteKiosk.Plugins("SiteCash").Devices("ACOS").IsCardInserted())
                  CardInserted(0);
         else
                  CardRemoved();
 
         </script>
 
</body>
</html>


Siehe auch

Smart Card Admintool


Nach oben