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();
}
}
}