Stripe.smali
.class public Lcom/stripe/android/Stripe;
.super Ljava/lang/Object;
.source "Stripe.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/stripe/android/Stripe$TokenCreator;,
Lcom/stripe/android/Stripe$ResponseWrapper;
}
.end annotation
# instance fields
.field private defaultPublishableKey:Ljava/lang/String;
.field tokenCreator:Lcom/stripe/android/Stripe$TokenCreator;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 70
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 31
new-instance v0, Lcom/stripe/android/Stripe$1;
invoke-direct {v0, p0}, Lcom/stripe/android/Stripe$1;-><init>(Lcom/stripe/android/Stripe;)V
iput-object v0, p0, Lcom/stripe/android/Stripe;->tokenCreator:Lcom/stripe/android/Stripe$TokenCreator;
.line 70
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.param p1, "publishableKey" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/stripe/android/exception/AuthenticationException;
}
.end annotation
.line 78
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 31
new-instance v0, Lcom/stripe/android/Stripe$1;
invoke-direct {v0, p0}, Lcom/stripe/android/Stripe$1;-><init>(Lcom/stripe/android/Stripe;)V
iput-object v0, p0, Lcom/stripe/android/Stripe;->tokenCreator:Lcom/stripe/android/Stripe$TokenCreator;
.line 79
invoke-virtual {p0, p1}, Lcom/stripe/android/Stripe;->setDefaultPublishableKey(Ljava/lang/String;)V
.line 80
return-void
.end method
.method static synthetic access$100(Lcom/stripe/android/Stripe;Lcom/stripe/android/Stripe$ResponseWrapper;Lcom/stripe/android/TokenCallback;)V
.registers 3
.param p0, "x0" # Lcom/stripe/android/Stripe;
.param p1, "x1" # Lcom/stripe/android/Stripe$ResponseWrapper;
.param p2, "x2" # Lcom/stripe/android/TokenCallback;
.line 29
invoke-direct {p0, p1, p2}, Lcom/stripe/android/Stripe;->tokenTaskPostExecution(Lcom/stripe/android/Stripe$ResponseWrapper;Lcom/stripe/android/TokenCallback;)V
return-void
.end method
.method static synthetic access$200(Lcom/stripe/android/Stripe;Ljava/util/concurrent/Executor;Landroid/os/AsyncTask;)V
.registers 3
.param p0, "x0" # Lcom/stripe/android/Stripe;
.param p1, "x1" # Ljava/util/concurrent/Executor;
.param p2, "x2" # Landroid/os/AsyncTask;
.line 29
invoke-direct {p0, p1, p2}, Lcom/stripe/android/Stripe;->executeTokenTask(Ljava/util/concurrent/Executor;Landroid/os/AsyncTask;)V
return-void
.end method
.method private executeTokenTask(Ljava/util/concurrent/Executor;Landroid/os/AsyncTask;)V
.registers 6
.param p1, "executor" # Ljava/util/concurrent/Executor;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/concurrent/Executor;",
"Landroid/os/AsyncTask<",
"Ljava/lang/Void;",
"Ljava/lang/Void;",
"Lcom/stripe/android/Stripe$ResponseWrapper;",
">;)V"
}
.end annotation
.line 249
.local p2, "task":Landroid/os/AsyncTask;, "Landroid/os/AsyncTask<Ljava/lang/Void;Ljava/lang/Void;Lcom/stripe/android/Stripe$ResponseWrapper;>;"
const/4 v0, 0x0
if-eqz p1, :cond_f
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xb
if-le v1, v2, :cond_f
.line 250
new-array v0, v0, [Ljava/lang/Void;
invoke-virtual {p2, p1, v0}, Landroid/os/AsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
goto :goto_14
.line 252
:cond_f
new-array v0, v0, [Ljava/lang/Void;
invoke-virtual {p2, v0}, Landroid/os/AsyncTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
.line 254
:goto_14
return-void
.end method
.method private tokenTaskPostExecution(Lcom/stripe/android/Stripe$ResponseWrapper;Lcom/stripe/android/TokenCallback;)V
.registers 5
.param p1, "result" # Lcom/stripe/android/Stripe$ResponseWrapper;
.param p2, "callback" # Lcom/stripe/android/TokenCallback;
.line 236
iget-object v0, p1, Lcom/stripe/android/Stripe$ResponseWrapper;->token:Lcom/stripe/android/model/Token;
if-eqz v0, :cond_a
.line 237
iget-object v0, p1, Lcom/stripe/android/Stripe$ResponseWrapper;->token:Lcom/stripe/android/model/Token;
invoke-interface {p2, v0}, Lcom/stripe/android/TokenCallback;->onSuccess(Lcom/stripe/android/model/Token;)V
goto :goto_1e
.line 239
:cond_a
iget-object v0, p1, Lcom/stripe/android/Stripe$ResponseWrapper;->error:Ljava/lang/Exception;
if-eqz v0, :cond_14
.line 240
iget-object v0, p1, Lcom/stripe/android/Stripe$ResponseWrapper;->error:Ljava/lang/Exception;
invoke-interface {p2, v0}, Lcom/stripe/android/TokenCallback;->onError(Ljava/lang/Exception;)V
goto :goto_1e
.line 243
:cond_14
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Somehow got neither a token response or an error response"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
invoke-interface {p2, v0}, Lcom/stripe/android/TokenCallback;->onError(Ljava/lang/Exception;)V
.line 246
:goto_1e
return-void
.end method
.method private validateKey(Ljava/lang/String;)V
.registers 6
.param p1, "publishableKey" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/stripe/android/exception/AuthenticationException;
}
.end annotation
.line 221
const/4 v0, 0x0
.line 224
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
.line 221
const/4 v1, 0x0
if-eqz p1, :cond_20
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-eqz v2, :cond_20
.line 227
const-string/jumbo v2, "sk_"
invoke-virtual {p1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_18
.line 233
return-void
.line 228
:cond_18
new-instance v2, Lcom/stripe/android/exception/AuthenticationException;
.line 231
const-string v3, "Invalid Publishable Key: You are using a secret key to create a token, instead of the publishable one. For more info, see https://stripe.com/docs/stripe.js"
invoke-direct {v2, v3, v1, v0}, Lcom/stripe/android/exception/AuthenticationException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V
throw v2
.line 222
:cond_20
new-instance v2, Lcom/stripe/android/exception/AuthenticationException;
.line 224
const-string v3, "Invalid Publishable Key: You must use a valid publishable key to create a token. For more info, see https://stripe.com/docs/stripe.js."
invoke-direct {v2, v3, v1, v0}, Lcom/stripe/android/exception/AuthenticationException;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;)V
throw v2
.end method
# virtual methods
.method public createToken(Lcom/stripe/android/model/Card;Lcom/stripe/android/TokenCallback;)V
.registers 4
.param p1, "card" # Lcom/stripe/android/model/Card;
.param p2, "callback" # Lcom/stripe/android/TokenCallback;
.line 91
iget-object v0, p0, Lcom/stripe/android/Stripe;->defaultPublishableKey:Ljava/lang/String;
invoke-virtual {p0, p1, v0, p2}, Lcom/stripe/android/Stripe;->createToken(Lcom/stripe/android/model/Card;Ljava/lang/String;Lcom/stripe/android/TokenCallback;)V
.line 92
return-void
.end method
.method public createToken(Lcom/stripe/android/model/Card;Ljava/lang/String;Lcom/stripe/android/TokenCallback;)V
.registers 5
.param p1, "card" # Lcom/stripe/android/model/Card;
.param p2, "publishableKey" # Ljava/lang/String;
.param p3, "callback" # Lcom/stripe/android/TokenCallback;
.line 105
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0, p3}, Lcom/stripe/android/Stripe;->createToken(Lcom/stripe/android/model/Card;Ljava/lang/String;Ljava/util/concurrent/Executor;Lcom/stripe/android/TokenCallback;)V
.line 106
return-void
.end method
.method public createToken(Lcom/stripe/android/model/Card;Ljava/lang/String;Ljava/util/concurrent/Executor;Lcom/stripe/android/TokenCallback;)V
.registers 7
.param p1, "card" # Lcom/stripe/android/model/Card;
.param p2, "publishableKey" # Ljava/lang/String;
.param p3, "executor" # Ljava/util/concurrent/Executor;
.param p4, "callback" # Lcom/stripe/android/TokenCallback;
.line 137
if-eqz p1, :cond_15
.line 142
if-eqz p4, :cond_d
.line 148
:try_start_4
invoke-direct {p0, p2}, Lcom/stripe/android/Stripe;->validateKey(Ljava/lang/String;)V
.line 150
iget-object v0, p0, Lcom/stripe/android/Stripe;->tokenCreator:Lcom/stripe/android/Stripe$TokenCreator;
invoke-interface {v0, p1, p2, p3, p4}, Lcom/stripe/android/Stripe$TokenCreator;->create(Lcom/stripe/android/model/Card;Ljava/lang/String;Ljava/util/concurrent/Executor;Lcom/stripe/android/TokenCallback;)V
.line 154
goto :goto_21
.line 143
:cond_d
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Required Parameter: \'callback\' is required to use the created token and handle errors"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
.end local p1 # "card":Lcom/stripe/android/model/Card;
.end local p2 # "publishableKey":Ljava/lang/String;
.end local p3 # "executor":Ljava/util/concurrent/Executor;
.end local p4 # "callback":Lcom/stripe/android/TokenCallback;
throw v0
.line 138
.restart local p1 # "card":Lcom/stripe/android/model/Card;
.restart local p2 # "publishableKey":Ljava/lang/String;
.restart local p3 # "executor":Ljava/util/concurrent/Executor;
.restart local p4 # "callback":Lcom/stripe/android/TokenCallback;
:cond_15
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Required Parameter: \'card\' is required to create a token"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
.end local p1 # "card":Lcom/stripe/android/model/Card;
.end local p2 # "publishableKey":Ljava/lang/String;
.end local p3 # "executor":Ljava/util/concurrent/Executor;
.end local p4 # "callback":Lcom/stripe/android/TokenCallback;
throw v0
:try_end_1d
.catch Lcom/stripe/android/exception/AuthenticationException; {:try_start_4 .. :try_end_1d} :catch_1d
.line 152
.restart local p1 # "card":Lcom/stripe/android/model/Card;
.restart local p2 # "publishableKey":Ljava/lang/String;
.restart local p3 # "executor":Ljava/util/concurrent/Executor;
.restart local p4 # "callback":Lcom/stripe/android/TokenCallback;
:catch_1d
move-exception v0
.line 153
.local v0, "e":Lcom/stripe/android/exception/AuthenticationException;
invoke-interface {p4, v0}, Lcom/stripe/android/TokenCallback;->onError(Ljava/lang/Exception;)V
.line 155
.end local v0 # "e":Lcom/stripe/android/exception/AuthenticationException;
:goto_21
return-void
.end method
.method public createToken(Lcom/stripe/android/model/Card;Ljava/util/concurrent/Executor;Lcom/stripe/android/TokenCallback;)V
.registers 5
.param p1, "card" # Lcom/stripe/android/model/Card;
.param p2, "executor" # Ljava/util/concurrent/Executor;
.param p3, "callback" # Lcom/stripe/android/TokenCallback;
.line 119
iget-object v0, p0, Lcom/stripe/android/Stripe;->defaultPublishableKey:Ljava/lang/String;
invoke-virtual {p0, p1, v0, p2, p3}, Lcom/stripe/android/Stripe;->createToken(Lcom/stripe/android/model/Card;Ljava/lang/String;Ljava/util/concurrent/Executor;Lcom/stripe/android/TokenCallback;)V
.line 120
return-void
.end method
.method public createTokenSynchronous(Lcom/stripe/android/model/Card;)Lcom/stripe/android/model/Token;
.registers 3
.param p1, "card" # Lcom/stripe/android/model/Card;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/stripe/android/exception/AuthenticationException;,
Lcom/stripe/android/exception/InvalidRequestException;,
Lcom/stripe/android/exception/APIConnectionException;,
Lcom/stripe/android/exception/CardException;,
Lcom/stripe/android/exception/APIException;
}
.end annotation
.line 177
iget-object v0, p0, Lcom/stripe/android/Stripe;->defaultPublishableKey:Ljava/lang/String;
invoke-virtual {p0, p1, v0}, Lcom/stripe/android/Stripe;->createTokenSynchronous(Lcom/stripe/android/model/Card;Ljava/lang/String;)Lcom/stripe/android/model/Token;
move-result-object v0
return-object v0
.end method
.method public createTokenSynchronous(Lcom/stripe/android/model/Card;Ljava/lang/String;)Lcom/stripe/android/model/Token;
.registers 5
.param p1, "card" # Lcom/stripe/android/model/Card;
.param p2, "publishableKey" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/stripe/android/exception/AuthenticationException;,
Lcom/stripe/android/exception/InvalidRequestException;,
Lcom/stripe/android/exception/APIConnectionException;,
Lcom/stripe/android/exception/CardException;,
Lcom/stripe/android/exception/APIException;
}
.end annotation
.line 201
invoke-direct {p0, p2}, Lcom/stripe/android/Stripe;->validateKey(Ljava/lang/String;)V
.line 203
invoke-static {p2}, Lcom/stripe/android/net/RequestOptions;->builder(Ljava/lang/String;)Lcom/stripe/android/net/RequestOptions$RequestOptionsBuilder;
move-result-object v0
invoke-virtual {v0}, Lcom/stripe/android/net/RequestOptions$RequestOptionsBuilder;->build()Lcom/stripe/android/net/RequestOptions;
move-result-object v0
.line 204
.local v0, "requestOptions":Lcom/stripe/android/net/RequestOptions;
invoke-static {p1}, Lcom/stripe/android/util/StripeNetworkUtils;->hashMapFromCard(Lcom/stripe/android/model/Card;)Ljava/util/Map;
move-result-object v1
invoke-static {v1, v0}, Lcom/stripe/android/net/StripeApiHandler;->createToken(Ljava/util/Map;Lcom/stripe/android/net/RequestOptions;)Lcom/stripe/android/model/Token;
move-result-object v1
return-object v1
.end method
.method public setDefaultPublishableKey(Ljava/lang/String;)V
.registers 2
.param p1, "publishableKey" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/stripe/android/exception/AuthenticationException;
}
.end annotation
.line 215
invoke-direct {p0, p1}, Lcom/stripe/android/Stripe;->validateKey(Ljava/lang/String;)V
.line 216
iput-object p1, p0, Lcom/stripe/android/Stripe;->defaultPublishableKey:Ljava/lang/String;
.line 217
return-void
.end method