Initialize the PayUCheckoutPro SDK by passing the payment parameters prepared in the previous step and a reference to the transaction listener.
PayUCheckoutPro.open(Activity activity,PayUPaymentParams payUPaymentParams,PayUCheckoutProListener payUCheckoutProListener)
PayUCheckoutPro.open(activity: Activity,payUPaymentParams: PayUPaymentParams,payUCheckoutProListener: PayUCheckoutProListener)
PayUCheckoutPro.open(this,payUPaymentParams,new PayUCheckoutProListener() {@Overridepublic void onPaymentSuccess(Object response) {//Cast response object to HashMapHashMap<String,Object> result = (HashMap<String, Object>) response;String payuResponse = (String)result.get(PayUCheckoutProConstants.CP_PAYU_RESPONSE);String merchantResponse = (String) result.get(PayUCheckoutProConstants.CP_MERCHANT_RESPONSE);}@Overridepublic void onPaymentFailure(Object response) {//Cast response object to HashMapHashMap<String,Object> result = (HashMap<String, Object>) response;String payuResponse = (String)result.get(PayUCheckoutProConstants.CP_PAYU_RESPONSE);String merchantResponse = (String) result.get(PayUCheckoutProConstants.CP_MERCHANT_RESPONSE);}@Overridepublic void onPaymentCancel(boolean isTxnInitiated) {}@Overridepublic void onError(ErrorResponse errorResponse) {String errorMessage = errorResponse.getErrorMessage();}@Overridepublic void setWebViewProperties(@Nullable WebView webView, @Nullable Object o) {//For setting webview properties, if any. Check Customized Integration section for more details on this}@Overridepublic void generateHash(HashMap<String, String> valueMap, PayUHashGenerationListener hashGenerationListener) {String hashName = valueMap.get(PayUCheckoutProConstants.CP_HASH_NAME);String hashData = valueMap.get(PayUCheckoutProConstants.CP_HASH_STRING);if (!TextUtils.isEmpty(hashName) && !TextUtils.isEmpty(hashData)) {//Do not generate hash from local, it needs to be calculated from server side only. Here, hashString contains hash created from your server side.String hash = hashString;HashMap<String, String> dataMap = new HashMap<>();dataMap.put(hashName, hash);hashGenerationListener.onHashGenerated(dataMap);}}});
PayUCheckoutPro.open(this, payUPaymentParams,object : PayUCheckoutProListener {override fun onPaymentSuccess(response: Any) {response as HashMap<*, *>val payUResponse = response[PayUCheckoutProConstants.CP_PAYU_RESPONSE]val merchantResponse = response[PayUCheckoutProConstants.CP_MERCHANT_RESPONSE]}override fun onPaymentFailure(response: Any) {response as HashMap<*, *>val payUResponse = response[PayUCheckoutProConstants.CP_PAYU_RESPONSE]val merchantResponse = response[PayUCheckoutProConstants.CP_MERCHANT_RESPONSE]}override fun onPaymentCancel(isTxnInitiated:Boolean) {}override fun onError(errorResponse: ErrorResponse) {val errorMessage: Stringif (errorResponse != null && errorResponse.errorMessage != null && errorResponse.errorMessage!!.isNotEmpty())errorMessage = errorResponse.errorMessage!!elseerrorMessage = resources.getString(R.string.some_error_occurred)}override fun setWebViewProperties(webView: WebView?, bank: Any?) {//For setting webview properties, if any. Check Customized Integration section for more details on this}override fun generateHash(valueMap: HashMap<String, String?>,hashGenerationListener: PayUHashGenerationListener) {if ( valueMap.containsKey(CP_HASH_STRING)&& valueMap.containsKey(CP_HASH_STRING) != null&& valueMap.containsKey(CP_HASH_NAME)&& valueMap.containsKey(CP_HASH_NAME) != null) {val hashData = valueMap[CP_HASH_STRING]val hashName = valueMap[CP_HASH_NAME]//Do not generate hash from local, it needs to be calculated from server side only. Here, hashString contains hash created from your server side.val hash: String? = hashStringif (!TextUtils.isEmpty(hash)) {val dataMap: HashMap<String, String?> = HashMap()dataMap[hashName!!] = hash!!hashGenerationListener.onHashGenerated(dataMap)}}}})