正在查看: Betterhalf.ai v5.1.1 应用的 CheckoutPresenterImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Betterhalf.ai v5.1.1 应用的 CheckoutPresenterImpl.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.razorpay;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
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.common.api.Status;
import com.google.android.gms.tasks.Task;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.messaging.Constants;
import com.razorpay.AnalyticsProperty;
import com.razorpay.CheckoutBridge;
import com.razorpay.CheckoutPresenterImpl;
import com.razorpay.CheckoutUtils;
import com.razorpay.b;
import com.razorpay.rn.RazorpayModule;
import com.truecaller.android.sdk.common.network.RestAdapter;
import expo.modules.interfaces.permissions.PermissionsResponse;
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 Task<Void> automaticRetrievalTask;
private long checkoutLoadStartAt;
J__A$ 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;
private Task<Void> userConsentTask;
protected CheckoutView view;
private String checkoutContent = "{}";
private int paymentAttempts = 0;
private boolean isPaymentSuccessful = false;
private boolean isSmsReceiverRegistered = 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 Z$_A_ magicBase = null;
private boolean nameNotFound_retryStatus = false;
private Boolean internalUpiApp = Boolean.FALSE;
BroadcastReceiver otpAutoReadBroadcast = new BroadcastReceiver() {
@Override
public final void onReceive(Context context, Intent intent) {
if ("com.google.android.gms.auth.api.phone.SMS_RETRIEVED".equals(intent.getAction())) {
Bundle extras = intent.getExtras();
Status status = (Status) extras.get("com.google.android.gms.auth.api.phone.EXTRA_STATUS");
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_RECEIVED_SMS);
int statusCode = status.getStatusCode();
if (statusCode != 0) {
if (statusCode != 15) {
return;
}
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_TIMEOUT);
return;
}
Intent intent2 = (Intent) extras.get("com.google.android.gms.auth.api.phone.EXTRA_CONSENT_INTENT");
if (intent2 == null) {
String str = (String) extras.get("com.google.android.gms.auth.api.phone.EXTRA_SMS_MESSAGE");
Intent intent3 = new Intent();
intent3.putExtra("com.google.android.gms.auth.api.phone.EXTRA_SMS_MESSAGE", str);
CheckoutPresenterImpl.this.onActivityResultReceived(1001, -1, intent3);
return;
}
ComponentName callingActivity = CheckoutPresenterImpl.this.activity.getCallingActivity();
if (callingActivity != null && callingActivity.getPackageName().equals(CheckoutPresenterImpl.this.activity.getPackageName()) && CheckoutPresenterImpl.this.activity.getLocalClassName().contains("CheckoutActivity")) {
try {
CheckoutPresenterImpl.this.activity.startActivityForResult(intent2, 1001);
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_SHOWED_ONE_TIME_CONSENT);
} catch (ActivityNotFoundException e) {
AnalyticsUtil.reportError("AutoReadOtpHelper", "S0", e.getLocalizedMessage());
}
}
}
}
};
Queue<String> checkoutMessageQueue = new LinkedList();
private boolean isCheckoutLoaded = false;
private boolean truecallerLoginAttempt = 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);
}
protected void helpersReset() {
}
@Override
public boolean isMagicPresent() {
return false;
}
@Override
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
}
@Override
public void relay(String str) {
}
@Override
public void requestOtpPermission() {
}
void enableCheckoutLoaded() {
this.isCheckoutLoaded = true;
}
void enableTwoViewFlow() {
this.isTwoWebViewFlow = true;
}
public CheckoutPresenterImpl(Activity activity, CheckoutView checkoutView) {
this.activity = activity;
this.view = checkoutView;
}
@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;
}
J__A$ j__a$ = new J__A$(bundle.getString("OPTIONS"));
this.checkoutOptions = j__a$;
JSONObject d = j__a$.d();
if (d.has("retry")) {
F_$o_.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, F_$o_.a, F_$o_.c, F_$o_.b);
d.has("ep");
J__A$ j__a$2 = this.checkoutOptions;
String a = CheckoutUtils.a("https://api.razorpay.com/v1/checkout/public", "version", F_$o_.b);
Map<String, String> g = F_$o_.a().g();
for (String str : g.keySet()) {
a = CheckoutUtils.a(a, str, g.get(str));
}
Iterator<String> it = F_$o_.a().h().iterator();
while (it.hasNext()) {
String next = it.next();
if (j__a$2.a(next)) {
a = CheckoutUtils.a(a, next, (String) j__a$2.c(next));
}
}
this.checkoutUrl = a;
if (a == null) {
destroyActivity(3, this.activity.getResources().getString(R.string.activity_result_invalid_url));
}
if (!z) {
this.checkoutOptions.g();
String a2 = C0026r.a(this.activity, "pref_merchant_options_" + this.merchantKey, null);
this.dashOptions = a2;
if (a2 != null) {
try {
this.dashOptionsJSON = new JSONObject(this.dashOptions);
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
}
}
String string = bundle.getString("FRAMEWORK");
if (string != null) {
AnalyticsUtil.addProperty("framework", new AnalyticsProperty(string, AnalyticsProperty.Scope.ORDER));
}
AnalyticsUtil.setFramework(string);
String string2 = bundle.getString("FRAMEWORK_VERSION");
if (string2 != null) {
AnalyticsUtil.addProperty("frameworkVersion", new AnalyticsProperty(string2, 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;
}
this.dashOptions = bundle.getString("DASH_OPTIONS");
if (!bundle.getBoolean("DISABLE_FULL_SCREEN", false)) {
return true;
}
CheckoutUtils.a(this.activity);
return true;
}
private void injectJs(String str) {
this.view.loadUrl(1, String.format("javascript: %s", str));
}
@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 th) {
Intent intent3 = new Intent("android.intent.action.VIEW");
intent3.setDataAndType(data, "application/pdf");
intent3.addFlags(1);
this.activity.startActivity(intent3);
throw th;
}
}
if (i != 1001) {
if (i == 99) {
JSONObject jSONFromIntentData = BaseUtils.getJSONFromIntentData(intent);
if (jSONFromIntentData.toString().contains("\"from\":\"razorpay\"") && AnalyticsUtil.getKeyType().equalsIgnoreCase("test") && this.internalUpiApp.booleanValue()) {
destroyActivity(0, "");
return;
} else {
loadResultToWebView(jSONFromIntentData, String.format("javascript: upiIntentResponse(%s)", jSONFromIntentData.toString()));
return;
}
}
if (i == 20) {
try {
JSONObject jSONObject = new JSONObject("{'data':" + i2 + "}");
jSONObject.put("provider", "CRED");
loadResultToWebView(jSONObject, String.format("javascript:externalAppResponse(%s)", jSONObject.toString()));
return;
} catch (JSONException e2) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e2.getMessage());
return;
}
}
return;
}
if (i2 == -1) {
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 jSONObject2 = new JSONObject();
jSONObject2.put("sender", "razorpay");
jSONObject2.put(RestAdapter.JSON_KEY_ERROR_MESSAGE, stringExtra);
injectJs(String.format("OTPElf.showOTP('%s','%s')", stringExtra, "razorpay"));
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_OTP_POPULATION_JS);
} catch (JSONException e3) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e3.getLocalizedMessage());
e3.printStackTrace();
}
}
} else {
AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_CONSENT_DECLINED);
}
Task<Void> task = this.userConsentTask;
if (task == null || task.isSuccessful()) {
return;
}
startSmsRetrievers();
}
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);
}
@Override
public void verifyGPaySdkResponse(String str) {
String format = String.format("javascript: window.externalSDKResponse(%s)", str);
if (this.isCheckoutLoaded) {
this.view.loadUrl(1, format);
return;
}
if (this.checkoutMessageQueue == null) {
this.checkoutMessageQueue = new LinkedList();
}
this.checkoutMessageQueue.add(format);
}
@Override
public void unregisterReceivers() {
try {
BroadcastReceiver broadcastReceiver = this.otpAutoReadBroadcast;
if (broadcastReceiver != null) {
this.activity.unregisterReceiver(broadcastReceiver);
this.isSmsReceiverRegistered = false;
}
} catch (Exception e) {
this.isSmsReceiverRegistered = false;
AnalyticsUtil.reportError("CxPrntrImpl", "S2", e.getMessage());
}
}
@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 onCheckoutRendered() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_RENDERED_COMPLETE);
}
@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 void registerSmsListener() {
try {
IntentFilter intentFilter = new IntentFilter("com.google.android.gms.auth.api.phone.SMS_RETRIEVED");
if (Build.VERSION.SDK_INT >= 33) {
this.activity.registerReceiver(this.otpAutoReadBroadcast, intentFilter, "com.google.android.gms.auth.api.phone.permission.SEND", null, 2);
} else {
this.activity.registerReceiver(this.otpAutoReadBroadcast, intentFilter, "com.google.android.gms.auth.api.phone.permission.SEND", null);
}
this.isSmsReceiverRegistered = true;
} catch (Exception unused) {
this.isSmsReceiverRegistered = false;
}
}
@Override
public void unregisterSmsListener() {
unregisterReceivers();
}
@Override
public J__A$ getCheckoutOptions() {
return this.checkoutOptions;
}
@Override
public void setUpAddOn() {
this.magicBase = new Z$_A_(this.activity, this.view.getWebView(2));
}
@Override
public void loadForm(String str) {
if (this.paymentAttempts != 0) {
AnalyticsUtil.postData();
}
this.paymentAttempts++;
AnalyticsUtil.addProperty("payment_attempt", new AnalyticsProperty(this.paymentAttempts, AnalyticsProperty.Scope.ORDER));
this.clearHistory = true;
this.view.loadUrl(1, (this.checkoutUrl + str).replace(" ", "%20"));
}
@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 onTick(long j3) {
if (j3 > 0) {
this.a.setMessage(String.format("Please reset network settings & restart the payment process.\n\nRetrying in %s second(s)", Long.valueOf(j3 / 1000)));
}
}
@Override
public final void onFinish() {
this.a.dismiss();
CheckoutPresenterImpl.this.loadForm("");
}
}.start();
}
@Override
public void onResumeTriggered() {
if (this.truecallerLoginAttempt && this.view.isWebViewVisible(1)) {
try {
this.view.loadUrl(1, String.format("javascript: window.externalSDKResponse(%s)", new JSONObject().put("provider", "truecaller")));
this.truecallerLoginAttempt = false;
} catch (JSONException e) {
throw new RuntimeException(e);
}
}
}
@Override
public void showLoaderDialog(final int i, final String str) {
this.view.loadUrl(1, "about:blank");
if (this.activity.isFinishing()) {
return;
}
final AlertDialog create = new AlertDialog.Builder(this.activity).create();
create.setCancelable(false);
create.setTitle("Trouble Connecting");
create.setMessage("Unable to connect to Razorpay.\n\nPlease check your internet connection and/or disconnect from VPN if connected and hit Try Again");
create.setButton(-1, "Try again", new E__a_(this));
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 passPrefillToSegment() {
String j = this.checkoutOptions.j();
if (!TextUtils.isEmpty(j)) {
AnalyticsUtil.addProperty("email", new AnalyticsProperty(j, AnalyticsProperty.Scope.ORDER));
}
String i = this.checkoutOptions.i();
if (TextUtils.isEmpty(i)) {
return;
}
AnalyticsUtil.addProperty("contact", new AnalyticsProperty(i, AnalyticsProperty.Scope.ORDER));
}
@Override
public void handleCardSaving() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CARD_SAVING_START);
L__R$.a(this.activity.getApplicationContext());
}
@Override
public void saveInstanceState(Bundle bundle) {
if (this.merchantLogoResourceId != 0) {
bundle.putString("OPTIONS", this.checkoutOptions.h());
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 setCheckoutLoadStartAt() {
this.checkoutLoadStartAt = System.nanoTime();
}
@Override
public void destroyActivity(int i, String str) {
AnalyticsUtil.addProperty("destroy_resultCode", new AnalyticsProperty(String.valueOf(i), AnalyticsProperty.Scope.ORDER));
AnalyticsUtil.addProperty("destroy_result", new AnalyticsProperty(str, AnalyticsProperty.Scope.ORDER));
AnalyticsUtil.trackEvent(AnalyticsEvent.INTERNAL_DESTROY_METHOD_CALLED);
cleanUpOnDestroy();
this.view.destroy(i, str);
}
@Override
public void onCheckoutBackPress() {
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_SOFT_BACK_PRESSED);
destroyActivity(0, BaseUtils.getPaymentCancelledResponse(BaseUtils.getInstance().getMetadata()));
}
protected void enableAddon(JSONObject jSONObject) {
try {
if (jSONObject.has("magic")) {
boolean z = jSONObject.getBoolean("magic");
this.isMagic = z;
Z$_A_ z$_a_ = this.magicBase;
if (z$_a_ != null) {
z$_a_.c = z;
}
AnalyticsUtil.addProperty("is_magic", new AnalyticsProperty(this.isMagic, AnalyticsProperty.Scope.PAYMENT));
}
} catch (JSONException e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
e.printStackTrace();
}
}
@Override
public void invokePopup(String str) {
this.isTwoWebViewFlow = true;
try {
this.activity.runOnUiThread(new l__9_(this, str));
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
e.printStackTrace();
}
}
@Override
public void fetchCondfig() {
F_$o_.d = isMagicPresent();
F_$o_.a(this.activity, this.merchantKey);
}
@Override
public void onProgressChanges(int i, int i2) {
if (i != 1) {
return;
}
this.view.showProgressBar(i2);
}
@Override
public void onPageStarted(int i, WebView webView, String str) {
Z$_A_ z$_a_;
if (i == 1) {
CheckoutUtils.c(this.activity);
} else if (i == 2 && (z$_a_ = this.magicBase) != null && this.isMagic) {
z$_a_.d = false;
}
}
@Override
public void onPageFinished(int i, WebView webView, String str) {
Z$_A_ z$_a_;
if (i == 1) {
primaryWebviewPageFinished(str, webView);
} else if (i == 2 && (z$_a_ = this.magicBase) != null && this.isMagic) {
z$_a_.a();
}
}
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();
}
protected void primaryWebviewPageFinished(String str, WebView webView) {
long nanoTime = System.nanoTime();
CheckoutUtils.a();
this.view.hideProgressBar();
if (str.contains("https://api.razorpay.com") && str.contains("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 String getProgressBarColor() {
JSONObject jSONObject;
String str = null;
try {
if (this.checkoutOptions.d() != null) {
String string = this.checkoutOptions.d().getJSONObject("theme").getString("color");
Color.parseColor(string);
return string;
}
throw new Exception("No options defined");
} catch (Exception e) {
try {
jSONObject = this.dashOptionsJSON;
} catch (Exception e2) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e2.getMessage());
}
if (jSONObject != null) {
str = jSONObject.getJSONObject("theme").getString("color");
Color.parseColor(str);
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getMessage());
return str;
}
throw new Exception("No dash options defined");
}
}
@Override
public void sendOtpPermissionCallback(final boolean z) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put(PermissionsResponse.GRANTED_KEY, z);
CheckoutPresenterImpl.this.view.loadUrl(1, String.format("javascript: otpPermissionCallback(%s)", jSONObject.toString()));
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getLocalizedMessage());
}
}
});
}
protected void addOnFlowEnd() {
Z$_A_ z$_a_ = this.magicBase;
if (z$_a_ != null) {
z$_a_.b.a((Activity) z$_a_.a);
}
}
@Override
public void cleanUpOnDestroy() {
try {
markPaymentCancelled();
unregisterReceivers();
f.a();
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S2", e.getLocalizedMessage());
}
}
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);
J$_M_.a("https://api.razorpay.com/v1/payments/" + this.payment_id + "/cancel?platform=android_sdk", hashMap, new Callback(this) {
@Override
public final void run(ResponseObject responseObject) {
responseObject.getResponseResult();
}
});
this.payment_id = null;
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
}
}
@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(F_$o_.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 (!F_$o_.a().k()) {
destroyActivity(0, "BackPressed");
} else {
CheckoutUtils.a(this.activity, F_$o_.a().l(), F_$o_.a().j(), F_$o_.a().i(), new CheckoutUtils.BackButtonDialogCallback() {
@Override
public final void onPositiveButtonClick() {
AnalyticsUtil.trackEvent(AnalyticsEvent.ALERT_PAYMENT_CONTINUE, AnalyticsUtil.getJSONResponse((Map<String, Object>) map));
}
@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.handleRetry(null);
CheckoutPresenterImpl.this.markPaymentCancelled();
} else {
CheckoutPresenterImpl.this.view.makeWebViewVisible(1);
CheckoutPresenterImpl.this.view.loadUrl(2, "about:blank");
CheckoutPresenterImpl.this.view.loadUrl(1, "javascript: window.onpaymentcancel()");
}
CheckoutPresenterImpl.this.isTwoWebViewFlow = false;
}
});
}
}
@Override
public void onLoad() {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
String handleMessageFormattedString;
CheckoutPresenterImpl.this.nameNotFound_retryStatus = false;
CheckoutPresenterImpl.CheckoutView checkoutView = CheckoutPresenterImpl.this.view;
handleMessageFormattedString = CheckoutPresenterImpl.this.getHandleMessageFormattedString();
checkoutView.loadUrl(1, handleMessageFormattedString);
CheckoutPresenterImpl.this.view.loadUrl(1, String.format("javascript: CheckoutBridge.sendAnalyticsData({data: %s})", AnalyticsUtil.getAnalyticsDataForCheckout(CheckoutPresenterImpl.this.activity).toString()));
}
});
startSmsRetrievers();
}
private void startSmsRetrievers() {
this.automaticRetrievalTask = SmsRetriever.getClient(this.activity).startSmsRetriever();
this.userConsentTask = SmsRetriever.getClient(this.activity).startSmsUserConsent((String) null);
}
protected 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.a((Context) this.activity));
jSONObject.put("uri_data", CheckoutUtils.b(this.activity));
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("openedAt", System.currentTimeMillis());
jSONObject.put("metadata", jSONObject2);
jSONObject.put("sdk", getSdkObject());
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;
}
private JSONObject getSdkObject() {
String str;
JSONObject jSONObject = new JSONObject();
jSONObject.put("framework", AnalyticsUtil.getFramework());
jSONObject.put("type", F_$o_.a);
jSONObject.put(RazorpayModule.MAP_KEY_WALLET_NAME, F_$o_.a + "_android_" + AnalyticsUtil.getFramework());
jSONObject.put("version", BuildConfig.VERSION_NAME);
jSONObject.put("platform", "android");
String callingPackage = this.activity.getCallingPackage();
if (callingPackage == null) {
callingPackage = this.activity.getPackageName();
str = "getPackageName";
} else {
str = "getCallingPackage";
}
if (callingPackage == null) {
callingPackage = this.activity.getApplicationContext().getPackageName();
str = "getApplicationContext.getPackageName";
}
if (callingPackage == null) {
callingPackage = this.activity.getApplication().getPackageName();
str = "getApplication.getPackageName";
}
if (callingPackage == null) {
str = "null";
}
JSONObject jSONObject2 = new JSONObject();
jSONObject2.put("function_name", str);
AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_PACKAGE_NAME_FUNC_USED, jSONObject2);
jSONObject.put("package_name", callingPackage);
return jSONObject;
}
public String getHandleMessageFormattedString() {
return String.format("javascript: handleMessage(%s)", getOptionsForHandleMessage().toString());
}
@Override
public void setAppToken(String str) {
C0026r.b(this.activity).putString("rzp_app_token", str).apply();
}
@Override
public void setDeviceToken(String str) {
L__R$.a(this.activity, str);
}
@Override
public void callNativeIntent(String str, String str2) {
if (str.contains("truecallersdk://truesdk")) {
this.truecallerLoginAttempt = true;
}
BaseUtils.startActivityForResult(str, str2, this.activity);
HashMap hashMap = new HashMap();
if (str == null) {
str = "null";
}
hashMap.put("url", str);
if (str2 == null) {
str2 = "null";
}
hashMap.put("package_name", str2);
AnalyticsUtil.trackEvent(AnalyticsEvent.NATIVE_INTENT_CALLED, AnalyticsUtil.getJSONResponse(hashMap));
}
@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(RazorpayModule.MAP_KEY_PAYMENT_ID, new AnalyticsProperty(str, AnalyticsProperty.Scope.PAYMENT));
AnalyticsUtil.trackEvent(AnalyticsEvent.PAYMENT_ID_ATTACHED);
}
@Override
public void setMerchantOptions(java.lang.String r5) {
throw new UnsupportedOperationException("Method not decompiled: com.razorpay.CheckoutPresenterImpl.setMerchantOptions(java.lang.String):void");
}
protected void addAnalyticsData(JSONObject jSONObject) {
AnalyticsUtil.addFilteredPropertiesFromPayload(jSONObject);
}
@Override
public void onSubmit(java.lang.String r6) {
throw new UnsupportedOperationException("Method not decompiled: com.razorpay.CheckoutPresenterImpl.onSubmit(java.lang.String):void");
}
protected void onComplete(JSONObject jSONObject) {
try {
if (jSONObject.has(Constants.IPC_BUNDLE_KEY_SEND_ERROR)) {
AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("fail", AnalyticsProperty.Scope.PAYMENT));
AnalyticsUtil.addProperty("payload", new AnalyticsProperty(jSONObject.toString(), AnalyticsProperty.Scope.PAYMENT));
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(RazorpayModule.MAP_KEY_RZP_PAYMENT_ID)) {
String string = jSONObject.getString(RazorpayModule.MAP_KEY_RZP_PAYMENT_ID);
this.payment_id = string;
AnalyticsUtil.addProperty(RazorpayModule.MAP_KEY_PAYMENT_ID, new AnalyticsProperty(string, AnalyticsProperty.Scope.PAYMENT));
AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty(FirebaseAnalytics.Param.SUCCESS, AnalyticsProperty.Scope.PAYMENT));
AnalyticsUtil.addProperty("payload", new AnalyticsProperty(jSONObject.toString(), AnalyticsProperty.Scope.PAYMENT));
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;
}
protected void onError(final JSONObject jSONObject) {
if (this.isTwoWebViewFlow) {
this.view.loadUrl(1, String.format("javascript: window.onComplete(%s)", jSONObject.toString()));
} else {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
CheckoutPresenterImpl.this.handleRetry(jSONObject.toString());
}
});
}
}
public void handleRetry(String str) {
int i = this.paymentAttempts;
int f = F_$o_.a().f();
if (F_$o_.a().e() && (f == -1 || f >= i)) {
try {
if (str != null) {
JSONObject jSONObject = new JSONObject(str);
if (jSONObject.has(Constants.IPC_BUNDLE_KEY_SEND_ERROR)) {
str = str + (this.checkoutUrl.contains("?") ? "&" : "?");
if (jSONObject.get(Constants.IPC_BUNDLE_KEY_SEND_ERROR) instanceof JSONObject) {
str = str + "error=" + ((JSONObject) jSONObject.get(Constants.IPC_BUNDLE_KEY_SEND_ERROR)).toString();
}
}
helpersReset();
loadForm(str);
return;
}
destroyActivity(0, "");
return;
} catch (Exception e) {
destroyActivity(0, "");
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getMessage());
return;
}
}
destroyActivity(0, str);
}
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);
}
}
@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 onComplete(String str) {
this.activity.runOnUiThread(new J__n_(this, str));
}
@Override
public void setDimensions(final int i, final int i2) {
if (h.a(this.activity)) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
WindowManager.LayoutParams attributes = CheckoutPresenterImpl.this.activity.getWindow().getAttributes();
attributes.height = h.a(CheckoutPresenterImpl.this.activity, i2);
attributes.width = h.a(CheckoutPresenterImpl.this.activity, i);
CheckoutPresenterImpl.this.activity.getWindow().setAttributes(attributes);
}
});
}
}
@Override
public void onDismiss() {
destroyActivity(0, BaseUtils.getPaymentCancelledResponse(BaseUtils.getInstance().getMetadata()));
}
@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 requestExtraAnalyticsData() {
this.activity.runOnUiThread(new b._f_(this, AnalyticsUtil.getExtraAnalyticsPayload()));
}
@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 toast(final String str, final int i) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
CheckoutPresenterImpl.this.view.showToast(str, i);
}
});
}
@Override
public void showAlertDialog(String str, String str2, String str3) {
this.activity.runOnUiThread(new c__h$(this, str, str3, str2));
}
@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, String.format("javascript: handleRelay(%s)", str));
} else {
if (i2 != 2) {
return;
}
CheckoutPresenterImpl.this.view.loadUrl(2, String.format("javascript: Magic.handleRelay(%s)", str));
}
}
});
}
@Override
public void checkSmsPermission() {
this.view.checkSmsPermission();
}
@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);
}
});
}
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.secure();
} else {
webViewSafeCheckCallback.unSecure();
}
} catch (Exception e) {
AnalyticsUtil.reportError("CxPsntrImpl", "S0", e.getLocalizedMessage());
webViewSafeCheckCallback.unSecure();
}
}
@Override
public void isWebViewSafe(int i, CheckoutBridge.WebViewSafeCheckCallback webViewSafeCheckCallback) {
executeWebViewCallback(i, webViewSafeCheckCallback);
}
@Override
public boolean isUserRegisteredOnUPI(String str) {
return BaseUtils.checkUpiRegisteredApp(this.activity, str);
}
@Override
public boolean isUserRegistered(String str) {
return BaseUtils.checkGpayCardsUpiRegistered(this.activity, str);
}
@Override
public boolean isAllowRotation() {
return this.allowRotation;
}
}