Test your Android UPI integration with UPIMock!
Test your Android UPI integration with UPIMock!
1 - Download the app: https://play.google.com/store/apps/details?id=org.rhodatech.upimock
2 - Start an intent with a UPI deeplink:
private fun parseUPIResponseParameters(paramsString: String) : Map<String, String> {
val params: MutableMap<String, String> = mutableMapOf()
paramsString.split("&").map { paramAndValue ->
val elements = paramAndValue.split("=")
params[elements[0]] = elements[1]
}
return params
}
// Monitor the result of your UPI payment application.
private var resultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data
val response = data?.extras?.getString("response")
if (response != null) {
val upiParameters = parseUPIResponseParameters(response)
if (upiParameters.containsKey("Status") && upiParameters["Status"] == "SUCCESS") {
// Payment successful
} else {
// Payment error
}
}
}
}
// …
val link = "upi://pay?pa=mockeduser@mockedbanck&pn=Merchant%20Name&am=123.45&tr=1234567890&tn=Payment%20for%20transaction%201234567890&cu=INR&mode=04"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(link))
resultLauncher.launch(intent)
3 - Choose to accept or decline the payment, then react accordingly.