Untitled

 avatar
unknown
plain_text
5 months ago
2.3 kB
4
Indexable
MethodChannel(flutterEngine.dartExecutor.binaryMessenger,
            skybandAndroidChannel
        ).setMethodCallHandler {call, result ->
            when (call.method) {
                "packEcrRequest" -> {
                    val requestData = call.argument<String>("requestData")!!
                    val transactionType = call.argument<String>("transactionType")!!
                    val signature = call.argument<String>("signature")!!
                    println("requestData: $requestData")
                    println("Signature: $signature")
                    val packedData = CLibraryLoad.getInstance().getPackData(requestData, transactionType.toInt(), signature)
                    println("packedData $packedData")
                    result.success(packedData.toString())
                }
                "parseEcrResponse" -> {
                    val responseData = call.argument<ByteArray>("responseData")!!
                    val parsedData = CLibraryLoad.getInstance().getParseData(responseData.toString())
                    result.success(parsedData)
                }
                "launchPosApp" -> {
                    val message = call.argument<String>("message")!!
                    val requestData = when (val arg = call.argument<Any>("requestData")) {
                        is ByteArray -> arg
                        is ArrayList<*> -> (arg as? ArrayList<Byte>)?.toByteArray()
                        else -> null
                    }
                    println("requestData: $requestData")
                    try {
                        val intent: Intent  = context.packageManager.getLaunchIntentForPackage("com.skyband.pos.app")!!
                        intent.putExtra("message", "ecr-txn-event")
                        intent.putExtra("request", requestData)
//                requestData?.let { intent?.putExtra("request", it) }
                        intent.putExtra("packageName", context.packageName)
                        context.startActivity(intent)
                        result.success(null)
                    } catch (e: Exception) {
                        result.error("400",  "${e.message}" , null)
                    }

                }
                else -> {
                    result.notImplemented()
                }
            }
        }
Editor is loading...
Leave a Comment