Checkout.smali

.class public Lcom/razorpay/Checkout;
.super Landroid/app/Fragment;
.source "Checkout.java"


# static fields
.field static final EVENT_CALLBACK_DNE:Ljava/lang/String; = "dne"

.field static final EVENT_CALLBACK_THREW_ERROR:Ljava/lang/String; = "threw_error"

.field static final EXTERNAL_WALLET:I = 0x4

.field public static final INCOMPATIBLE_PLUGIN:I = 0x7

.field static final INTEGRATION_ONE:I = 0x1

.field static final INTEGRATION_THREE:I = 0x3

.field static final INTEGRATION_TWO:I = 0x2

.field public static final INVALID_OPTIONS:I = 0x3

.field public static final NETWORK_ERROR:I = 0x2

.field public static final PAYMENT_CANCELED:I = 0x0

.field static final PAYMENT_SUCCESS:I = 0x1

.field public static final RZP_REQUEST_CODE:I = 0xf3ea

.field public static final TLS_ERROR:I = 0x6

.field private static paymentData:Lcom/razorpay/PaymentData;

.field private static sPreloadAbortDuration:J

.field private static sPreloadCompleteDuration:J

.field private static sPreloadFailed:Z

.field private static sPreloadView:Landroid/webkit/WebView;


# instance fields
.field private checkoutImage:I

.field private disableFullScreen:Z

.field private isMethodOverridden:Z

.field private key:Ljava/lang/String;

.field private merchantActivity:Landroid/app/Activity;

.field private merchantClassName:Ljava/lang/String;

.field private options:Lorg/json/JSONObject;


# direct methods
.method public constructor <init>()V
    .registers 1

    .line 28
    invoke-direct {p0}, Landroid/app/Fragment;-><init>()V

    return-void
.end method

.method private static abortPreloadIfRequired()V
    .registers 4

    .line 289
    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v0

    .line 292
    :try_start_4
    sget-object v2, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    if-eqz v2, :cond_2c

    .line 293
    invoke-virtual {v2}, Landroid/webkit/WebView;->getTag()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Long;

    invoke-virtual {v2}, Ljava/lang/Long;->longValue()J

    move-result-wide v2

    sub-long/2addr v0, v2

    .line 294
    sput-wide v0, Lcom/razorpay/Checkout;->sPreloadAbortDuration:J

    .line 302
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "Preload aborted in "

    invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    sget-wide v1, Lcom/razorpay/Checkout;->sPreloadAbortDuration:J

    const/4 v3, 0x2

    .line 303
    invoke-static {v1, v2, v3}, Lcom/razorpay/BaseUtils;->nanoTimeToSecondsString(JI)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, " sec."

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    :try_end_2c
    .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_2c} :catch_2c

    .line 308
    :catch_2c
    :cond_2c
    invoke-static {}, Lcom/razorpay/Checkout;->destroyPreloadView()V

    return-void
.end method

.method static synthetic access$000(Lcom/razorpay/Checkout;Landroid/app/Activity;Lorg/json/JSONObject;)V
    .registers 3

    .line 28
    invoke-direct {p0, p1, p2}, Lcom/razorpay/Checkout;->openInternal(Landroid/app/Activity;Lorg/json/JSONObject;)V

    return-void
.end method

.method static synthetic access$100()Landroid/webkit/WebView;
    .registers 1

    .line 28
    sget-object v0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    return-object v0
.end method

.method static synthetic access$200()V
    .registers 0

    .line 28
    invoke-static {}, Lcom/razorpay/Checkout;->failPreload()V

    return-void
.end method

.method static synthetic access$300()Z
    .registers 1

    .line 28
    sget-boolean v0, Lcom/razorpay/Checkout;->sPreloadFailed:Z

    return v0
.end method

.method static synthetic access$400()J
    .registers 2

    .line 28
    sget-wide v0, Lcom/razorpay/Checkout;->sPreloadCompleteDuration:J

    return-wide v0
.end method

.method static synthetic access$402(J)J
    .registers 2

    .line 28
    sput-wide p0, Lcom/razorpay/Checkout;->sPreloadCompleteDuration:J

    return-wide p0
.end method

.method static synthetic access$500()V
    .registers 0

    .line 28
    invoke-static {}, Lcom/razorpay/Checkout;->destroyPreloadView()V

    return-void
.end method

.method public static clearUserData(Landroid/content/Context;)V
    .registers 3

    const/4 v0, 0x0

    .line 1371
    invoke-static {p0, v0}, Lcom/razorpay/CheckoutUtils;->b(Landroid/content/Context;Ljava/lang/String;)V

    .line 1372
    invoke-static {p0, v0}, Lcom/razorpay/CheckoutUtils;->a(Landroid/content/Context;Ljava/lang/String;)V

    .line 1373
    invoke-static {p0, v0}, Lcom/razorpay/f$_G$;->a(Landroid/content/Context;Ljava/lang/String;)V

    .line 1383
    invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;

    move-result-object p0

    const-string v0, "https://api.razorpay.com"

    const-string v1, "razorpay_api_session="

    .line 1384
    invoke-virtual {p0, v0, v1}, Landroid/webkit/CookieManager;->setCookie(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method private static createPaymentData(Landroid/app/Activity;Ljava/lang/String;)V
    .registers 9

    const-string v0, "external_wallet"

    const-string v1, "razorpay_signature"

    const-string v2, "razorpay_order_id"

    const-string v3, "razorpay_payment_id"

    const-string v4, "error"

    .line 639
    new-instance v5, Lcom/razorpay/PaymentData;

    invoke-direct {v5}, Lcom/razorpay/PaymentData;-><init>()V

    .line 640
    sput-object v5, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-static {p0}, Lcom/razorpay/CheckoutUtils;->b(Landroid/content/Context;)Ljava/lang/String;

    move-result-object v6

    invoke-virtual {v5, v6}, Lcom/razorpay/PaymentData;->setUserContact(Ljava/lang/String;)V

    .line 641
    sget-object v5, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-static {p0}, Lcom/razorpay/CheckoutUtils;->a(Landroid/content/Context;)Ljava/lang/String;

    move-result-object p0

    invoke-virtual {v5, p0}, Lcom/razorpay/PaymentData;->setUserEmail(Ljava/lang/String;)V

    .line 643
    :try_start_21
    new-instance p0, Lorg/json/JSONObject;

    invoke-direct {p0, p1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    .line 644
    invoke-virtual {p0, v4}, Lorg/json/JSONObject;->optJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v5

    if-eqz v5, :cond_3e

    .line 645
    new-instance v5, Lorg/json/JSONObject;

    invoke-direct {v5}, Lorg/json/JSONObject;-><init>()V

    .line 646
    invoke-virtual {p0, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object v6

    invoke-virtual {v5, v4, v6}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    .line 647
    sget-object v6, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {v6, v5}, Lcom/razorpay/PaymentData;->setData(Lorg/json/JSONObject;)V

    goto :goto_43

    .line 649
    :cond_3e
    sget-object v5, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {v5, p0}, Lcom/razorpay/PaymentData;->setData(Lorg/json/JSONObject;)V

    .line 651
    :goto_43
    invoke-virtual {p0, v3}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result v5

    if-eqz v5, :cond_52

    .line 652
    sget-object v5, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p0, v3}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v5, v3}, Lcom/razorpay/PaymentData;->setPaymentId(Ljava/lang/String;)V

    .line 654
    :cond_52
    invoke-virtual {p0, v2}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_61

    .line 655
    sget-object v3, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p0, v2}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v3, v2}, Lcom/razorpay/PaymentData;->setOrderId(Ljava/lang/String;)V

    .line 657
    :cond_61
    invoke-virtual {p0, v1}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_70

    .line 658
    sget-object v2, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p0, v1}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v2, v1}, Lcom/razorpay/PaymentData;->setSignature(Ljava/lang/String;)V

    .line 660
    :cond_70
    invoke-virtual {p0, v0}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_7f

    .line 661
    sget-object v1, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p0, v0}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    invoke-virtual {v1, p0}, Lcom/razorpay/PaymentData;->setExternalWallet(Ljava/lang/String;)V
    :try_end_7f
    .catch Lorg/json/JSONException; {:try_start_21 .. :try_end_7f} :catch_80

    :cond_7f
    return-void

    :catch_80
    move-exception p0

    .line 664
    new-instance v0, Lorg/json/JSONObject;

    invoke-direct {v0}, Lorg/json/JSONObject;-><init>()V

    .line 665
    new-instance v1, Lorg/json/JSONObject;

    invoke-direct {v1}, Lorg/json/JSONObject;-><init>()V

    :try_start_8b
    const-string v2, "code"

    const-string v3, "RESPONSE"

    .line 667
    invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    const-string v2, "description"

    .line 668
    invoke-virtual {v1, v2, p1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    .line 669
    invoke-virtual {v0, v4, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
    :try_end_9a
    .catch Lorg/json/JSONException; {:try_start_8b .. :try_end_9a} :catch_9a

    .line 673
    :catch_9a
    invoke-virtual {p0}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object p0

    const-string v0, "S2"

    invoke-static {p1, v0, p0}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method private static destroyPreloadView()V
    .registers 1

    .line 278
    :try_start_0
    sget-object v0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    invoke-virtual {v0}, Landroid/webkit/WebView;->stopLoading()V
    :try_end_5
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_5} :catch_5

    :catch_5
    const/4 v0, 0x0

    .line 285
    sput-object v0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    return-void
.end method

.method private static failPreload()V
    .registers 1

    const/4 v0, 0x1

    .line 273
    sput-boolean v0, Lcom/razorpay/Checkout;->sPreloadFailed:Z

    return-void
.end method

.method private varargs getMerchantClassMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
    .registers 4

    .line 561
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantClassName:Ljava/lang/String;

    invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;

    move-result-object v0

    .line 562
    invoke-virtual {v0, p1, p2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object p1

    return-object p1
.end method

.method private static getPaymentResult(Landroid/content/Intent;)Ljava/lang/String;
    .registers 2

    if-eqz p0, :cond_f

    .line 744
    invoke-virtual {p0}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;

    move-result-object p0

    if-eqz p0, :cond_f

    const-string v0, "RESULT"

    .line 746
    invoke-virtual {p0, v0}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p0

    return-object p0

    :cond_f
    const/4 p0, 0x0

    return-object p0
.end method

.method public static handleActivityResult(Landroid/app/Activity;IILandroid/content/Intent;Lcom/razorpay/PaymentResultWithDataListener;Lcom/razorpay/ExternalWalletListener;)V
    .registers 10

    const-string v0, "metadata"

    const-string v1, ""

    const-string v2, "error"

    const v3, 0xf3ea

    if-eq p1, v3, :cond_c

    return-void

    .line 680
    :cond_c
    invoke-static {p3}, Lcom/razorpay/Checkout;->getPaymentResult(Landroid/content/Intent;)Ljava/lang/String;

    move-result-object p1

    if-eqz p1, :cond_18

    .line 683
    invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result p3

    if-eqz p3, :cond_1a

    :cond_18
    const-string p1, "Payment Error"

    :cond_1a
    const-string p3, "cancelled"

    .line 688
    invoke-virtual {p1, p3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result p3

    if-eqz p3, :cond_83

    .line 690
    :try_start_22
    new-instance p3, Lorg/json/JSONObject;

    invoke-direct {p3, p1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    .line 691
    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result p1

    if-eqz p1, :cond_4a

    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-virtual {p1, v0}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result p1

    if-eqz p1, :cond_4a

    .line 692
    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    const-string p3, "payment_id"

    invoke-virtual {p1, p3}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    invoke-static {p1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    goto :goto_83

    .line 694
    :cond_4a
    invoke-static {v1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1
    :try_end_4e
    .catch Lorg/json/JSONException; {:try_start_22 .. :try_end_4e} :catch_4f

    goto :goto_83

    :catch_4f
    move-exception p1

    .line 697
    invoke-virtual {p1}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object p3

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {p1}, Lorg/json/JSONException;->getStackTrace()[Ljava/lang/StackTraceElement;

    move-result-object v2

    const/4 v3, 0x0

    aget-object v2, v2, v3

    invoke-virtual {v2}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v2, ":"

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {p1}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    const-string v0, "S1"

    invoke-static {p3, v0, p1}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    .line 698
    invoke-static {v1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    .line 703
    :cond_83
    :goto_83
    invoke-static {p0, p1}, Lcom/razorpay/Checkout;->createPaymentData(Landroid/app/Activity;Ljava/lang/String;)V

    .line 706
    invoke-static {p2, p1}, Lcom/razorpay/Checkout;->trackOnActivityResultEvent(ILjava/lang/String;)V

    const/4 p3, 0x1

    const-string v0, "threw_error"

    if-ne p2, p3, :cond_9f

    .line 709
    :try_start_8e
    sget-object p1, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p1}, Lcom/razorpay/PaymentData;->getPaymentId()Ljava/lang/String;

    move-result-object p1

    .line 710
    sget-object p3, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {p4, p1, p3}, Lcom/razorpay/PaymentResultWithDataListener;->onPaymentSuccess(Ljava/lang/String;Lcom/razorpay/PaymentData;)V
    :try_end_99
    .catch Ljava/lang/Exception; {:try_start_8e .. :try_end_99} :catch_9a

    return-void

    :catch_9a
    move-exception p1

    .line 712
    invoke-static {p0, p2, v0, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void

    :cond_9f
    const/4 p3, 0x4

    if-ne p2, p3, :cond_b5

    if-eqz p5, :cond_bf

    .line 718
    :try_start_a4
    sget-object p1, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {p1}, Lcom/razorpay/PaymentData;->getExternalWallet()Ljava/lang/String;

    move-result-object p1

    sget-object p3, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {p5, p1, p3}, Lcom/razorpay/ExternalWalletListener;->onExternalWalletSelected(Ljava/lang/String;Lcom/razorpay/PaymentData;)V
    :try_end_af
    .catch Ljava/lang/Exception; {:try_start_a4 .. :try_end_af} :catch_b0

    return-void

    :catch_b0
    move-exception p1

    .line 720
    invoke-static {p0, p2, v0, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void

    .line 726
    :cond_b5
    :try_start_b5
    sget-object p3, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {p4, p2, p1, p3}, Lcom/razorpay/PaymentResultWithDataListener;->onPaymentError(ILjava/lang/String;Lcom/razorpay/PaymentData;)V
    :try_end_ba
    .catch Ljava/lang/Exception; {:try_start_b5 .. :try_end_ba} :catch_bb

    return-void

    :catch_bb
    move-exception p1

    .line 728
    invoke-static {p0, p2, v0, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    :cond_bf
    return-void
.end method

.method private handleExternalWalletSelected()V
    .registers 5

    .line 394
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    instance-of v0, v0, Lcom/razorpay/ExternalWalletListener;

    const/4 v1, 0x4

    if-eqz v0, :cond_32

    .line 396
    :try_start_9
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    check-cast v0, Lcom/razorpay/ExternalWalletListener;

    .line 397
    sget-object v2, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {v2}, Lcom/razorpay/PaymentData;->getExternalWallet()Ljava/lang/String;

    move-result-object v2

    .line 398
    invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v3

    if-nez v3, :cond_28

    .line 399
    sget-object v3, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {v0, v2, v3}, Lcom/razorpay/ExternalWalletListener;->onExternalWalletSelected(Ljava/lang/String;Lcom/razorpay/PaymentData;)V

    .line 400
    sget-object v0, Lcom/razorpay/AnalyticsEvent;->MERCHANT_EXTERNAL_WALLET_SELECTED_CALLED:Lcom/razorpay/AnalyticsEvent;

    invoke-static {v0}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;)V

    .line 401
    invoke-static {}, Lcom/razorpay/AnalyticsUtil;->postData()V
    :try_end_28
    .catch Ljava/lang/Exception; {:try_start_9 .. :try_end_28} :catch_29

    :cond_28
    return-void

    :catch_29
    move-exception v0

    .line 404
    iget-object v2, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    const-string v3, "threw_error"

    invoke-static {v2, v1, v3, v0}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void

    .line 408
    :cond_32
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    new-instance v2, Ljava/lang/Exception;

    invoke-direct {v2}, Ljava/lang/Exception;-><init>()V

    const-string v3, "dne"

    invoke-static {v0, v1, v3, v2}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void
.end method

.method private static handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V
    .registers 10

    const/4 v0, 0x4

    const/4 v1, 0x1

    if-ne p1, v1, :cond_9

    const-string v1, "onPaymentSuccess"

    const-string v2, "success"

    goto :goto_14

    :cond_9
    if-ne p1, v0, :cond_10

    const-string v1, "onExternalWalletSelected"

    const-string v2, "redirected"

    goto :goto_14

    :cond_10
    const-string v1, "onPaymentError"

    const-string v2, "error"

    .line 617
    :goto_14
    :try_start_14
    new-instance v3, Ljava/util/HashMap;

    invoke-direct {v3}, Ljava/util/HashMap;-><init>()V

    const-string v4, "event_details"

    .line 618
    invoke-virtual {p3}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v5

    invoke-virtual {v3, v4, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string v4, "event_type"

    .line 619
    invoke-virtual {p3}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p3

    invoke-virtual {v3, v4, p3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string p3, "payment_status"

    .line 620
    invoke-virtual {v3, p3, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 621
    sget-object p3, Lcom/razorpay/AnalyticsEvent;->HANDOVER_ERROR:Lcom/razorpay/AnalyticsEvent;

    invoke-static {v3}, Lcom/razorpay/AnalyticsUtil;->getJSONResponse(Ljava/util/Map;)Lorg/json/JSONObject;

    move-result-object v2

    invoke-static {p3, v2}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;Lorg/json/JSONObject;)V

    .line 622
    invoke-static {}, Lcom/razorpay/AnalyticsUtil;->postData()V
    :try_end_3c
    .catch Ljava/lang/Exception; {:try_start_14 .. :try_end_3c} :catch_3d

    goto :goto_4b

    :catch_3d
    move-exception p3

    .line 624
    invoke-virtual {p3}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p3}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p3

    const-string v3, "S0"

    invoke-static {v2, v3, p3}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    :goto_4b
    const-string p3, "dne"

    .line 626
    invoke-virtual {p2, p3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result p3

    const/4 v2, 0x0

    if-eqz p3, :cond_7d

    if-ne p1, v0, :cond_60

    const-string p1, "Error: ExternalWalletListener probably not implemented in your activity"

    .line 628
    invoke-static {p0, p1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object p0

    invoke-virtual {p0}, Landroid/widget/Toast;->show()V

    return-void

    .line 630
    :cond_60
    new-instance p1, Ljava/lang/StringBuilder;

    const-string p2, "Error: "

    invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object p1

    const-string p2, " probably not implemented in your activity"

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-static {p0, p1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object p0

    invoke-virtual {p0}, Landroid/widget/Toast;->show()V

    return-void

    :cond_7d
    const-string p1, "threw_error"

    .line 633
    invoke-virtual {p2, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result p1

    if-eqz p1, :cond_a1

    .line 634
    new-instance p1, Ljava/lang/StringBuilder;

    const-string p2, "Your "

    invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object p1

    const-string p2, " method is throwing an error. Wrap the entire code of the method inside a try catch."

    invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-static {p0, p1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object p0

    invoke-virtual {p0}, Landroid/widget/Toast;->show()V

    :cond_a1
    return-void
.end method

.method private handleOnError(ILjava/lang/String;)V
    .registers 4

    const/4 v0, 0x1

    .line 421
    iput-boolean v0, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    .line 422
    invoke-virtual {p0, p1, p2}, Lcom/razorpay/Checkout;->onError(ILjava/lang/String;)V

    .line 423
    iget-boolean p2, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    if-eqz p2, :cond_d

    .line 424
    invoke-static {p1, v0}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V

    :cond_d
    return-void
.end method

.method private handleOnErrorViaInterface(ILjava/lang/String;)Z
    .registers 8

    .line 486
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    instance-of v0, v0, Lcom/razorpay/PaymentResultListener;

    const/4 v1, 0x3

    const/4 v2, 0x1

    const-string v3, "threw_error"

    if-eqz v0, :cond_20

    .line 488
    :try_start_c
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    check-cast v0, Lcom/razorpay/PaymentResultListener;

    .line 489
    invoke-interface {v0, p1, p2}, Lcom/razorpay/PaymentResultListener;->onPaymentError(ILjava/lang/String;)V

    .line 490
    invoke-static {p1, v1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_18
    .catch Ljava/lang/Exception; {:try_start_c .. :try_end_18} :catch_19

    goto :goto_1f

    :catch_19
    move-exception p2

    .line 492
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-static {v0, p1, v3, p2}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    :goto_1f
    return v2

    .line 497
    :cond_20
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    instance-of v0, v0, Lcom/razorpay/PaymentResultWithDataListener;

    if-eqz v0, :cond_3e

    .line 499
    :try_start_28
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    check-cast v0, Lcom/razorpay/PaymentResultWithDataListener;

    .line 500
    sget-object v4, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {v0, p1, p2, v4}, Lcom/razorpay/PaymentResultWithDataListener;->onPaymentError(ILjava/lang/String;Lcom/razorpay/PaymentData;)V

    .line 501
    invoke-static {p1, v1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_36
    .catch Ljava/lang/Exception; {:try_start_28 .. :try_end_36} :catch_37

    goto :goto_3d

    :catch_37
    move-exception p2

    .line 503
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-static {v0, p1, v3, p2}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    :goto_3d
    return v2

    :cond_3e
    const/4 p1, 0x0

    return p1
.end method

.method private handleOnErrorViaReflection(ILjava/lang/String;)V
    .registers 9

    const/4 v0, 0x1

    const/4 v1, 0x0

    const/4 v2, 0x2

    :try_start_3
    const-string v3, "onPaymentError"

    new-array v4, v2, [Ljava/lang/Class;

    .line 472
    sget-object v5, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    aput-object v5, v4, v1

    const-class v5, Ljava/lang/String;

    aput-object v5, v4, v0

    invoke-direct {p0, v3, v4}, Lcom/razorpay/Checkout;->getMerchantClassMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v3
    :try_end_13
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_13} :catch_14

    goto :goto_1d

    :catch_14
    move-exception v3

    .line 474
    iget-object v4, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    const-string v5, "dne"

    invoke-static {v4, p1, v5, v3}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    const/4 v3, 0x0

    :goto_1d
    :try_start_1d
    new-array v4, v2, [Ljava/lang/Object;

    .line 478
    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v5

    aput-object v5, v4, v1

    aput-object p2, v4, v0

    invoke-direct {p0, v3, v4}, Lcom/razorpay/Checkout;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V

    .line 479
    invoke-static {p1, v2}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_2d
    .catch Ljava/lang/Exception; {:try_start_1d .. :try_end_2d} :catch_2e

    return-void

    :catch_2e
    move-exception p2

    .line 481
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    const-string v1, "threw_error"

    invoke-static {v0, p1, v1, p2}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void
.end method

.method private handleOnSuccess()V
    .registers 3

    .line 430
    sget-object v0, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-virtual {v0}, Lcom/razorpay/PaymentData;->getPaymentId()Ljava/lang/String;

    move-result-object v0

    const/4 v1, 0x1

    if-eqz v0, :cond_e

    .line 439
    iput-boolean v1, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    .line 440
    invoke-virtual {p0, v0}, Lcom/razorpay/Checkout;->onSuccess(Ljava/lang/String;)V

    .line 442
    :cond_e
    iget-boolean v0, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    if-eqz v0, :cond_15

    .line 443
    invoke-static {v1, v1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V

    :cond_15
    return-void
.end method

.method private handleOnSuccessViaInterface(Ljava/lang/String;)Z
    .registers 7

    .line 512
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    instance-of v0, v0, Lcom/razorpay/PaymentResultListener;

    const/4 v1, 0x3

    const-string v2, "threw_error"

    const/4 v3, 0x1

    if-eqz v0, :cond_20

    .line 514
    :try_start_c
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    check-cast v0, Lcom/razorpay/PaymentResultListener;

    .line 515
    invoke-interface {v0, p1}, Lcom/razorpay/PaymentResultListener;->onPaymentSuccess(Ljava/lang/String;)V

    .line 516
    invoke-static {v3, v1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_18
    .catch Ljava/lang/Exception; {:try_start_c .. :try_end_18} :catch_19

    goto :goto_1f

    :catch_19
    move-exception p1

    .line 518
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-static {v0, v3, v2, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    :goto_1f
    return v3

    .line 523
    :cond_20
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    instance-of v0, v0, Lcom/razorpay/PaymentResultWithDataListener;

    if-eqz v0, :cond_3e

    .line 525
    :try_start_28
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v0

    check-cast v0, Lcom/razorpay/PaymentResultWithDataListener;

    .line 526
    sget-object v4, Lcom/razorpay/Checkout;->paymentData:Lcom/razorpay/PaymentData;

    invoke-interface {v0, p1, v4}, Lcom/razorpay/PaymentResultWithDataListener;->onPaymentSuccess(Ljava/lang/String;Lcom/razorpay/PaymentData;)V

    .line 527
    invoke-static {v3, v1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_36
    .catch Ljava/lang/Exception; {:try_start_28 .. :try_end_36} :catch_37

    goto :goto_3d

    :catch_37
    move-exception p1

    .line 529
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-static {v0, v3, v2, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    :goto_3d
    return v3

    :cond_3e
    const/4 p1, 0x0

    return p1
.end method

.method private handleOnSuccessViaReflection(Ljava/lang/String;)V
    .registers 7

    const/4 v0, 0x0

    const/4 v1, 0x1

    :try_start_2
    const-string v2, "onPaymentSuccess"

    new-array v3, v1, [Ljava/lang/Class;

    .line 540
    const-class v4, Ljava/lang/String;

    aput-object v4, v3, v0

    invoke-direct {p0, v2, v3}, Lcom/razorpay/Checkout;->getMerchantClassMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v2
    :try_end_e
    .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_e} :catch_f

    goto :goto_18

    :catch_f
    move-exception v2

    .line 542
    iget-object v3, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    const-string v4, "dne"

    invoke-static {v3, v1, v4, v2}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    const/4 v2, 0x0

    :goto_18
    :try_start_18
    new-array v3, v1, [Ljava/lang/Object;

    aput-object p1, v3, v0

    .line 546
    invoke-direct {p0, v2, v3}, Lcom/razorpay/Checkout;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V

    const/4 p1, 0x2

    .line 547
    invoke-static {v1, p1}, Lcom/razorpay/Checkout;->trackIntegrationType(II)V
    :try_end_23
    .catch Ljava/lang/Exception; {:try_start_18 .. :try_end_23} :catch_24

    return-void

    :catch_24
    move-exception p1

    .line 549
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    const-string v2, "threw_error"

    invoke-static {v0, v1, v2, p1}, Lcom/razorpay/Checkout;->handleMerchantCallbackError(Landroid/app/Activity;ILjava/lang/String;Ljava/lang/Exception;)V

    return-void
.end method

.method private varargs invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
    .registers 4

    if-nez p1, :cond_3

    return-void

    .line 557
    :cond_3
    iget-object v0, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-virtual {p1, v0, p2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;

    return-void
.end method

.method private openInternal(Landroid/app/Activity;Lorg/json/JSONObject;)V
    .registers 6

    const-string v0, "S2"

    .line 157
    iget-object v1, p0, Lcom/razorpay/Checkout;->key:Ljava/lang/String;

    invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v1

    if-eqz v1, :cond_10

    .line 158
    invoke-static {p1}, Lcom/razorpay/BaseUtils;->getKeyId(Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    iput-object v1, p0, Lcom/razorpay/Checkout;->key:Ljava/lang/String;

    .line 161
    :cond_10
    invoke-static {p1}, Lcom/razorpay/n$_B$;->getAdvertisingIdFromUtil(Landroid/content/Context;)V

    .line 163
    iget-object v1, p0, Lcom/razorpay/Checkout;->key:Ljava/lang/String;

    invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v1

    if-nez v1, :cond_6c

    if-eqz p2, :cond_64

    .line 167
    invoke-virtual {p2}, Lorg/json/JSONObject;->length()I

    move-result v1

    if-eqz v1, :cond_64

    :try_start_23
    const-string v1, "key"

    .line 172
    iget-object v2, p0, Lcom/razorpay/Checkout;->key:Ljava/lang/String;

    invoke-virtual {p2, v1, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
    :try_end_2a
    .catch Lorg/json/JSONException; {:try_start_23 .. :try_end_2a} :catch_2b

    goto :goto_37

    :catch_2b
    move-exception v1

    .line 174
    invoke-virtual {v1}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1}, Lorg/json/JSONException;->getMessage()Ljava/lang/String;

    move-result-object v1

    invoke-static {v2, v0, v1}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    .line 183
    :goto_37
    invoke-static {}, Lcom/razorpay/Checkout;->abortPreloadIfRequired()V

    .line 185
    iput-object p2, p0, Lcom/razorpay/Checkout;->options:Lorg/json/JSONObject;

    .line 186
    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object p2

    invoke-virtual {p2}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object p2

    iput-object p2, p0, Lcom/razorpay/Checkout;->merchantClassName:Ljava/lang/String;

    .line 187
    iput-object p1, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    .line 189
    :try_start_48
    invoke-virtual {p1}, Landroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;

    move-result-object p1

    invoke-virtual {p1}, Landroid/app/FragmentManager;->beginTransaction()Landroid/app/FragmentTransaction;

    move-result-object p1

    const/4 p2, 0x0

    invoke-virtual {p1, p0, p2}, Landroid/app/FragmentTransaction;->add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;

    move-result-object p1

    invoke-virtual {p1}, Landroid/app/FragmentTransaction;->commitAllowingStateLoss()I
    :try_end_58
    .catch Ljava/lang/IllegalStateException; {:try_start_48 .. :try_end_58} :catch_59

    return-void

    :catch_59
    move-exception p1

    .line 191
    invoke-virtual {p1}, Ljava/lang/IllegalStateException;->getMessage()Ljava/lang/String;

    move-result-object p1

    const-string p2, "Checkout"

    invoke-static {p2, v0, p1}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    return-void

    .line 168
    :cond_64
    new-instance p1, Ljava/lang/RuntimeException;

    const-string p2, "Checkout options cannot be null or empty"

    invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw p1

    .line 164
    :cond_6c
    new-instance p1, Ljava/lang/RuntimeException;

    const-string p2, "Please set your Razorpay API key in AndroidManifest.xml"

    invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public static preload(Landroid/content/Context;)V
    .registers 3

    const-wide/16 v0, 0x0

    .line 197
    sput-wide v0, Lcom/razorpay/Checkout;->sPreloadCompleteDuration:J

    .line 198
    sput-wide v0, Lcom/razorpay/Checkout;->sPreloadAbortDuration:J

    const/4 v0, 0x0

    .line 199
    sput-boolean v0, Lcom/razorpay/Checkout;->sPreloadFailed:Z

    .line 201
    invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;

    move-result-object p0

    .line 203
    new-instance v1, Landroid/webkit/WebView;

    invoke-direct {v1, p0}, Landroid/webkit/WebView;-><init>(Landroid/content/Context;)V

    sput-object v1, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    .line 204
    invoke-static {p0, v1, v0}, Lcom/razorpay/BaseUtils;->setWebViewSettings(Landroid/content/Context;Landroid/webkit/WebView;Z)V

    .line 206
    sget-object p0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    new-instance v0, Lcom/razorpay/Checkout$2;

    invoke-direct {v0}, Lcom/razorpay/Checkout$2;-><init>()V

    invoke-virtual {p0, v0}, Landroid/webkit/WebView;->setWebViewClient(Landroid/webkit/WebViewClient;)V

    .line 262
    sget-object p0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    new-instance v0, Lcom/razorpay/l__d$;

    invoke-direct {v0}, Lcom/razorpay/l__d$;-><init>()V

    invoke-virtual {p0, v0}, Landroid/webkit/WebView;->setWebChromeClient(Landroid/webkit/WebChromeClient;)V

    .line 268
    sget-object p0, Lcom/razorpay/Checkout;->sPreloadView:Landroid/webkit/WebView;

    const-string v0, "https://api.razorpay.com/v1/checkout/public"

    invoke-virtual {p0, v0}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V

    return-void
.end method

.method public static sdkCheckIntegration(Landroid/app/Activity;)V
    .registers 2

    .line 756
    sget-object v0, Lcom/razorpay/OpinionatedSoln;->INSTANCE:Lcom/razorpay/OpinionatedSoln;

    invoke-virtual {v0, p0}, Lcom/razorpay/OpinionatedSoln;->integrationStatusCheck(Landroid/app/Activity;)V

    return-void
.end method

.method private sdkCheckIntegrationInternal(Landroid/app/Activity;Lcom/razorpay/OpinionatedSoln$DismissCallback;)V
    .registers 4

    .line 760
    sget-object v0, Lcom/razorpay/OpinionatedSoln;->INSTANCE:Lcom/razorpay/OpinionatedSoln;

    invoke-virtual {v0, p1, p2}, Lcom/razorpay/OpinionatedSoln;->integrationStatusCheck(Landroid/app/Activity;Lcom/razorpay/OpinionatedSoln$DismissCallback;)V

    return-void
.end method

.method private static trackIntegrationType(II)V
    .registers 4

    .line 568
    :try_start_0
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    const-string v1, "integration_type"

    .line 569
    invoke-static {p1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;

    move-result-object p1

    invoke-interface {v0, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const/4 p1, 0x1

    if-ne p0, p1, :cond_1b

    .line 571
    sget-object p0, Lcom/razorpay/AnalyticsEvent;->MERCHANT_ON_SUCCESS_CALLED:Lcom/razorpay/AnalyticsEvent;

    invoke-static {v0}, Lcom/razorpay/AnalyticsUtil;->getJSONResponse(Ljava/util/Map;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-static {p0, p1}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;Lorg/json/JSONObject;)V

    goto :goto_24

    .line 574
    :cond_1b
    sget-object p0, Lcom/razorpay/AnalyticsEvent;->MERCHANT_ON_ERROR_CALLED:Lcom/razorpay/AnalyticsEvent;

    invoke-static {v0}, Lcom/razorpay/AnalyticsUtil;->getJSONResponse(Ljava/util/Map;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-static {p0, p1}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;Lorg/json/JSONObject;)V

    .line 576
    :goto_24
    invoke-static {}, Lcom/razorpay/AnalyticsUtil;->postData()V
    :try_end_27
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_27} :catch_28

    return-void

    :catch_28
    move-exception p0

    .line 578
    invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p0

    const-string v0, "S2"

    invoke-static {p1, v0, p0}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method private static trackOnActivityResultEvent(ILjava/lang/String;)V
    .registers 5

    :try_start_0
    const-string v0, "onActivityResult result"

    .line 584
    new-instance v1, Lcom/razorpay/AnalyticsProperty;

    sget-object v2, Lcom/razorpay/AnalyticsProperty$Scope;->ORDER:Lcom/razorpay/AnalyticsProperty$Scope;

    invoke-direct {v1, p1, v2}, Lcom/razorpay/AnalyticsProperty;-><init>(Ljava/lang/String;Lcom/razorpay/AnalyticsProperty$Scope;)V

    invoke-static {v0, v1}, Lcom/razorpay/AnalyticsUtil;->addProperty(Ljava/lang/String;Lcom/razorpay/AnalyticsProperty;)V

    const-string p1, "onActivityResult resultCode"

    .line 585
    new-instance v0, Lcom/razorpay/AnalyticsProperty;

    invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v1

    sget-object v2, Lcom/razorpay/AnalyticsProperty$Scope;->ORDER:Lcom/razorpay/AnalyticsProperty$Scope;

    invoke-direct {v0, v1, v2}, Lcom/razorpay/AnalyticsProperty;-><init>(Ljava/lang/String;Lcom/razorpay/AnalyticsProperty$Scope;)V

    invoke-static {p1, v0}, Lcom/razorpay/AnalyticsUtil;->addProperty(Ljava/lang/String;Lcom/razorpay/AnalyticsProperty;)V

    const/4 p1, 0x1

    if-ne p0, p1, :cond_25

    .line 587
    sget-object p0, Lcom/razorpay/AnalyticsEvent;->CALLING_ON_SUCCESS:Lcom/razorpay/AnalyticsEvent;

    invoke-static {p0}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;)V

    goto :goto_33

    :cond_25
    const/4 p1, 0x4

    if-ne p0, p1, :cond_2e

    .line 589
    sget-object p0, Lcom/razorpay/AnalyticsEvent;->CALLING_EXTERNAL_WALLET_SELECTED:Lcom/razorpay/AnalyticsEvent;

    invoke-static {p0}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;)V

    goto :goto_33

    .line 591
    :cond_2e
    sget-object p0, Lcom/razorpay/AnalyticsEvent;->CALLING_ON_ERROR:Lcom/razorpay/AnalyticsEvent;

    invoke-static {p0}, Lcom/razorpay/AnalyticsUtil;->trackEvent(Lcom/razorpay/AnalyticsEvent;)V

    .line 593
    :goto_33
    invoke-static {}, Lcom/razorpay/AnalyticsUtil;->postData()V
    :try_end_36
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_36} :catch_37

    return-void

    :catch_37
    move-exception p0

    .line 595
    invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p1

    invoke-virtual {p0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p0

    const-string v0, "S2"

    invoke-static {p1, v0, p0}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method


# virtual methods
.method public onActivityResult(IILandroid/content/Intent;)V
    .registers 8

    const-string v0, "metadata"

    const-string v1, ""

    const-string v2, "error"

    const v3, 0xf3ea

    if-eq p1, v3, :cond_c

    return-void

    .line 349
    :cond_c
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object p1

    iput-object p1, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    .line 350
    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object p1

    invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object p1

    iput-object p1, p0, Lcom/razorpay/Checkout;->merchantClassName:Ljava/lang/String;

    .line 352
    invoke-static {p3}, Lcom/razorpay/Checkout;->getPaymentResult(Landroid/content/Intent;)Ljava/lang/String;

    move-result-object p1

    if-eqz p1, :cond_63

    .line 355
    invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result p3

    if-eqz p3, :cond_29

    goto :goto_63

    :cond_29
    const-string p3, "cancelled"

    .line 360
    invoke-virtual {p1, p3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result p3

    if-eqz p3, :cond_65

    .line 362
    :try_start_31
    new-instance p3, Lorg/json/JSONObject;

    invoke-direct {p3, p1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    .line 363
    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result p1

    if-eqz p1, :cond_59

    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-virtual {p1, v0}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z

    move-result p1

    if-eqz p1, :cond_59

    .line 364
    invoke-virtual {p3, v2}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    invoke-virtual {p1, v0}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;

    move-result-object p1

    const-string p3, "payment_id"

    invoke-virtual {p1, p3}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    invoke-static {p1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    goto :goto_65

    .line 366
    :cond_59
    invoke-static {v1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1
    :try_end_5d
    .catch Lorg/json/JSONException; {:try_start_31 .. :try_end_5d} :catch_5e

    goto :goto_65

    .line 369
    :catch_5e
    invoke-static {v1}, Lcom/razorpay/BaseUtils;->getPaymentCancelledResponse(Ljava/lang/String;)Ljava/lang/String;

    move-result-object p1

    goto :goto_65

    :cond_63
    :goto_63
    const-string p1, "Payment Error"

    .line 374
    :cond_65
    :goto_65
    invoke-static {p2, p1}, Lcom/razorpay/Checkout;->trackOnActivityResultEvent(ILjava/lang/String;)V

    .line 376
    iget-object p3, p0, Lcom/razorpay/Checkout;->merchantActivity:Landroid/app/Activity;

    invoke-static {p3, p1}, Lcom/razorpay/Checkout;->createPaymentData(Landroid/app/Activity;Ljava/lang/String;)V

    const/4 p3, 0x1

    if-ne p2, p3, :cond_74

    .line 379
    invoke-direct {p0}, Lcom/razorpay/Checkout;->handleOnSuccess()V

    goto :goto_7e

    :cond_74
    const/4 p3, 0x4

    if-ne p2, p3, :cond_7b

    .line 381
    invoke-direct {p0}, Lcom/razorpay/Checkout;->handleExternalWalletSelected()V

    goto :goto_7e

    .line 383
    :cond_7b
    invoke-direct {p0, p2, p1}, Lcom/razorpay/Checkout;->handleOnError(ILjava/lang/String;)V

    .line 387
    :goto_7e
    :try_start_7e
    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object p1

    invoke-virtual {p1}, Landroid/app/Activity;->getFragmentManager()Landroid/app/FragmentManager;

    move-result-object p1

    invoke-virtual {p1}, Landroid/app/FragmentManager;->beginTransaction()Landroid/app/FragmentTransaction;

    move-result-object p1

    invoke-virtual {p1, p0}, Landroid/app/FragmentTransaction;->remove(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;

    move-result-object p1

    invoke-virtual {p1}, Landroid/app/FragmentTransaction;->commit()I
    :try_end_91
    .catch Ljava/lang/Exception; {:try_start_7e .. :try_end_91} :catch_92

    return-void

    :catch_92
    move-exception p1

    .line 389
    invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p2

    invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;

    move-result-object p1

    const-string p3, "S1"

    invoke-static {p2, p3, p1}, Lcom/razorpay/AnalyticsUtil;->reportError(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method public onCreate(Landroid/os/Bundle;)V
    .registers 7

    .line 313
    invoke-super {p0, p1}, Landroid/app/Fragment;->onCreate(Landroid/os/Bundle;)V

    .line 314
    iget-object p1, p0, Lcom/razorpay/Checkout;->options:Lorg/json/JSONObject;

    if-eqz p1, :cond_59

    .line 315
    new-instance p1, Landroid/content/Intent;

    invoke-direct {p1}, Landroid/content/Intent;-><init>()V

    .line 316
    new-instance v0, Landroid/content/ComponentName;

    invoke-virtual {p0}, Lcom/razorpay/Checkout;->getActivity()Landroid/app/Activity;

    move-result-object v1

    invoke-virtual {v1}, Landroid/app/Activity;->getPackageName()Ljava/lang/String;

    move-result-object v1

    const-string v2, "com.razorpay.CheckoutActivity"

    invoke-direct {v0, v1, v2}, Landroid/content/ComponentName;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    invoke-virtual {p1, v0}, Landroid/content/Intent;->setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;

    .line 318
    sget-wide v0, Lcom/razorpay/Checkout;->sPreloadCompleteDuration:J

    const-wide/16 v2, 0x0

    cmp-long v4, v0, v2

    if-lez v4, :cond_2c

    const-string v2, "PRELOAD_COMPLETE_DURATION"

    .line 319
    invoke-virtual {p1, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;

    goto :goto_37

    .line 320
    :cond_2c
    sget-wide v0, Lcom/razorpay/Checkout;->sPreloadAbortDuration:J

    cmp-long v2, v0, v2

    if-lez v2, :cond_37

    const-string v2, "PRELOAD_ABORT_DURATION"

    .line 321
    invoke-virtual {p1, v2, v0, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent;

    .line 324
    :cond_37
    :goto_37
    iget-object v0, p0, Lcom/razorpay/Checkout;->options:Lorg/json/JSONObject;

    invoke-virtual {v0}, Lorg/json/JSONObject;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v1, "OPTIONS"

    invoke-virtual {p1, v1, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

    .line 325
    iget v0, p0, Lcom/razorpay/Checkout;->checkoutImage:I

    const-string v1, "IMAGE"

    invoke-virtual {p1, v1, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;

    .line 326
    iget-boolean v0, p0, Lcom/razorpay/Checkout;->disableFullScreen:Z

    const-string v1, "DISABLE_FULL_SCREEN"

    invoke-virtual {p1, v1, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent;

    const/4 v0, 0x0

    .line 327
    iput-object v0, p0, Lcom/razorpay/Checkout;->options:Lorg/json/JSONObject;

    const v0, 0xf3ea

    .line 329
    invoke-virtual {p0, p1, v0}, Lcom/razorpay/Checkout;->startActivityForResult(Landroid/content/Intent;I)V

    :cond_59
    return-void
.end method

.method public onError(ILjava/lang/String;)V
    .registers 4

    const/4 v0, 0x0

    .line 459
    iput-boolean v0, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    .line 461
    invoke-direct {p0, p1, p2}, Lcom/razorpay/Checkout;->handleOnErrorViaInterface(ILjava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_c

    .line 464
    invoke-direct {p0, p1, p2}, Lcom/razorpay/Checkout;->handleOnErrorViaReflection(ILjava/lang/String;)V

    :cond_c
    return-void
.end method

.method public onSuccess(Ljava/lang/String;)V
    .registers 3

    const/4 v0, 0x0

    .line 448
    iput-boolean v0, p0, Lcom/razorpay/Checkout;->isMethodOverridden:Z

    .line 450
    invoke-direct {p0, p1}, Lcom/razorpay/Checkout;->handleOnSuccessViaInterface(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_c

    .line 453
    invoke-direct {p0, p1}, Lcom/razorpay/Checkout;->handleOnSuccessViaReflection(Ljava/lang/String;)V

    :cond_c
    return-void
.end method

.method public final open(Landroid/app/Activity;Lorg/json/JSONObject;)V
    .registers 5

    .line 138
    sget-object v0, Lcom/razorpay/OpinionatedSoln;->INSTANCE:Lcom/razorpay/OpinionatedSoln;

    const-string v1, "DEBUG"

    invoke-virtual {v0, p1, v1}, Lcom/razorpay/OpinionatedSoln;->getBuildConfigValue(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    if-eqz v0, :cond_1f

    .line 139
    sget-object v0, Lcom/razorpay/OpinionatedSoln;->INSTANCE:Lcom/razorpay/OpinionatedSoln;

    invoke-virtual {v0}, Lcom/razorpay/OpinionatedSoln;->getAlertShownForStatus()Z

    move-result v0

    if-nez v0, :cond_1b

    .line 140
    new-instance v0, Lcom/razorpay/g__v_;

    invoke-direct {v0, p0, p1, p2}, Lcom/razorpay/g__v_;-><init>(Lcom/razorpay/Checkout;Landroid/app/Activity;Lorg/json/JSONObject;)V

    invoke-direct {p0, p1, v0}, Lcom/razorpay/Checkout;->sdkCheckIntegrationInternal(Landroid/app/Activity;Lcom/razorpay/OpinionatedSoln$DismissCallback;)V

    return-void

    .line 147
    :cond_1b
    invoke-direct {p0, p1, p2}, Lcom/razorpay/Checkout;->openInternal(Landroid/app/Activity;Lorg/json/JSONObject;)V

    return-void

    .line 150
    :cond_1f
    invoke-direct {p0, p1, p2}, Lcom/razorpay/Checkout;->openInternal(Landroid/app/Activity;Lorg/json/JSONObject;)V

    return-void
.end method

.method public final setFullScreenDisable(Z)V
    .registers 2

    .line 128
    iput-boolean p1, p0, Lcom/razorpay/Checkout;->disableFullScreen:Z

    return-void
.end method

.method public final setImage(I)V
    .registers 2

    .line 107
    iput p1, p0, Lcom/razorpay/Checkout;->checkoutImage:I

    return-void
.end method

.method public final setKeyID(Ljava/lang/String;)V
    .registers 2

    .line 118
    invoke-virtual {p0, p1}, Lcom/razorpay/Checkout;->setPublicKey(Ljava/lang/String;)V

    return-void
.end method

.method public final setPublicKey(Ljava/lang/String;)V
    .registers 2
    .annotation runtime Ljava/lang/Deprecated;
    .end annotation

    .line 103
    iput-object p1, p0, Lcom/razorpay/Checkout;->key:Ljava/lang/String;

    return-void
.end method