diff --git a/example/src/main/java/com/stripe/example/activity/PaymentIntentActivity.java b/example/src/main/java/com/stripe/example/activity/PaymentIntentActivity.java
index fe2fb7b84f9..ffb56582328 100644
--- a/example/src/main/java/com/stripe/example/activity/PaymentIntentActivity.java
+++ b/example/src/main/java/com/stripe/example/activity/PaymentIntentActivity.java
@@ -158,7 +158,7 @@ private void retrievePaymentIntent() {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
paymentIntent -> mPaymentIntentValue.setText(paymentIntent != null ?
- paymentIntent.toJson().toString() :
+ new JSONObject(paymentIntent.toMap()).toString() :
getString(R.string.error_while_retrieving_payment_intent)),
throwable -> Log.e(TAG, throwable.toString())
);
@@ -188,7 +188,8 @@ private void confirmPaymentIntent(@NonNull final Card card) {
.subscribe(
paymentIntent -> {
if (paymentIntent != null) {
- mPaymentIntentValue.setText(paymentIntent.toJson().toString());
+ mPaymentIntentValue.setText(
+ new JSONObject(paymentIntent.toMap()).toString());
if (paymentIntent.requiresAction()) {
Toast.makeText(PaymentIntentActivity.this,
diff --git a/stripe/src/main/java/com/stripe/android/EphemeralKey.java b/stripe/src/main/java/com/stripe/android/EphemeralKey.java
index 5074fee4a17..591105f2815 100644
--- a/stripe/src/main/java/com/stripe/android/EphemeralKey.java
+++ b/stripe/src/main/java/com/stripe/android/EphemeralKey.java
@@ -5,7 +5,7 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
-import com.stripe.android.model.StripeJsonModel;
+import com.stripe.android.model.StripeModel;
import com.stripe.android.utils.ObjectUtils;
import org.json.JSONArray;
@@ -26,7 +26,7 @@
* See
* Using Android Standard UI Components - Prepare your API for more details on ephemeral keys.
*/
-abstract class EphemeralKey extends StripeJsonModel implements Parcelable {
+abstract class EphemeralKey extends StripeModel implements Parcelable {
static final String FIELD_CREATED = "created";
static final String FIELD_EXPIRES = "expires";
@@ -84,35 +84,6 @@ abstract class EphemeralKey extends StripeJsonModel implements Parcelable {
mType = type;
}
- @NonNull
- @Override
- public JSONObject toJson() {
- JSONObject jsonObject = new JSONObject();
- JSONArray associatedObjectsArray = new JSONArray();
- JSONObject associatedObject = new JSONObject();
-
- try {
- jsonObject.put(FIELD_CREATED, mCreated);
- jsonObject.put(FIELD_EXPIRES, mExpires);
- jsonObject.put(FIELD_OBJECT, mObject);
- jsonObject.put(FIELD_ID, mId);
- jsonObject.put(FIELD_SECRET, mSecret);
- jsonObject.put(FIELD_LIVEMODE, mLiveMode);
-
- associatedObject.put(FIELD_TYPE, mType);
- associatedObject.put(FIELD_ID, mObjectId);
- associatedObjectsArray.put(associatedObject);
-
- jsonObject.put(FIELD_ASSOCIATED_OBJECTS, associatedObjectsArray);
- } catch (JSONException impossible) {
- // An exception can only be thrown from put operations if the key is null
- // or the value is a non-finite number.
- throw new IllegalArgumentException("JSONObject creation exception thrown.");
- }
-
- return jsonObject;
- }
-
@NonNull
@Override
public Map toMap() {
diff --git a/stripe/src/main/java/com/stripe/android/EphemeralKeyUpdateListener.java b/stripe/src/main/java/com/stripe/android/EphemeralKeyUpdateListener.java
index 5291c67a1a3..36a7c671166 100644
--- a/stripe/src/main/java/com/stripe/android/EphemeralKeyUpdateListener.java
+++ b/stripe/src/main/java/com/stripe/android/EphemeralKeyUpdateListener.java
@@ -1,7 +1,6 @@
package com.stripe.android;
import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
/**
* Represents a listener for Ephemeral Key Update events.
diff --git a/stripe/src/main/java/com/stripe/android/IssuingCardPinService.java b/stripe/src/main/java/com/stripe/android/IssuingCardPinService.java
index 01188edde23..a1e09b95643 100644
--- a/stripe/src/main/java/com/stripe/android/IssuingCardPinService.java
+++ b/stripe/src/main/java/com/stripe/android/IssuingCardPinService.java
@@ -16,6 +16,7 @@
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
/**
* Methods for retrieval / update of a Stripe Issuing card
@@ -149,16 +150,16 @@ public void onKeyUpdate(@NonNull IssuingCardEphemeralKey ephemeralKey,
null);
return;
}
- String cardId = (String) arguments.get(ARGUMENT_CARD_ID);
- String verificationId = (String) arguments.get(ARGUMENT_VERIFICATION_ID);
- String userOneTimeCode = (String) arguments.get(ARGUMENT_ONE_TIME_CODE);
+ final String cardId =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_CARD_ID));
+ final String verificationId =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_VERIFICATION_ID));
+ final String userOneTimeCode =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_ONE_TIME_CODE));
try {
- final String pin = mApiHandler.retrieveIssuingCardPin(
- cardId,
- verificationId,
- userOneTimeCode,
- ephemeralKey.getSecret());
+ final String pin = mApiHandler.retrieveIssuingCardPin(cardId, verificationId,
+ userOneTimeCode, ephemeralKey.getSecret());
listener.onIssuingCardPinRetrieved(pin);
} catch (InvalidRequestException e) {
@@ -218,17 +219,17 @@ public void onKeyUpdate(@NonNull IssuingCardEphemeralKey ephemeralKey,
null);
return;
}
- String cardId = (String) arguments.get(ARGUMENT_CARD_ID);
- String newPin = (String) arguments.get(ARGUMENT_NEW_PIN);
- String verificationId = (String) arguments.get(ARGUMENT_VERIFICATION_ID);
- String userOneTimeCode = (String) arguments.get(ARGUMENT_ONE_TIME_CODE);
+ final String cardId =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_CARD_ID));
+ final String newPin =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_NEW_PIN));
+ final String verificationId =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_VERIFICATION_ID));
+ final String userOneTimeCode =
+ (String) Objects.requireNonNull(arguments.get(ARGUMENT_ONE_TIME_CODE));
try {
- mApiHandler.updateIssuingCardPin(
- cardId,
- newPin,
- verificationId,
- userOneTimeCode,
+ mApiHandler.updateIssuingCardPin(cardId, newPin, verificationId, userOneTimeCode,
ephemeralKey.getSecret());
listener.onIssuingCardPinUpdated();
} catch (InvalidRequestException e) {
diff --git a/stripe/src/main/java/com/stripe/android/model/Address.java b/stripe/src/main/java/com/stripe/android/model/Address.java
index edc9bbb0676..b4321b65fab 100644
--- a/stripe/src/main/java/com/stripe/android/model/Address.java
+++ b/stripe/src/main/java/com/stripe/android/model/Address.java
@@ -20,13 +20,12 @@
import java.util.Map;
import static com.stripe.android.model.StripeJsonUtils.optString;
-import static com.stripe.android.model.StripeJsonUtils.putStringIfNotNull;
/**
* Model for an owner address
* object in the Source api.
*/
-public final class Address extends StripeJsonModel implements Parcelable {
+public final class Address extends StripeModel implements Parcelable {
@IntDef({
RequiredBillingAddressFields.NONE,
@@ -141,19 +140,6 @@ public Map toMap() {
return map;
}
- @NonNull
- @Override
- public JSONObject toJson() {
- final JSONObject jsonObject = new JSONObject();
- putStringIfNotNull(jsonObject, FIELD_CITY, mCity);
- putStringIfNotNull(jsonObject, FIELD_COUNTRY, mCountry);
- putStringIfNotNull(jsonObject, FIELD_LINE_1, mLine1);
- putStringIfNotNull(jsonObject, FIELD_LINE_2, mLine2);
- putStringIfNotNull(jsonObject, FIELD_POSTAL_CODE, mPostalCode);
- putStringIfNotNull(jsonObject, FIELD_STATE, mState);
- return jsonObject;
- }
-
@Nullable
public static Address fromString(@Nullable String jsonString) {
try {
diff --git a/stripe/src/main/java/com/stripe/android/model/Card.java b/stripe/src/main/java/com/stripe/android/model/Card.java
index ec9abb28a66..801147347b9 100644
--- a/stripe/src/main/java/com/stripe/android/model/Card.java
+++ b/stripe/src/main/java/com/stripe/android/model/Card.java
@@ -30,14 +30,11 @@
import static com.stripe.android.model.StripeJsonUtils.optHash;
import static com.stripe.android.model.StripeJsonUtils.optInteger;
import static com.stripe.android.model.StripeJsonUtils.optString;
-import static com.stripe.android.model.StripeJsonUtils.putIntegerIfNotNull;
-import static com.stripe.android.model.StripeJsonUtils.putStringHashIfNotNull;
-import static com.stripe.android.model.StripeJsonUtils.putStringIfNotNull;
/**
* A model object representing a Card in the Android SDK.
*/
-public final class Card extends StripeJsonModel implements StripePaymentSource {
+public final class Card extends StripeModel implements StripePaymentSource {
@Retention(RetentionPolicy.SOURCE)
@StringDef({
@@ -790,36 +787,6 @@ public String getCvcCheck() {
return cvcCheck;
}
- @NonNull
- @Override
- public JSONObject toJson() {
- final JSONObject object = new JSONObject();
- putStringIfNotNull(object, FIELD_NAME, name);
- putStringIfNotNull(object, FIELD_ADDRESS_CITY, addressCity);
- putStringIfNotNull(object, FIELD_ADDRESS_COUNTRY, addressCountry);
- putStringIfNotNull(object, FIELD_ADDRESS_LINE1, addressLine1);
- putStringIfNotNull(object, FIELD_ADDRESS_LINE1_CHECK, addressLine1Check);
- putStringIfNotNull(object, FIELD_ADDRESS_LINE2, addressLine2);
- putStringIfNotNull(object, FIELD_ADDRESS_STATE, addressState);
- putStringIfNotNull(object, FIELD_ADDRESS_ZIP, addressZip);
- putStringIfNotNull(object, FIELD_ADDRESS_ZIP_CHECK, addressZipCheck);
- putStringIfNotNull(object, FIELD_BRAND, brand);
- putStringIfNotNull(object, FIELD_CURRENCY, currency);
- putStringIfNotNull(object, FIELD_COUNTRY, country);
- putStringIfNotNull(object, FIELD_CUSTOMER, customerId);
- putIntegerIfNotNull(object, FIELD_EXP_MONTH, expMonth);
- putIntegerIfNotNull(object, FIELD_EXP_YEAR, expYear);
- putStringIfNotNull(object, FIELD_FINGERPRINT, fingerprint);
- putStringIfNotNull(object, FIELD_FUNDING, funding);
- putStringIfNotNull(object, FIELD_CVC_CHECK, cvcCheck);
- putStringIfNotNull(object, FIELD_LAST4, last4);
- putStringIfNotNull(object, FIELD_ID, id);
- putStringIfNotNull(object, FIELD_TOKENIZATION_METHOD, tokenizationMethod);
- putStringHashIfNotNull(object, FIELD_METADATA, metadata);
- putStringIfNotNull(object, FIELD_OBJECT, VALUE_CARD);
- return object;
- }
-
@NonNull
@Override
public Map toMap() {
diff --git a/stripe/src/main/java/com/stripe/android/model/Customer.java b/stripe/src/main/java/com/stripe/android/model/Customer.java
index 8146c4b82e8..5e0113944f0 100644
--- a/stripe/src/main/java/com/stripe/android/model/Customer.java
+++ b/stripe/src/main/java/com/stripe/android/model/Customer.java
@@ -19,15 +19,11 @@
import static com.stripe.android.model.StripeJsonUtils.optBoolean;
import static com.stripe.android.model.StripeJsonUtils.optInteger;
import static com.stripe.android.model.StripeJsonUtils.optString;
-import static com.stripe.android.model.StripeJsonUtils.putBooleanIfNotNull;
-import static com.stripe.android.model.StripeJsonUtils.putIntegerIfNotNull;
-import static com.stripe.android.model.StripeJsonUtils.putObjectIfNotNull;
-import static com.stripe.android.model.StripeJsonUtils.putStringIfNotNull;
/**
* Model for a Stripe Customer object
*/
-public final class Customer extends StripeJsonModel {
+public final class Customer extends StripeModel {
private static final String FIELD_ID = "id";
private static final String FIELD_OBJECT = "object";
@@ -83,6 +79,7 @@ public List getSources() {
return mSources;
}
+ @Nullable
public Boolean getHasMore() {
return mHasMore;
}
@@ -105,28 +102,6 @@ public CustomerSource getSourceById(@NonNull String sourceId) {
return null;
}
- @NonNull
- @Override
- public JSONObject toJson() {
- JSONObject jsonObject = new JSONObject();
- putStringIfNotNull(jsonObject, FIELD_ID, mId);
- putStringIfNotNull(jsonObject, FIELD_OBJECT, VALUE_CUSTOMER);
- putStringIfNotNull(jsonObject, FIELD_DEFAULT_SOURCE, mDefaultSource);
- StripeJsonModel.putStripeJsonModelIfNotNull(jsonObject,
- FIELD_SHIPPING,
- mShippingInformation);
- JSONObject sourcesObject = new JSONObject();
- putStringIfNotNull(sourcesObject, FIELD_OBJECT, VALUE_LIST);
- putBooleanIfNotNull(sourcesObject, FIELD_HAS_MORE, mHasMore);
- putIntegerIfNotNull(sourcesObject, FIELD_TOTAL_COUNT, mTotalCount);
- putStripeJsonModelListIfNotNull(sourcesObject, FIELD_DATA, mSources);
- putStringIfNotNull(sourcesObject, FIELD_URL, mUrl);
-
- putObjectIfNotNull(jsonObject, FIELD_SOURCES, sourcesObject);
-
- return jsonObject;
- }
-
@NonNull
@Override
public Map toMap() {
@@ -134,21 +109,19 @@ public Map toMap() {
map.put(FIELD_ID, mId);
map.put(FIELD_OBJECT, VALUE_CUSTOMER);
map.put(FIELD_DEFAULT_SOURCE, mDefaultSource);
-
- StripeJsonModel.putStripeJsonModelMapIfNotNull(
- map,
- FIELD_SHIPPING,
- mShippingInformation);
+ map.put(FIELD_SHIPPING, mShippingInformation != null ? mShippingInformation.toMap() : null);
final AbstractMap sourcesObject = new HashMap<>();
sourcesObject.put(FIELD_HAS_MORE, mHasMore);
sourcesObject.put(FIELD_TOTAL_COUNT, mTotalCount);
sourcesObject.put(FIELD_OBJECT, VALUE_LIST);
sourcesObject.put(FIELD_URL, mUrl);
- StripeJsonModel.putStripeJsonModelListIfNotNull(
- sourcesObject,
- FIELD_DATA,
- mSources);
+
+ final List