package com.reactnativehdfcpaymentgateway import android.app.Activity import android.app.Activity.RESULT_CANCELED import android.app.Activity.RESULT_OK import android.content.Intent import android.support.v4.app.ActivityCompat.startActivityForResult import com.facebook.react.bridge.* import org.json.JSONObject class HdfcPaymentGatewayModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext), ActivityEventListener { private val paymentRequestCode = 21012 private var transactionCallBack:Promise? = null private var key: String? = null private var mid: String? = null init { reactContext.addActivityEventListener(this) } override fun getName(): String { return "HdfcPaymentGateway" } @ReactMethod fun startPayment(map: ReadableMap, promise: Promise) { this.transactionCallBack = promise val intent = Intent(reactApplicationContext, Payment::class.java) intent.putExtra("razor_pay_key", map.getString("razor_pay_key")) intent.putExtra("description", map.getString("description")) intent.putExtra("currency", map.getString("currency")) intent.putExtra("amount", map.getInt("amount")) intent.putExtra("name", map.getString("name")) intent.putExtra("cus_email", map.getString("cus_email")) intent.putExtra("cus_contact", map.getString("cus_contact")) intent.putExtra("order_id", map.getString("order_id")) startActivityForResult(currentActivity!!, intent, paymentRequestCode, null) } override fun onActivityResult(activity: Activity?, requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == paymentRequestCode) { if (resultCode == RESULT_OK) { val razorPayPaymentId = data?.getStringExtra("razor_pay_payment_id") val json = JSONObject() json.put("razor_pay_payment_id",razorPayPaymentId) transactionCallBack?.resolve(json.toString()) } else if(resultCode == RESULT_CANCELED){ transactionCallBack?.resolve("User Cancelled!") } } } override fun onNewIntent(intent: Intent?) { } }