TWINT is a popular mobile payment method in Switzerland. Users can connect their bank account or cards with the TWINT application, and pay with TWINT by scanning a QR code.
You can easily initiate a TWINT payment from your application by using only one line of code:
MyPOSAPI.openTwintPaymentActivity(MainActivity.this, 10.0, Currency.CHF, TWINT_REQUEST_CODE);
This will open a screen displaying the TWINT QR code that the client should scan.
After the client has completed the payment, you can handle the results back in your application with the following code:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // The same request code as when calling MyPOSAPI.openTwintPaymentActivity if (requestCode == TWINT_REQUEST_CODE) { // The transaction was processed, handle the response if (resultCode == RESULT_OK) { if (data == null) { // Something went wrong and the result couldn't be returned properly Toast.makeText(this, "Payment failed", Toast.LENGTH_SHORT).show(); return; } int transactionResult = data.getIntExtra("status", TransactionProcessingResult.TRANSACTION_FAILED); Toast.makeText(this, "Twint transaction has completed. Result: " + transactionResult, Toast.LENGTH_SHORT).show(); // TODO: handle each transaction response accordingly if (transactionResult == TransactionProcessingResult.TRANSACTION_SUCCESS) { // Transaction is successful // Add your own relevant business logic for when the payment succeeds } } else { // The user cancelled the transaction Toast.makeText(this, "Twint cancelled", Toast.LENGTH_SHORT).show(); } } }