正在查看: Crafto v9.3.3 应用的 RzpAssist.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Crafto v9.3.3 应用的 RzpAssist.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.razorpay;
import C1.q;
import J1.a;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.pm.PackageManager;
import android.os.Build;
import android.util.Log;
import android.view.inputmethod.InputMethodManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.widget.Toast;
import com.paytmpayments.customuisdk.common.Constants.SDKConstants;
import com.paytmpayments.customuisdk.transaction.PayUtility;
import com.phonepe.intent.sdk.bridges.BridgeHandler;
import com.razorpay.AnalyticsProperty;
import java.util.HashMap;
import org.json.JSONObject;
public final class RzpAssist implements SmsAgentInterface {
private Activity activity;
private B_$q$ elfData;
String lastSms;
private String merchantKey;
String message;
private long pageStartTime;
private String paymentId;
private String sdkType;
private String sdkVersion;
private int sdkVersionCode;
String sender;
private c$_2_ smsAgent;
private WebView webview;
private boolean hasOtpPermission = false;
private String lastURL = "";
private String currentLoadingUrl = "";
private boolean isMagic = false;
private boolean isRazorpayOtpReceived = false;
private JSONObject otpElfPreferences = new JSONObject();
private JSONObject paymentData = new JSONObject();
private boolean isRzpAssistEnabled = false;
private boolean otpRead = false;
private boolean jsInsertedInCurrentPage = false;
public RzpAssist(String str, Activity activity, WebView webView, String str2, int i, String str3) {
this.sdkType = "standalone";
if (g__v_.a().isOTPElfEnabled().booleanValue()) {
if (str == null || str.isEmpty()) {
throw new RuntimeException("merchantKey cannot be null or empty");
}
this.sdkType = str2;
this.sdkVersionCode = i;
this.sdkVersion = str3;
if (str2.equals("standalone") || str2.equalsIgnoreCase("standard") || str2.equalsIgnoreCase("custom")) {
AnalyticsUtil.setup(activity, str, str2, i, str3);
}
this.webview = webView;
this.merchantKey = str;
this.activity = activity;
final B_$q$ b_$q$ = new B_$q$(activity);
this.elfData = b_$q$;
Q$$U_.a(g__v_.a().getOtpElfVersionUrl(), new Callback() {
@Override
public final void run(ResponseObject responseObject) {
if (responseObject.getResponseResult() == null) {
return;
}
try {
String versionFromJsonString = BaseUtils.getVersionFromJsonString(responseObject.getResponseResult(), B_$q$.b);
if (BaseUtils.getLocalVersion(B_$q$.this.a, B_$q$.b).equals(versionFromJsonString)) {
return;
}
AnalyticsUtil.trackEvent(AnalyticsEvent.OTPELF_UPDATE_CALLED);
Q$$U_.a(g__v_.a().getOtpElfJsUrl(), new Callback() {
@Override
public final void run(ResponseObject responseObject2) {
String decryptFile;
if (responseObject2.getResponseResult() == null || (decryptFile = BaseUtils.decryptFile(responseObject2.getResponseResult())) == null) {
return;
}
if (!BaseUtils.storeFileInInternal(B_$q$.this.a, BaseUtils.getVersionedAssetName(versionFromJsonString, g__v_.a().getOTPElfJsFileName()), responseObject2.getResponseResult())) {
AnalyticsUtil.trackEvent(AnalyticsEvent.OTPELF_LOCAL_SAVE_FAILED);
} else {
B_$q$.this.c = decryptFile;
BaseUtils.updateLocalVersion(B_$q$.this.a, B_$q$.b, versionFromJsonString);
}
}
});
} catch (Exception unused) {
AnalyticsUtil.reportError(J$$A_.class.getName(), "S1", "Could not extract version from server json");
Log.e("com.razorpay.checkout", "Could not extract version from server json");
}
}
});
setup();
AnalyticsUtil.addProperty("OTPElf Version", new AnalyticsProperty(BaseUtils.getLocalVersion(activity, B_$q$.b), AnalyticsProperty.Scope.ORDER));
}
}
private void handleJsInsertion() {
try {
JSONObject oTPElfSettings = g__v_.a().getOTPElfSettings();
oTPElfSettings.put("merchant_key", this.merchantKey);
oTPElfSettings.put("otp_permission", this.hasOtpPermission);
JSONObject jSONObject = new JSONObject();
jSONObject.put("type", this.sdkType);
jSONObject.put("version", this.sdkVersion);
jSONObject.put(PayUtility.PLATFORM, "android");
jSONObject.put("framework", "native");
jSONObject.put("name", this.sdkType + "_android_native");
oTPElfSettings.put("sdk", jSONObject);
JSONObject jSONObject2 = new JSONObject();
if (this.isMagic) {
jSONObject2.put("type", "magic");
jSONObject2.put("version_code", L__R$.c.intValue());
} else {
jSONObject2.put("type", "rzpassist");
jSONObject2.put("version_code", L__R$.b.intValue());
}
oTPElfSettings.put("plugin", jSONObject2);
oTPElfSettings.put("payment_data", this.paymentData);
oTPElfSettings.put("preferences", this.otpElfPreferences);
JSONObject jSONObject3 = new JSONObject();
jSONObject3.put("package_name", this.activity.getApplicationContext().getPackageName());
PackageManager packageManager = this.activity.getPackageManager();
jSONObject3.put("app_name", AnalyticsUtil.returnUndefinedIfNull(packageManager.getPackageInfo(this.activity.getPackageName(), 0).applicationInfo.loadLabel(packageManager)));
jSONObject3.put(PayUtility.PLATFORM, "mobile_sdk");
jSONObject3.put("os", "android");
jSONObject3.put("os_version", Build.VERSION.RELEASE);
jSONObject3.put("data_network_type", BaseUtils.getDataNetworkType(this.activity).getNetworkTypeName());
jSONObject3.put("framework", AnalyticsUtil.getFramework());
jSONObject3.put("library", "standard");
jSONObject3.put("sdk", jSONObject);
oTPElfSettings.put("metadata", jSONObject3);
injectJs("window.__rzp_options = " + oTPElfSettings.toString());
} catch (Exception e) {
d__1_.a("Unable to load otpelf settings", e);
}
injectJs(this.elfData.a());
AnalyticsUtil.trackEvent(AnalyticsEvent.OTPELF_INJECTED);
String str = this.lastSms;
if (str != null) {
injectJs(q.a("OTPElf.showOTP('", str, "','", this.sender, "')"));
this.lastSms = null;
}
}
private void injectJs(String str) {
this.webview.loadUrl("javascript: " + str);
}
private void postStatsToAPI() {
try {
String constructBasicAuth = BaseUtils.constructBasicAuth(this.merchantKey);
HashMap hashMap = new HashMap();
hashMap.put("Authorization", "Basic " + constructBasicAuth);
hashMap.put(SDKConstants.CONTENT_TYPE, SDKConstants.APPLICATION_JSON);
if (this.paymentId == null) {
return;
}
Q$$U_.a("https://api.razorpay.com/v1/payments/" + this.paymentId + "/metadata", B$$W$.a(this.otpRead).toString(), hashMap, new Callback(this) {
@Override
public final void run(ResponseObject responseObject) {
responseObject.getResponseResult();
}
});
} catch (Exception e) {
AnalyticsUtil.reportError("RzpAssist", "S0", e.getMessage());
}
}
private void setup() {
c$_2_ a = c$_2_.a();
this.smsAgent = a;
a.a.add(this);
c$_2_ c__2_ = this.smsAgent;
if (a.checkSelfPermission(this.activity, "android.permission.RECEIVE_SMS") == 0) {
c__2_.a(true);
c__2_.b();
AnalyticsUtil.trackEvent(AnalyticsEvent.SMS_PERMISSION_ALREADY_GRANTED);
} else {
AnalyticsUtil.trackEvent(AnalyticsEvent.SMS_PERMISSION_ALREADY_NOT_GRANTED);
}
this.webview.addJavascriptInterface(this, "OTPElfBridge");
this.webview.getSettings().setUseWideViewPort(true);
}
@JavascriptInterface
public final void copyToClipboard(String str) {
((ClipboardManager) this.activity.getSystemService("clipboard")).setPrimaryClip(ClipData.newPlainText("rzp_clip_data", str));
}
public final void enableMagic() {
this.isMagic = true;
}
public final String getCurrentLoadingUrl() {
return this.currentLoadingUrl;
}
public final String getLastLoadedUrl() {
return this.lastURL;
}
public final boolean isRazorpayOtpReceived() {
return this.isRazorpayOtpReceived;
}
@JavascriptInterface
public final void onOtpParsed(final String str) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
try {
JSONObject jSONObject = new JSONObject(str);
OTP otp = new OTP(jSONObject.getString(SDKConstants.KEY_OTP), jSONObject.getString("sender"), jSONObject.getString("bank"));
HashMap hashMap = new HashMap();
hashMap.put("sender", otp.a);
if (otp.a.contains("RZRPAY")) {
RzpAssist.this.isRazorpayOtpReceived = true;
hashMap.put("razorpay_otp", Boolean.TRUE);
} else {
hashMap.put("razorpay_otp", Boolean.FALSE);
RzpAssist.this.otpRead = true;
AnalyticsUtil.addProperty("payment_otp_received", new AnalyticsProperty(true, AnalyticsProperty.Scope.PAYMENT));
}
AnalyticsUtil.trackEvent(AnalyticsEvent.OTP_RECEIVED, AnalyticsUtil.getJSONResponse(hashMap));
} catch (Exception e) {
d__1_.a("Error in parsing json", e);
}
}
});
}
public final void onPageFinished(WebView webView, String str) {
AnalyticsUtil.trackPageLoadEnd(str, System.nanoTime() - this.pageStartTime);
this.lastURL = str;
this.currentLoadingUrl = "";
if (g__v_.a().isOTPElfEnabled().booleanValue() && !this.jsInsertedInCurrentPage) {
handleJsInsertion();
this.jsInsertedInCurrentPage = true;
}
}
public final void onPageStarted(WebView webView, String str) {
AnalyticsUtil.trackPageLoadStart(str);
this.pageStartTime = System.nanoTime();
this.currentLoadingUrl = str;
this.jsInsertedInCurrentPage = false;
}
public final void onProgressChanged(int i) {
g__v_.a().isOTPElfEnabled().booleanValue();
}
public final void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
c$_2_ c__2_ = this.smsAgent;
if (i != 1) {
return;
}
if (iArr.length <= 0 || iArr[0] != 0) {
c__2_.a(false);
AnalyticsUtil.trackEvent(AnalyticsEvent.SMS_PERMISSION_NOW_DENIED);
} else {
c__2_.a(true);
c__2_.b();
AnalyticsUtil.trackEvent(AnalyticsEvent.SMS_PERMISSION_NOW_GRANTED);
}
}
@JavascriptInterface
public final void openKeyboard() {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
Activity activity;
WebView webView;
activity = RzpAssist.this.activity;
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService("input_method");
webView = RzpAssist.this.webview;
inputMethodManager.showSoftInput(webView, 0);
}
});
}
public final void paymentFlowEnd() {
if (this.sdkType.equals("standalone")) {
AnalyticsUtil.postData();
}
if (g__v_.a().isOTPElfEnabled().booleanValue()) {
this.smsAgent.a(this.activity);
try {
this.smsAgent.a.remove(this);
} catch (Exception unused) {
}
}
}
@Override
public final void postSms(String str, String str2) {
if (this.isRzpAssistEnabled) {
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("sender", str);
jSONObject.put(BridgeHandler.MESSAGE, str2);
this.sender = str;
this.message = str2;
this.lastSms = jSONObject.toString();
injectJs("OTPElf.showOTP('" + str2 + "','" + str + "')");
} catch (Exception e) {
d__1_.a("Exception", e);
}
}
}
public final void reset() {
postStatsToAPI();
this.lastURL = "";
this.currentLoadingUrl = "";
this.otpRead = false;
}
public final void setOTPEnabled(boolean z) {
this.hasOtpPermission = z;
AnalyticsUtil.addProperty("otp_autoreading_access", new AnalyticsProperty(z, AnalyticsProperty.Scope.ORDER));
}
public final void setOtpElfPreferences(JSONObject jSONObject) {
this.otpElfPreferences = jSONObject;
}
public final void setPaymentData(JSONObject jSONObject) {
this.paymentData = jSONObject;
}
public final void setPaymentId(String str) {
this.paymentId = str;
}
public final void setRzpAssistEnabled(boolean z) {
this.isRzpAssistEnabled = z;
}
@Override
public final void setSmsPermission(boolean z) {
setOTPEnabled(z);
}
@JavascriptInterface
public final void setUseWideViewPort(final boolean z) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
WebView webView;
webView = RzpAssist.this.webview;
webView.getSettings().setUseWideViewPort(z);
}
});
}
@JavascriptInterface
public final void toast(final String str) {
this.activity.runOnUiThread(new Runnable() {
@Override
public final void run() {
Activity activity;
activity = RzpAssist.this.activity;
Toast.makeText(activity, str, 1).show();
}
});
}
@JavascriptInterface
public final void trackEvent(String str, String str2) {
try {
AnalyticsEvent analyticsEvent = AnalyticsEvent.JS_EVENT;
analyticsEvent.setEventName(str);
AnalyticsUtil.trackEvent(analyticsEvent, new JSONObject(str2));
} catch (Exception e) {
d__1_.a("Error in tracking JS Event", e);
}
}
@JavascriptInterface
public final void trackEvent(String str) {
AnalyticsEvent analyticsEvent = AnalyticsEvent.JS_EVENT;
analyticsEvent.setEventName(str);
AnalyticsUtil.trackEvent(analyticsEvent);
}
}