Met onze App Integratie optie kan je eigen Android app op hetzelfde betaalapparaat verzoeken initiëren die op de juiste manier worden verwerkt binnen de Android Trust Payments app.
Aan de slag
Dit hulpmiddel is ontworpen voor ontwikkelaars die onze SmartPOS-functionaliteit naadloos willen integreren in hun eigen Android toepassingen. Door gebruik te maken van Android's Intents en Broadcasts systeem, hebben we een flexibele manier gecreëerd om verschillende acties af te handelen.
Voordat we verder gaan, zijn er twee hoofdtypen communicatie waar we ons bewust van moeten zijn:
- Gebeurtenissen - Geactiveerd door het subsysteem Kinetische beloning.
- API-oproepen - Gestart door je applicatie om specifieke acties uit te voeren.
Overzicht
- Broadcastontvangers instellen - Maak broadcastontvangers in je applicatie om de verschillende intenties af te handelen die worden gebruikt voor transacties en statusupdates.
- Transactie-initiatie implementeren - Gebruik de actie com.kineticsmart.intent.PAYMENT_START_TRANSACTION om nieuwe transacties te starten.
- Verwerk statusupdates van transacties - Luister naar de actie transaction_status_changed om real-time updates over de voortgang van transacties te ontvangen.
- Verwerk voltooide transacties - Gebruik de actie com.kineticsmart.intent.PAYMENT_ENGINE_READY om details van voltooide transacties op te halen.
- Afdrukken van kassabonnen implementeren - Gebruik de actie com.kineticsmart.intent.PAYMENT_ENGINE_READY met specifieke parameters om kassabonnen van verkopers en klanten af te drukken.
- Foutafhandeling - Implementeer de juiste foutafhandeling voor gevallen zoals ongeldige transactietypen of andere potentiële problemen.
Referentie API-aanroepen
Sale
Initieert een nieuwe verkooptransactie.
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);
Terugbetaling
Initieert een nieuwe restitutietransactie.
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);
Verzoenen
Initieert een nieuwe afstemmingstransactie (einde van de dag).
Intent startReconcile = new Intent("com.kineticsmart.intent.PAYMENT_START_TRANSACTION");
startReconcile.putExtra("transactionType", "reconcile");
sendBroadcast(startReconcile);
Afdrukken
Drukt een ontvangstbewijs af voor de laatste transactie.
Intent printReceipt = new Intent("com.kineticsmart.intent.PAYMENT_ENGINE_READY");
printReceipt.putExtra("transactionType", "print");
printReceipt.putExtra("printRequest", "transaction.last.print_merchant_receipt");
sendBroadcast(printReceipt);
Veldverwijzing
Evenement velden
Veld | Formaat | Type | Beschrijving |
transaction_status | String | Refund, Sale | Status van de transactie. |
API-oproepvelden
Veld | Formaat | Supported transaction types | Beschrijving |
amount | Integer | Refund, Sale | Het volledige bedrag voor de transactie in hoofdeenheden (bijv. £20 zou worden ingediend als "2000"). |
id | String (UUID) | Refund, Sale |
Unieke identifier voor de API-aanroep. |
printRequest | String | Afdrukken |
Specificeert het type ontvangstbewijs dat moet worden afgedrukt in het afdrukverzoek. Ondersteunde bontypes zijn:
|
referentie_txn_id |
String | Sale |
UUID van eerder goedgekeurde Preauth of Aanpassingstransactie, vereist bij het verwerken van daaropvolgende Aanpassing of Voltooiingstransactiesubtypes. |
subtype | String | Sale |
(Optioneel) Voer een van de volgende ondersteunde waarden in:
|
transactionType | Alfanumeriek | All |
Het type verzoek dat wordt ingediend. Ondersteunde verzoeken zijn:
|
Implementatiegids
Luisteren naar gebeurtenissen
Statusupdates van transacties ontvangen:
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-oproepen doen
Voorbeeld van het initiëren van een verkooptransactie:
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);
Reacties verwerken
Om afgehandelde transacties te verwerken:
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
}
}
Problemen oplossen
Veelvoorkomende problemen
- Transactie start niet - Controleer of je de juiste Intent actie en extra's gebruikt.
- Geen statusupdates ontvangen - Controleer of je de BroadcastReceiver correct geregistreerd hebt.
- Afdruktaak wordt niet uitgevoerd - Controleer de printerstatus en de verbinding.