正在查看: Atlys v4.8.7 应用的 CheckoutPresenterImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Atlys v4.8.7 应用的 CheckoutPresenterImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.razorpay;
import Gh.r2;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.ParcelFileDescriptor;
import android.text.TextUtils;
import android.util.Base64;
import android.view.WindowManager;
import android.webkit.WebView;
import com.google.android.gms.auth.api.phone.SmsRetriever;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.razorpay.AnalyticsProperty;
import com.razorpay.CheckoutBridge;
import com.razorpay.CheckoutPresenterImpl;
import com.razorpay.CheckoutUtils;
import com.razorpay.b;
import com.razorpay.c;
import in.juspay.hyper.constants.LogSubCategory;
import in.juspay.hypersdk.core.PaymentConstants;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import org.json.JSONException;
import org.json.JSONObject;
class CheckoutPresenterImpl implements CheckoutInteractor, CheckoutPresenter {
protected Activity activity;
private b__J_ autoReadOtpHelper;
private long checkoutLoadStartAt;
E$_q$ checkoutOptions;
private String checkoutUrl;
private boolean clearHistory;
private String dashOptions;
private JSONObject dashOptionsJSON;
private Task<Void> loginOtpSmsTask;
String merchantKey;
private long preloadAbortDuration;
private long preloadCompleteDuration;
protected CheckoutView view;
private String checkoutContent = "{}";
private int paymentAttempts = 0;
private boolean isPaymentSuccessful = false;
private boolean isTwoWebViewFlow = false;
private boolean isMagic = false;
private int merchantLogoResourceId = 0;
private boolean isActivityCreated = false;
private boolean sendSmsHash = false;
private boolean allowRotation = false;
private String sanitizedChallanEncodedString = "";
private String payment_id = null;
private w_$E$ magicBase = null;
BroadcastReceiver otpAutoReadBroadcast = new c._2_(this);
Queue<String> checkoutMessageQueue = new LinkedList();
private boolean isCheckoutLoaded = false;
interface CheckoutView {
void addJavascriptInterfaceToPrimaryWebview(Object obj, String str);
void checkSmsPermission();
void clearWebViewHistory(int i);
void destroy(int i, String str);
WebView getWebView(int i);
void hideProgressBar();
boolean isWebViewVisible(int i);
void loadData(int i, String str, String str2, String str3);
void loadDataWithBaseURL(int i, String str, String str2, String str3, String str4, String str5);
void loadUrl(int i, String str);
void makeWebViewVisible(int i);
void showProgressBar(int i);
void showToast(String str, int i);
}
public CheckoutPresenterImpl(Activity activity, CheckoutView checkoutView) {
this.activity = activity;
this.view = checkoutView;
}
public void executeWebViewCallback(int i, CheckoutBridge.WebViewSafeCheckCallback webViewSafeCheckCallback) {
CheckoutView checkoutView;
int i2 = 1;
if (i == 1) {
checkoutView = this.view;
} else {
checkoutView = this.view;
i2 = 2;
}
try {
String host = new URL(checkoutView.getWebView(i2).getTag().toString()).getHost();
if (host == null || (!host.endsWith("razorpay.com") && !host.endsWith("razorpay.in"))) {
webViewSafeCheckCallback.unSecure();
return;
}
webViewSafeCheckCallback.secure();
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
webViewSafeCheckCallback.unSecure();
}
}
public String getHandleMessageFormattedString() {
return r2.o("javascript: handleMessage(", getOptionsForHandleMessage().toString(), ")");
}
public void handleRetry(String str) {
int i = this.paymentAttempts;
int f = n$$t$.a().f();
if (!n$$t$.a().e() || (f != -1 && f < i)) {
destroyActivity(0, str);
return;
}
try {
if (str == null) {
destroyActivity(0, "");
return;
}
JSONObject jSONObject = new JSONObject(str);
if (jSONObject.has("error")) {
StringBuilder sb = new StringBuilder();
sb.append(str);
sb.append(this.checkoutUrl.contains("?") ? "&" : "?");
str = sb.toString();
if (jSONObject.get("error") instanceof JSONObject) {
str = str + "error=" + ((JSONObject) jSONObject.get("error")).toString();
}
}
helpersReset();
loadForm(str);
} catch (Exception e) {
destroyActivity(0, "");
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
}
}
private void injectJs(String str) {
this.view.loadUrl(1, w.q.e("javascript: ", str));
}
public void lambda$onLoad$0(Void r5) {
this.activity.registerReceiver(this.otpAutoReadBroadcast, new IntentFilter("com.google.android.gms.auth.api.phone.SMS_RETRIEVED"), "com.google.android.gms.auth.api.phone.permission.SEND", null);
}
public void lambda$onLoad$1(Exception exc) {
startSmsRetrieverForSavedCardsOTP();
}
private void loadResultToWebView(JSONObject jSONObject, String str) {
HashMap hashMap = new HashMap();
hashMap.put("result", jSONObject);
AnalyticsUtil.trackEvent(AnalyticsEvent.NATIVE_INTENT_ONACTIVITY_RESULT, AnalyticsUtil.getJSONResponse(hashMap));
if (this.isCheckoutLoaded) {
this.view.loadUrl(1, str);
return;
}
if (this.checkoutMessageQueue == null) {
this.checkoutMessageQueue = new LinkedList();
}
this.checkoutMessageQueue.add(str);
}
public void markPaymentCancelled() {
if (this.payment_id == null || this.isPaymentSuccessful) {
return;
}
try {
String constructBasicAuth = BaseUtils.constructBasicAuth(this.merchantKey);
HashMap hashMap = new HashMap();
hashMap.put("Authorization", "Basic " + constructBasicAuth);
o$_b$.a("https://api.razorpay.com/v1/payments/" + this.payment_id + "/cancel?platform=android_sdk", hashMap, new l__9_(this));
this.payment_id = null;
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
}
}
private void savePrefillData(JSONObject jSONObject) {
try {
if (jSONObject.has("contact")) {
CheckoutUtils.b(this.activity, jSONObject.getString("contact"));
this.checkoutOptions.a("contact", jSONObject.getString("contact"));
}
if (jSONObject.has("email")) {
CheckoutUtils.a(this.activity, jSONObject.getString("email"));
this.checkoutOptions.a("email", jSONObject.getString("email"));
}
} catch (JSONException e) {
d__1_.a("Error parsing JSON", e);
}
}
private void sendQueuedMessagesToCheckout() {
Queue<String> queue = this.checkoutMessageQueue;
if (queue == null || queue.isEmpty()) {
return;
}
Iterator<String> it = this.checkoutMessageQueue.iterator();
while (it.hasNext()) {
this.view.loadUrl(1, it.next());
}
this.checkoutMessageQueue.clear();
}
private void startSmsRetrieverForSavedCardsOTP() {
this.loginOtpSmsTask = SmsRetriever.getClient(this.activity).startSmsUserConsent((String) null);
this.autoReadOtpHelper = new b__J_(this.activity);
this.activity.registerReceiver(this.autoReadOtpHelper, new IntentFilter("com.google.android.gms.auth.api.phone.SMS_RETRIEVED"));
}
public void addAnalyticsData(JSONObject jSONObject) {
AnalyticsUtil.addFilteredPropertiesFromPayload(jSONObject);
}
public void addOnFlowEnd() {
w_$E$ w__e_ = this.magicBase;
if (w__e_ != null) {
w__e_.b.a((Activity) w__e_.a);
}
}
@Override
public void backPressed(final Map<String, Object> map) {
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_HARD_BACK_PRESSED, AnalyticsUtil.getJSONResponse(map));
WebView webView = this.view.getWebView(1);
if ((webView.getTag() == null ? "" : webView.getTag().toString()).contains(n$$t$.a().getCheckoutEndpoint()) && !this.view.isWebViewVisible(2)) {
this.view.loadUrl(1, "javascript: window.backPressed ? window.backPressed('onCheckoutBackPress') : CheckoutBridge.onCheckoutBackPress();");
map.put("in_checkout", "true");
} else if (n$$t$.a().k()) {
CheckoutUtils.a(this.activity, n$$t$.a().l(), n$$t$.a().j(), n$$t$.a().i(), new CheckoutUtils.BackButtonDialogCallback() {
@Override
public final void onNegativeButtonClick() {
boolean z;
AnalyticsUtil.trackEvent(AnalyticsEvent.ALERT_PAYMENT_CANCELLED, AnalyticsUtil.getJSONResponse((Map<String, Object>) map));
z = CheckoutPresenterImpl.this.isTwoWebViewFlow;
if (z) {
CheckoutPresenterImpl.this.view.makeWebViewVisible(1);
CheckoutPresenterImpl.this.view.loadUrl(2, "about:blank");
CheckoutPresenterImpl.this.view.loadUrl(1, "javascript: window.onpaymentcancel()");
} else {
CheckoutPresenterImpl.this.handleRetry(null);
CheckoutPresenterImpl.this.markPaymentCancelled();
}
CheckoutPresenterImpl.this.isTwoWebViewFlow = false;
}
@Override
public final void onPositiveButtonClick() {
AnalyticsUtil.trackEvent(AnalyticsEvent.ALERT_PAYMENT_CONTINUE, AnalyticsUtil.getJSONResponse((Map<String, Object>) map));
}
});
} else {
destroyActivity(0, "BackPressed");
}
}
@Override
public void callNativeIntent(String str, String str2) {
BaseUtils.startActivityForResult(str, str2, this.activity);
HashMap hashMap = new HashMap();
if (str == null) {
str = "null";
}
hashMap.put(PaymentConstants.URL, str);
if (str2 == null) {
str2 = "null";
}
hashMap.put("package_name", str2);
AnalyticsUtil.trackEvent(AnalyticsEvent.NATIVE_INTENT_CALLED, AnalyticsUtil.getJSONResponse(hashMap));
}
@Override
public void checkSmsPermission() {
this.view.checkSmsPermission();
}
@Override
public void cleanUpOnDestroy() {
try {
markPaymentCancelled();
this.activity.unregisterReceiver(this.autoReadOtpHelper);
this.activity.unregisterReceiver(this.otpAutoReadBroadcast);
c.a();
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getLocalizedMessage());
}
}
@Override
public void destroyActivity(int i, String str) {
String valueOf = String.valueOf(i);
AnalyticsProperty.Scope scope = AnalyticsProperty.Scope.ORDER;
AnalyticsUtil.addProperty("destroy_resultCode", new AnalyticsProperty(valueOf, scope));
AnalyticsUtil.addProperty("destroy_result", new AnalyticsProperty(str, scope));
AnalyticsUtil.trackEvent(AnalyticsEvent.INTERNAL_DESTROY_METHOD_CALLED);
cleanUpOnDestroy();
this.view.destroy(i, str);
}
public void enableAddon(JSONObject jSONObject) {
try {
if (jSONObject.has("magic")) {
boolean z = jSONObject.getBoolean("magic");
this.isMagic = z;
w_$E$ w__e_ = this.magicBase;
if (w__e_ != null) {
w__e_.c = z;
}
AnalyticsUtil.addProperty("is_magic", new AnalyticsProperty(z, AnalyticsProperty.Scope.PAYMENT));
}
} catch (JSONException e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
e.printStackTrace();
}
}
public void enableCheckoutLoaded() {
this.isCheckoutLoaded = true;
}
public void enableTwoViewFlow() {
this.isTwoWebViewFlow = true;
}
@Override
public void fetchCondfig() {
n$$t$.d = isMagicPresent();
n$$t$.a(this.activity, this.merchantKey);
}
@Override
public E$_q$ getCheckoutOptions() {
return this.checkoutOptions;
}
public JSONObject getOptionsForHandleMessage() {
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("options", this.checkoutOptions.d());
jSONObject.put("data", this.checkoutContent);
jSONObject.put("id", AnalyticsUtil.getLocalOrderId());
jSONObject.put("pdf_download_supported", true);
jSONObject.put("key_id", this.merchantKey);
jSONObject.put("externalSDKs", new JSONObject());
if (this.checkoutOptions.b()) {
jSONObject.put("sms_hash", new AppSignatureHelper(this.activity).getAppSignatures().get(0));
}
jSONObject.put("upi_intents_data", CheckoutUtils.c(this.activity));
jSONObject.put("uri_data", CheckoutUtils.d(this.activity));
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("openedAt", System.currentTimeMillis());
jSONObject.put("metadata", jSONObject2);
JSONObject jSONObject3 = new JSONObject();
jSONObject3.put("framework", AnalyticsUtil.getFramework());
jSONObject3.put("type", n$$t$.a);
jSONObject3.put("name", n$$t$.a + "_android_" + AnalyticsUtil.getFramework());
jSONObject3.put("version", BuildConfig.VERSION_NAME);
jSONObject3.put("platform", LogSubCategory.LifeCycle.ANDROID);
jSONObject3.put("package_name", this.activity.getCallingPackage());
jSONObject.put(PaymentConstants.Category.SDK, jSONObject3);
String b = L__R$.b(this.activity.getApplicationContext());
if (!TextUtils.isEmpty(b)) {
jSONObject.put("device_token", b);
}
jSONObject.put("sdk_popup", true);
jSONObject.put("magic", true);
jSONObject.put("network_type", BaseUtils.getNetworkType(this.activity));
jSONObject.put("activity_recreated", this.isActivityCreated);
} catch (JSONException e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getLocalizedMessage());
}
return jSONObject;
}
@Override
public void getPdfString(String str, String str2) {
if (TextUtils.isEmpty(str2) || !str2.contains("base64,")) {
return;
}
String str3 = str2.split("base64,")[1];
this.sanitizedChallanEncodedString = str3;
BaseUtils.pdfDownloadHelper(this.activity, str, str3);
}
@Override
public String getProgressBarColor() {
JSONObject jSONObject;
String str = null;
try {
if (this.checkoutOptions.d() == null) {
throw new Exception("No options defined");
}
String string = this.checkoutOptions.d().getJSONObject("theme").getString("color");
Color.parseColor(string);
return string;
} catch (Exception e) {
try {
jSONObject = this.dashOptionsJSON;
} catch (Exception e2) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e2.getMessage());
}
if (jSONObject == null) {
throw new Exception("No dash options defined");
}
str = jSONObject.getJSONObject("theme").getString("color");
Color.parseColor(str);
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getMessage());
return str;
}
}
@Override
public String getSdkPlugins() {
HashMap<String, String> allPluginsFromManifest = BaseUtils.getAllPluginsFromManifest(this.activity);
JSONObject jSONObject = new JSONObject();
try {
jSONObject.put("isAmazonPluginIntegrated", false);
jSONObject.put("isGooglePayPluginIntegrated", false);
} catch (JSONException e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
}
if (allPluginsFromManifest != null && allPluginsFromManifest.size() != 0) {
for (String str : allPluginsFromManifest.values()) {
if (allPluginsFromManifest.size() > 0 && str.equalsIgnoreCase("com.razorpay.RazorpayAmazon")) {
jSONObject.put("isAmazonPluginIntegrated", true);
}
if (allPluginsFromManifest.size() > 0 && str.equalsIgnoreCase("com.razorpay.RzpGpayMerged")) {
jSONObject.put("isGooglePayPluginIntegrated", true);
}
}
return jSONObject.toString();
}
return jSONObject.toString();
}
@Override
public void handleCardSaving() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CARD_SAVING_START);
L__R$.a(this.activity.getApplicationContext());
}
public void helpersReset() {
}
@Override
public void invokePopup(String str) {
this.isTwoWebViewFlow = true;
try {
this.activity.runOnUiThread(new E__a_(this, str));
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
e.printStackTrace();
}
}
@Override
public boolean isAllowRotation() {
return this.allowRotation;
}
@Override
public boolean isMagicPresent() {
return false;
}
@Override
public boolean isUserRegistered(String str) {
return BaseUtils.checkGpayCardsUpiRegistered(this.activity, str);
}
@Override
public boolean isUserRegisteredOnUPI(String str) {
return BaseUtils.checkUpiRegisteredApp(this.activity, str);
}
@Override
public void isWebViewSafe(int i, CheckoutBridge.WebViewSafeCheckCallback webViewSafeCheckCallback) {
executeWebViewCallback(i, webViewSafeCheckCallback);
}
@Override
public void isWebViewSafeOnUI(final int i, final CheckoutBridge.WebViewSafeCheckCallback webViewSafeCheckCallback) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
CheckoutPresenterImpl.this.executeWebViewCallback(i, webViewSafeCheckCallback);
}
});
}
@Override
public void loadForm(String str) {
if (this.paymentAttempts != 0) {
AnalyticsUtil.postData();
}
int i = this.paymentAttempts + 1;
this.paymentAttempts = i;
AnalyticsUtil.addProperty("payment_attempt", new AnalyticsProperty(i, AnalyticsProperty.Scope.ORDER));
this.clearHistory = true;
this.view.loadUrl(1, (this.checkoutUrl + str).replace(" ", "%20"));
}
@Override
public void onActivityResultReceived(int i, int i2, Intent intent) {
Intent intent2;
if (i == 77) {
if (i2 != -1 || intent.getData() == null) {
return;
}
Uri data = intent.getData();
try {
try {
ParcelFileDescriptor openFileDescriptor = this.activity.getContentResolver().openFileDescriptor(data, "w");
FileOutputStream fileOutputStream = new FileOutputStream(openFileDescriptor.getFileDescriptor());
fileOutputStream.write(Base64.decode(this.sanitizedChallanEncodedString, 0));
fileOutputStream.close();
openFileDescriptor.close();
intent2 = new Intent("android.intent.action.VIEW");
} catch (IOException e) {
e.printStackTrace();
intent2 = new Intent("android.intent.action.VIEW");
}
intent2.setDataAndType(data, "application/pdf");
intent2.addFlags(1);
data = this.activity;
data.startActivity(intent2);
return;
} catch (Throwable th2) {
Intent intent3 = new Intent("android.intent.action.VIEW");
intent3.setDataAndType(data, "application/pdf");
intent3.addFlags(1);
this.activity.startActivity(intent3);
throw th2;
}
}
if (i == 1001) {
if (i2 != -1) {
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_CONSENT_DECLINED);
return;
}
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_RECEIVED_SMS);
String stringExtra = intent.getStringExtra("com.google.android.gms.auth.api.phone.EXTRA_SMS_MESSAGE");
if (this.isCheckoutLoaded) {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("sender", "razorpay");
jSONObject.put("message", stringExtra);
injectJs("OTPElf.showOTP('" + stringExtra + "','razorpay')");
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_OTP_POPULATION_JS);
return;
} catch (JSONException e2) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e2.getLocalizedMessage());
e2.printStackTrace();
return;
}
}
return;
}
if (i == 99) {
JSONObject jSONFromIntentData = BaseUtils.getJSONFromIntentData(intent);
loadResultToWebView(jSONFromIntentData, r2.o("javascript: upiIntentResponse(", jSONFromIntentData.toString(), ")"));
return;
}
if (i == 20) {
try {
JSONObject jSONObject2 = new JSONObject("{'data':" + i2 + "}");
jSONObject2.put("provider", "CRED");
loadResultToWebView(jSONObject2, "javascript:externalAppResponse(" + jSONObject2.toString() + ")");
} catch (JSONException e3) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e3.getMessage());
}
}
}
@Override
public void onCheckoutBackPress() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_SOFT_BACK_PRESSED);
destroyActivity(0, BaseUtils.getPaymentCancelledResponse(BaseUtils.getInstance().getMetadata()));
}
@Override
public void onCheckoutRendered() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_RENDERED_COMPLETE);
}
public void onComplete(JSONObject jSONObject) {
try {
if (jSONObject.has("error")) {
AnalyticsProperty.Scope scope = AnalyticsProperty.Scope.PAYMENT;
AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("fail", scope));
AnalyticsUtil.addProperty(PaymentConstants.PAYLOAD, new AnalyticsProperty(jSONObject.toString(), scope));
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_PAYMENT_COMPLETE);
if (this.isTwoWebViewFlow) {
this.view.makeWebViewVisible(1);
}
onError(jSONObject);
} else if (jSONObject.has("razorpay_fund_account_id")) {
destroyActivity(1, jSONObject.toString());
} else if (jSONObject.has("razorpay_payment_id")) {
String string = jSONObject.getString("razorpay_payment_id");
this.payment_id = string;
AnalyticsProperty.Scope scope2 = AnalyticsProperty.Scope.PAYMENT;
AnalyticsUtil.addProperty("payment_id", new AnalyticsProperty(string, scope2));
AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("success", scope2));
AnalyticsUtil.addProperty(PaymentConstants.PAYLOAD, new AnalyticsProperty(jSONObject.toString(), scope2));
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_PAYMENT_COMPLETE);
this.isPaymentSuccessful = true;
destroyActivity(1, jSONObject.toString());
} else if (jSONObject.has("external_wallet")) {
destroyActivity(4, jSONObject.toString());
} else {
destroyActivity(0, "Post payment parsing error");
}
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
destroyActivity(0, e.getMessage());
}
this.isTwoWebViewFlow = false;
}
@Override
public void onDismiss() {
destroyActivity(0, BaseUtils.getPaymentCancelledResponse(BaseUtils.getInstance().getMetadata()));
}
public void onError(final JSONObject jSONObject) {
if (!this.isTwoWebViewFlow) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
CheckoutPresenterImpl.this.handleRetry(jSONObject.toString());
}
});
} else {
this.view.loadUrl(1, r2.o("javascript: window.onComplete(", jSONObject.toString(), ")"));
}
}
@Override
public void onFault(String str) {
try {
destroyActivity(3, new JSONObject(str).toString());
} catch (JSONException unused) {
destroyActivity(3, BaseUtils.getGenericPaymentErrorResponse(str, BaseUtils.getInstance().getMetadata()));
}
}
@Override
public void onLoad() {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
String handleMessageFormattedString;
CheckoutPresenterImpl checkoutPresenterImpl = CheckoutPresenterImpl.this;
CheckoutPresenterImpl.CheckoutView checkoutView = checkoutPresenterImpl.view;
handleMessageFormattedString = checkoutPresenterImpl.getHandleMessageFormattedString();
checkoutView.loadUrl(1, handleMessageFormattedString);
CheckoutPresenterImpl checkoutPresenterImpl2 = CheckoutPresenterImpl.this;
checkoutPresenterImpl2.view.loadUrl(1, r2.o("javascript: CheckoutBridge.sendAnalyticsData({data: ", AnalyticsUtil.getAnalyticsDataForCheckout(checkoutPresenterImpl2.activity).toString(), "})"));
}
});
if (Build.VERSION.SDK_INT >= 29 || c2.h.checkSelfPermission(this.activity, "android.permission.RECEIVE_SMS") != 0) {
if (!this.sendSmsHash) {
startSmsRetrieverForSavedCardsOTP();
return;
}
Task<Void> startSmsRetriever = SmsRetriever.getClient(this.activity).startSmsRetriever();
this.loginOtpSmsTask = startSmsRetriever;
startSmsRetriever.addOnSuccessListener(new OnSuccessListener() {
public final void onSuccess(Object obj) {
CheckoutPresenterImpl.this.lambda$onLoad$0((Void) obj);
}
});
this.loginOtpSmsTask.addOnFailureListener(new OnFailureListener() {
public final void onFailure(Exception exc) {
CheckoutPresenterImpl.this.lambda$onLoad$1(exc);
}
});
}
}
@Override
public void onPageFinished(int i, WebView webView, String str) {
w_$E$ w__e_;
if (i == 1) {
primaryWebviewPageFinished(str, webView);
} else if (i == 2 && (w__e_ = this.magicBase) != null && this.isMagic) {
w__e_.a();
}
}
@Override
public void onPageStarted(int i, WebView webView, String str) {
w_$E$ w__e_;
if (i == 1) {
CheckoutUtils.e(this.activity);
} else if (i == 2 && (w__e_ = this.magicBase) != null && this.isMagic) {
w__e_.d = false;
}
}
@Override
public void onProgressChanges(int i, int i2) {
if (i != 1) {
return;
}
this.view.showProgressBar(i2);
}
@Override
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
}
@Override
public void onSubmit(String str) {
if (this.paymentAttempts > 1) {
AnalyticsUtil.refreshPaymentSession();
}
if (this.autoReadOtpHelper != null && this.loginOtpSmsTask.isComplete()) {
try {
this.activity.unregisterReceiver(this.autoReadOtpHelper);
} catch (IllegalArgumentException unused) {
}
}
try {
JSONObject jSONObject = new JSONObject(str);
this.checkoutContent = str;
addAnalyticsData(jSONObject);
savePrefillData(jSONObject);
if (jSONObject.has("method")) {
String string = jSONObject.getString("method");
if (!string.equalsIgnoreCase("netbanking") && !string.equalsIgnoreCase("card")) {
if (string.equals("wallet") && jSONObject.has("wallet")) {
String string2 = jSONObject.getString("wallet");
if (this.checkoutOptions.b(string2)) {
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("external_wallet", string2);
AnalyticsUtil.addProperty("external_wallet", new AnalyticsProperty(string2, AnalyticsProperty.Scope.ORDER));
AnalyticsUtil.trackEvent(AnalyticsEvent.EXTERNAL_WALLET_SELECTED);
onComplete(jSONObject2);
}
}
}
if (Build.VERSION.SDK_INT >= 29 || c2.h.checkSelfPermission(this.activity, "android.permission.RECEIVE_SMS") != 0) {
startSmsRetrieverForSavedCardsOTP();
}
}
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_SUBMIT);
AnalyticsUtil.postData();
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
d__1_.a("Error in submit", e);
}
}
@Override
public void passPrefillToSegment() {
String k = this.checkoutOptions.k();
if (!TextUtils.isEmpty(k)) {
AnalyticsUtil.addProperty("email", new AnalyticsProperty(k, AnalyticsProperty.Scope.ORDER));
}
String j = this.checkoutOptions.j();
if (TextUtils.isEmpty(j)) {
return;
}
AnalyticsUtil.addProperty("contact", new AnalyticsProperty(j, AnalyticsProperty.Scope.ORDER));
}
public void primaryWebviewPageFinished(String str, WebView webView) {
long nanoTime = System.nanoTime();
CheckoutUtils.a();
this.view.hideProgressBar();
if (str.contains("https://api.razorpay.com") && str.contains(LogSubCategory.LifeCycle.ANDROID) && str.contains(BuildConfig.VERSION_NAME)) {
if (this.paymentAttempts == 1) {
this.isCheckoutLoaded = true;
sendQueuedMessagesToCheckout();
HashMap hashMap = new HashMap();
long j = nanoTime - this.checkoutLoadStartAt;
hashMap.put("checkout_load_duration", Long.valueOf(j));
BaseUtils.nanoTimeToSecondsString(j, 2);
long j2 = this.preloadCompleteDuration;
if (j2 > 0) {
hashMap.put("preload_finish_duration", Long.valueOf(j2));
BaseUtils.nanoTimeToSecondsString(this.preloadCompleteDuration, 2);
} else {
long j3 = this.preloadAbortDuration;
if (j3 > 0) {
hashMap.put("preload_abort_duration", Long.valueOf(j3));
BaseUtils.nanoTimeToSecondsString(this.preloadAbortDuration, 2);
}
}
long j4 = this.preloadCompleteDuration - j;
if (j4 > 0) {
hashMap.put("time_shaved_off", Long.valueOf(j4));
BaseUtils.nanoTimeToSecondsString(j4, 2);
}
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_LOADED, AnalyticsUtil.getJSONResponse(hashMap));
}
if (this.clearHistory) {
this.view.clearWebViewHistory(1);
this.clearHistory = false;
}
}
}
@Override
public void relay(String str) {
}
@Override
public void requestExtraAnalyticsData() {
this.activity.runOnUiThread(new J__n_(this, AnalyticsUtil.getExtraAnalyticsPayload()));
}
@Override
public void requestOtpPermission() {
}
@Override
public void saveInstanceState(Bundle bundle) {
if (this.merchantLogoResourceId != 0) {
bundle.putString("OPTIONS", this.checkoutOptions.i());
bundle.putInt("IMAGE", this.merchantLogoResourceId);
} else {
bundle.putString("OPTIONS", this.checkoutOptions.e());
}
bundle.putString("DASH_OPTIONS", this.dashOptions);
if (this.activity.getIntent() != null) {
bundle.putBoolean("DISABLE_FULL_SCREEN", this.activity.getIntent().getBooleanExtra("DISABLE_FULL_SCREEN", false));
}
}
@Override
public void sendDataToWebView(final int i, final String str) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
int i2 = i;
if (i2 == 1) {
CheckoutPresenterImpl.this.view.loadUrl(1, r2.o("javascript: handleRelay(", str, ")"));
} else {
if (i2 != 2) {
return;
}
CheckoutPresenterImpl.this.view.loadUrl(2, r2.o("javascript: Magic.handleRelay(", str, ")"));
}
}
});
}
@Override
public void sendOtpPermissionCallback(final boolean z) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("granted", z);
CheckoutPresenterImpl.this.view.loadUrl(1, "javascript: otpPermissionCallback(" + jSONObject.toString() + ")");
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getLocalizedMessage());
}
}
});
}
@Override
public void setAppToken(String str) {
p.b(this.activity).putString("rzp_app_token", str).apply();
}
@Override
public void setCheckoutLoadStartAt() {
this.checkoutLoadStartAt = System.nanoTime();
}
@Override
public void setDeviceToken(String str) {
L__R$.a(this.activity, str);
}
@Override
public void setDimensions(final int i, final int i2) {
if (f.a(this.activity)) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
WindowManager.LayoutParams attributes = CheckoutPresenterImpl.this.activity.getWindow().getAttributes();
attributes.height = f.a(CheckoutPresenterImpl.this.activity, i2);
attributes.width = f.a(CheckoutPresenterImpl.this.activity, i);
CheckoutPresenterImpl.this.activity.getWindow().setAttributes(attributes);
}
});
}
}
@Override
public void setMerchantOptions(java.lang.String r5) {
throw new UnsupportedOperationException("Method not decompiled: com.razorpay.CheckoutPresenterImpl.setMerchantOptions(java.lang.String):void");
}
@Override
public boolean setOptions(Bundle bundle, boolean z) {
this.isActivityCreated = z;
if (bundle == null) {
destroyActivity(0, this.activity.getResources().getString(R.string.activity_result_invalid_parameters));
return false;
}
E$_q$ e$_q$ = new E$_q$(bundle.getString("OPTIONS"));
this.checkoutOptions = e$_q$;
JSONObject d = e$_q$.d();
if (d.has("retry")) {
n$$t$.a().a(d);
}
this.merchantKey = this.checkoutOptions.a();
this.sendSmsHash = this.checkoutOptions.b();
this.allowRotation = this.checkoutOptions.c();
int i = bundle.getInt("IMAGE", 0);
this.merchantLogoResourceId = i;
this.checkoutOptions.a(this.activity, i);
AnalyticsUtil.setup(this.activity, this.merchantKey, n$$t$.a, n$$t$.c, n$$t$.b);
d.has("ep");
E$_q$ e$_q$2 = this.checkoutOptions;
String a = CheckoutUtils.a("https://api.razorpay.com/v1/checkout/public", "version", n$$t$.b);
Map<String, String> g = n$$t$.a().g();
for (String str : g.keySet()) {
a = CheckoutUtils.a(a, str, g.get(str));
}
Iterator<String> it = n$$t$.a().h().iterator();
while (it.hasNext()) {
String next = it.next();
if (e$_q$2.a(next)) {
a = CheckoutUtils.a(a, next, (String) e$_q$2.c(next));
}
}
this.checkoutUrl = a;
if (a == null) {
destroyActivity(3, this.activity.getResources().getString(R.string.activity_result_invalid_url));
}
if (z) {
this.dashOptions = bundle.getString("DASH_OPTIONS");
if (!bundle.getBoolean("DISABLE_FULL_SCREEN", false)) {
return true;
}
CheckoutUtils.a(this.activity);
return true;
}
this.checkoutOptions.h();
Activity activity = this.activity;
String str2 = this.merchantKey;
String string = p.a(activity).getString("pref_merchant_options_" + str2, null);
this.dashOptions = string;
if (string != null) {
try {
this.dashOptionsJSON = new JSONObject(this.dashOptions);
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
}
}
String string2 = bundle.getString("FRAMEWORK");
if (string2 != null) {
AnalyticsUtil.addProperty("framework", new AnalyticsProperty(string2, AnalyticsProperty.Scope.ORDER));
}
AnalyticsUtil.setFramework(string2);
String string3 = bundle.getString("FRAMEWORK_VERSION");
if (string3 != null) {
AnalyticsUtil.addProperty("frameworkVersion", new AnalyticsProperty(string3, AnalyticsProperty.Scope.ORDER));
}
if (bundle.getBoolean("DISABLE_FULL_SCREEN", false)) {
CheckoutUtils.a(this.activity);
}
if (bundle.containsKey("PRELOAD_COMPLETE_DURATION")) {
this.preloadCompleteDuration = bundle.getLong("PRELOAD_COMPLETE_DURATION");
}
if (!bundle.containsKey("PRELOAD_ABORT_DURATION")) {
return true;
}
this.preloadAbortDuration = bundle.getLong("PRELOAD_ABORT_DURATION");
return true;
}
@Override
public void setPaymentID(String str) {
this.payment_id = str;
BaseUtils.getInstance().setPaymentId(str);
if (this.checkoutOptions.f() != null) {
BaseUtils.getInstance().setOrderId(this.checkoutOptions.f());
}
AnalyticsUtil.addProperty("payment_id", new AnalyticsProperty(str, AnalyticsProperty.Scope.PAYMENT));
AnalyticsUtil.trackEvent(AnalyticsEvent.PAYMENT_ID_ATTACHED);
}
@Override
public void setUpAddOn() {
this.magicBase = new w_$E$(this.activity, this.view.getWebView(2));
}
@Override
public void showAlertDialog(String str, String str2, String str3) {
this.activity.runOnUiThread(new k__c$(this, str, str3, str2));
}
@Override
public void showLoaderDialog(final int i, final String str) {
this.view.loadUrl(1, "about:blank");
final AlertDialog create = new AlertDialog.Builder(this.activity).create();
create.setTitle(this.activity.getString(R.string.err_name_not_resolved_title));
create.setMessage(this.activity.getString(R.string.err_name_not_resolved_message));
create.setButton(-1, "Try again", new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i2) {
CheckoutPresenterImpl.this.loadForm("");
}
});
create.setButton(-2, "Cancel Payment", new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i2) {
create.dismiss();
CheckoutPresenterImpl.this.destroyActivity(i, str);
}
});
create.show();
}
@Override
public void showRetryDialog(final int i, final String str) {
this.view.loadUrl(1, "about:blank");
final AlertDialog create = new AlertDialog.Builder(this.activity).create();
create.setTitle("Trouble Connecting");
create.setMessage("Please check your internet connection & restart the payment process.\n\nRetrying in 5 seconds");
create.setButton(-2, "Cancel Payment", new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i2) {
create.dismiss();
CheckoutPresenterImpl.this.destroyActivity(i, str);
}
});
create.show();
final long j = 5000;
final long j2 = 1000;
new CountDownTimer(j, j2, create) {
private AlertDialog a;
{
super(5000L, 1000L);
this.a = create;
}
@Override
public final void onFinish() {
this.a.dismiss();
CheckoutPresenterImpl.this.loadForm("");
}
@Override
public final void onTick(long j3) {
if (j3 > 0) {
this.a.setMessage("Please reset network settings & restart the payment process.\n\nRetrying in " + (j3 / 1000) + " second(s)");
}
}
}.start();
}
@Override
public void toast(String str, int i) {
this.activity.runOnUiThread(new b._f_(this, str, i));
}
@Override
public void unregisterReceivers() {
try {
BroadcastReceiver broadcastReceiver = this.otpAutoReadBroadcast;
if (broadcastReceiver != null) {
this.activity.unregisterReceiver(broadcastReceiver);
}
} catch (Exception e) {
AnalyticsUtil.reportError("CxPrntrImpl", "S2", e.getMessage());
}
try {
b__J_ b__j_ = this.autoReadOtpHelper;
if (b__j_ != null) {
this.activity.unregisterReceiver(b__j_);
}
} catch (Exception e2) {
AnalyticsUtil.reportError("CxPrntrImpl", "S2", e2.getMessage());
}
}
@Override
public void verifyGPaySdkResponse(String str) {
String o = r2.o("javascript: window.externalSDKResponse(", str, ")");
if (this.isCheckoutLoaded) {
this.view.loadUrl(1, o);
return;
}
if (this.checkoutMessageQueue == null) {
this.checkoutMessageQueue = new LinkedList();
}
this.checkoutMessageQueue.add(o);
}
@Override
public void onDismiss(String str) {
try {
destroyActivity(0, new JSONObject(str).toString());
} catch (JSONException unused) {
destroyActivity(0, BaseUtils.getGenericPaymentErrorResponse(str, BaseUtils.getInstance().getMetadata()));
}
}
@Override
public void onError(String str) {
try {
onError(new JSONObject(str));
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
CheckoutPresenterImpl.this.helpersReset();
CheckoutPresenterImpl.this.loadForm("");
}
});
}
}
@Override
public void onComplete(final String str) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
try {
CheckoutPresenterImpl.this.onComplete(new JSONObject(str));
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
CheckoutPresenterImpl.this.destroyActivity(0, BaseUtils.getPaymentCancelledResponse(BaseUtils.getInstance().getMetadata()));
}
}
});
}
}