private fun paytmPlaceOrder(paytmDetails: PaytmDetails, orderId: String, paytmTransactionResponseModel: PaytmTransactionResponseModel) {
if (!paytmTransactionResponseModel.response.body.txnToken.isNullOrEmpty())
transactionToken = paytmTransactionResponseModel.response.body.txnToken
if (!paytmDetails.callbackUrl.isNullOrEmpty())
callBackUrl = paytmDetails.callbackUrl.toString()
if (!transactionToken.isNullOrEmpty() && !callBackUrl.isNullOrEmpty() && !paytmDetails.merchant_id.isNullOrEmpty()) {
setStatus(R.string.msg_redirecting_to_paytm)
val paytmOrder = PaytmOrder(orderId, paytmDetails.merchant_id, transactionToken, paytmDetails.amount, callBackUrl)
val transactionManager = TransactionManager(paytmOrder, object : PaytmPaymentTransactionCallback {
override fun onTransactionResponse(bundle: Bundle) {
Log.d("Paytm", "PayTM Transaction Response: %s$bundle")
val orderId = bundle.getString("ORDERID")
val status = bundle.getString("STATUS")
val message = bundle.getString("RESPMSG")
val txnDate = bundle.getString("TXNDATE")
val mid = bundle.getString("MID")
val txnId = bundle.getString("TXNID")
if (!orderId.isNullOrEmpty() && !status.isNullOrEmpty() && !txnDate.isNullOrEmpty()) {
checkPaymentStatus(orderId, status, txnDate)
} else {
Toast.makeText(mFragmentContext.context as CheckoutActivity, baseModel.message, Toast.LENGTH_LONG).show()
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun networkNotAvailable() {
Log.d("Paytm", "networkNotAvailable")
}
override fun onErrorProceed(s: String) {
Log.d("Paytm", "onErrorProceed: %s$s")
Toast.makeText(mFragmentContext.context as CheckoutActivity, s, Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun clientAuthenticationFailed(s: String) {
Log.d("Paytm", "clientAuthenticationFailed: %s$s")
Toast.makeText(mFragmentContext.context as CheckoutActivity, s, Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun someUIErrorOccurred(s: String) {
Log.d("Paytm", "someUIErrorOccurred: %s$s")
Toast.makeText(mFragmentContext.context as CheckoutActivity, s, Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun onErrorLoadingWebPage(i: Int, s: String, s1: String) {
Log.d("Paytm", "onErrorLoadingWebPage: %s$s $s1")
Toast.makeText(mFragmentContext.context as CheckoutActivity, "onErrorLoadingWebPage: %s$s $s1", Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun onBackPressedCancelTransaction() {
Toast.makeText(mFragmentContext.context as CheckoutActivity, "onBackPressedCancelTransaction", Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
override fun onTransactionCancel(s: String, bundle: Bundle) {
Log.d("Paytm", "onErrorLoadingWebPage: %s$s")
Toast.makeText(mFragmentContext.context as CheckoutActivity, s, Toast.LENGTH_LONG).show()
if (!(mFragmentContext.context as CheckoutActivity).isFinishing) {
(mFragmentContext.context as CheckoutActivity).finish()
}
}
})
transactionManager.setShowPaymentUrl("${host}theia/api/v1/showPaymentPage")
transactionManager.startTransaction(mFragmentContext.context as CheckoutActivity?, ActivityRequestCode)
}
}
4 comments
You can find this by checking the below mentioned link https://prnt.sc/X6or6_1n596E
https://business.paytm.com/docs/all-in-one-sdk/sdk-based-integration/
We can’t share the code. If you want to share your code files with us and we will help you with whatever we can