Unsere App-Integrationsoption ermöglicht es Ihrer eigenen Android App auf demselben Zahlungsgerät, Anfragen zu initiieren, die in der Android Trust Payments App entsprechend bearbeitet werden.
Erste Schritte
Diese Ressource ist für Entwickler gedacht, die unsere SmartPOS-Funktionalität nahtlos in ihre eigenen Android Anwendungen integrieren möchten. Durch die Nutzung von Android's Intents und Broadcasts System, haben wir einen flexiblen Weg geschaffen, um verschiedene Aktionen zu behandeln.
Bevor wir fortfahren, sollten wir uns über zwei Hauptarten der Kommunikation im Klaren sein:
- Ereignisse - Ausgelöst durch das Subsystem Kinetic Pay.
- API-Aufrufe - werden von Ihrer Anwendung initiiert, um bestimmte Aktionen durchzuführen.
Übersicht
- Einrichten von Broadcast-Empfängern - Erstellen Sie Broadcast-Empfänger in Ihrer Anwendung, um die verschiedenen Intents für Transaktionen und Statusaktualisierungen zu verarbeiten.
- Implementierung der Transaktionseinleitung - Verwenden Sie die Aktion com.kineticsmart.intent.PAYMENT_START_TRANSACTION, um neue Transaktionen zu starten.
- Bearbeitung von Aktualisierungen des Transaktionsstatus - Warten Sie auf die Aktion transaction_status_changed, um Echtzeitaktualisierungen zum Transaktionsfortschritt zu erhalten.
- Abgeschlossene Transaktionen verarbeiten - Verwenden Sie die Aktion com.kineticsmart.intent.PAYMENT_ENGINE_READY, um Details zu abgeschlossenen Transaktionen abzurufen.
- Quittungsdruck implementieren - Verwenden Sie die Aktion com.kineticsmart.intent.PAYMENT_ENGINE_READY mit spezifischen Parametern, um Händler- und Kundenquittungen zu drucken.
- Fehlerbehandlung - Implementieren Sie eine angemessene Fehlerbehandlung für Fälle wie ungültige Transaktionsarten oder andere potenzielle Probleme.
Referenz für API-Aufrufe
Sale
Initiiert eine neue Verkaufstransaktion.
Intent startSale = new Intent("com.kineticsmart.intent.PAYMENT_START_TRANSACTION");
startSale.putExtra("amount", "100");
startSale.putExtra("id", UUID.randomUUID().toString());
startSale.putExtra("transactionType", "sale");
sendBroadcast(startSale);
Erstattung
Leitet eine neue Erstattungstransaktion ein.
Intent startRefund = new Intent("com.kineticsmart.intent.PAYMENT_START_TRANSACTION");
startRefund.putExtra("amount", "100");
startRefund.putExtra("id", UUID.randomUUID().toString());
startRefund.putExtra("transactionType", "refund");
sendBroadcast(startRefund);
Abstimmen
Initiiert eine neue Abstimmungstransaktion (Tagesende).
Intent startReconcile = new Intent("com.kineticsmart.intent.PAYMENT_START_TRANSACTION");
startReconcile.putExtra("transactionType", "reconcile");
sendBroadcast(startReconcile);
Druckt einen Bon für die letzte Transaktion.
Intent printReceipt = new Intent("com.kineticsmart.intent.PAYMENT_ENGINE_READY");
printReceipt.putExtra("transactionType", "print");
printReceipt.putExtra("printRequest", "transaction.last.print_merchant_receipt");
sendBroadcast(printReceipt);
Feldbezug
Ereignisfelder
Feld | Format | Type | Beschreibung |
transaction_status | Zeichenfolge | Refund, Sale | Status der Transaktion. |
Felder für API-Aufrufe
Feld | Format | Supported transaction types | Beschreibung |
amount | Integer | Refund, Sale | Der volle Betrag für die Transaktion in Haupteinheiten (z. B. £20 würde als "2000" übermittelt). |
id | Zeichenfolge (UUID) | Refund, Sale |
Eindeutiger Bezeichner für den API-Aufruf. |
printRequest | Zeichenfolge |
Gibt die Art des Bons an, der in der Druckanforderung gedruckt werden soll. Unterstützte Bonarten sind:
|
|
referenz_txn_id |
Zeichenfolge | Sale |
UUID der zuvor genehmigten Preauth- oder Anpassungstransaktion, erforderlich bei der Verarbeitung nachfolgender Subtypen von Anpassungs- oder Abschlusstransaktionen. |
subType | Zeichenfolge | Sale |
(Optional) Geben Sie einen der folgenden unterstützten Werte ein:
|
transactionType | Alphanumerisch | All |
Die Art der Anfrage, die eingereicht wird. Unterstützte Anfragen sind:
|
Leitfaden für die Umsetzung
Zuhören für Ereignisse
Um Aktualisierungen des Transaktionsstatus zu erhalten:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("transaction_status_changed")) {
String status = intent.getStringExtra("transaction_status");
// Process the status update
}
}
API-Aufrufe tätigen
Beispiel für die Initiierung einer Verkaufstransaktion:
String txnUUID = UUID.randomUUID().toString();
Intent startSale = new Intent("com.kineticsmart.intent.PAYMENT_START_TRANSACTION");
startSale.putExtra("amount", "100");
startSale.putExtra("id", txnUUID);
startSale.putExtra("transactionType", "sale");
sendBroadcast(startSale);
Umgang mit Antworten
Zur Bearbeitung abgeschlossener Transaktionen:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("com.kineticsmart.intent.PAYMENT_ENGINE_READ")) {
String transactionDetails = intent.getStringExtra("transaction_status");
// Process the completed transaction details
}
}
Fehlersuche
Gemeinsame Probleme
- Transaktion startet nicht - Stellen Sie sicher, dass Sie die richtige Intent-Aktion und Extras verwenden.
- Keine Statusaktualisierungen erhalten - Überprüfen Sie, ob Sie Ihren BroadcastReceiver korrekt registriert haben.
- Druckauftrag wird nicht ausgeführt - Überprüfen Sie den Druckerstatus und die Verbindung.