Skip to content

Commit 771904b

Browse files
committed
Checkout not translated when passing in certain values in checkout wrapper
1 parent a943507 commit 771904b

11 files changed

+32
-68
lines changed

affirm/src/main/java/com/affirm/android/Affirm.java

+5-23
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,6 @@ public enum Environment {
125125
SANDBOX,
126126
PRODUCTION;
127127

128-
String checkoutUrl() {
129-
switch (this) {
130-
case SANDBOX:
131-
return AffirmConstants.SANDBOX_CHECKOUT_URL;
132-
default:
133-
return AffirmConstants.PRODUCTION_CHECKOUT_URL;
134-
}
135-
}
136-
137128
String jsUrl() {
138129
switch (this) {
139130
case SANDBOX:
@@ -147,34 +138,25 @@ String trackerUrl() {
147138
return AffirmConstants.TRACKER_URL;
148139
}
149140

150-
String promoUrl(String countryCode) {
141+
String affirmUrl(String countryCode) {
151142
switch (countryCode) {
152143
case COUNTY_CODE_CAN:
153144
switch (this) {
154145
case SANDBOX:
155-
return AffirmConstants.SANDBOX_PROMO_CA_URL;
146+
return AffirmConstants.SANDBOX_CA_URL;
156147
default:
157-
return AffirmConstants.PRODUCTION_PROMO_CA_URL;
148+
return AffirmConstants.PRODUCTION_CA_URL;
158149
}
159150
default:
160151
switch (this) {
161152
case SANDBOX:
162-
return AffirmConstants.SANDBOX_PROMO_URL;
153+
return AffirmConstants.SANDBOX_DEFAULT_URL;
163154
default:
164-
return AffirmConstants.PRODUCTION_PROMO_URL;
155+
return AffirmConstants.PRODUCTION_DEFAULT_URL;
165156
}
166157
}
167158
}
168159

169-
String promoCAUrl() {
170-
switch (this) {
171-
case SANDBOX:
172-
return AffirmConstants.SANDBOX_PROMO_CA_URL;
173-
default:
174-
return AffirmConstants.PRODUCTION_PROMO_CA_URL;
175-
}
176-
}
177-
178160
String invalidCheckoutRedirectUrl() {
179161
switch (this) {
180162
case SANDBOX:

affirm/src/main/java/com/affirm/android/AffirmConstants.java

+6-13
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ private AffirmConstants() {
1616
static final String COUNTY_CODE_USA = "USA";
1717
static final String LOCALE_USA = "en_US";
1818

19-
// checkout url
20-
static final String SANDBOX_CHECKOUT_URL = "api.global-sandbox.affirm.com";
21-
static final String PRODUCTION_CHECKOUT_URL = "api.global.affirm.com";
22-
2319
// js url
2420
static final String SANDBOX_JS_URL = "cdn1-sandbox.affirm.com";
2521
static final String PRODUCTION_JS_URL = "cdn1.affirm.com";
@@ -29,12 +25,12 @@ private AffirmConstants() {
2925
static final String PRODUCTION_INVALID_CHECKOUT_REDIRECT_URL = "api.affirm.com/u/";
3026

3127
// promo url (Default)
32-
static final String SANDBOX_PROMO_URL = "sandbox.affirm.com";
33-
static final String PRODUCTION_PROMO_URL = "www.affirm.com";
28+
static final String SANDBOX_DEFAULT_URL = "sandbox.affirm.com";
29+
static final String PRODUCTION_DEFAULT_URL = "www.affirm.com";
3430

3531
// promo url (CA)
36-
static final String SANDBOX_PROMO_CA_URL = "sandbox.affirm.ca";
37-
static final String PRODUCTION_PROMO_CA_URL = "www.affirm.ca";
32+
static final String SANDBOX_CA_URL = "sandbox.affirm.ca";
33+
static final String PRODUCTION_CA_URL = "www.affirm.ca";
3834

3935
// tracker url
4036
static final String TRACKER_URL = "tracker.affirm.com";
@@ -88,6 +84,8 @@ private AffirmConstants() {
8884
static final String CHECKOUT_CAAS_EXTRA = "checkout_caas_extra";
8985
static final String CHECKOUT_MONEY = "checkout_money";
9086
static final String CHECKOUT_CARD_AUTH_WINDOW = "checkout_card_auth_window";
87+
static final String CHECKOUT_META = "meta";
88+
static final String CHECKOUT_META_LOCALE = "locale";
9189
static final String CREDIT_DETAILS = "credit_details";
9290
static final String VCN_REASON = "vcn_reason";
9391
static final String NEW_FLOW = "new_flow";
@@ -136,9 +134,4 @@ private AffirmConstants() {
136134
static final String PROMO_LOGO_TYPE = "logo_type";
137135
static final String PROMO_ITEMS = "items";
138136
static final String PROMO_LOCALE = "locale";
139-
140-
static final String CHECKOUT_HEADER_AFFIRM_LOCALE = "affirm-locale";
141-
static final String CHECKOUT_HEADER_COUNTRY_CODE = "country-code";
142-
143-
144137
}

affirm/src/main/java/com/affirm/android/AffirmPlugins.java

+3-7
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,8 @@ String environmentName() {
9898
return configuration.environment.name();
9999
}
100100

101-
String checkoutUrl() {
102-
return configuration.environment.checkoutUrl();
103-
}
104-
105-
String promoUrl() {
106-
return configuration.environment.promoUrl(countryCode());
101+
String affirmUrl() {
102+
return configuration.environment.affirmUrl(countryCode());
107103
}
108104

109105
String jsUrl() {
@@ -139,7 +135,7 @@ synchronized AffirmHttpClient restClient() {
139135
builder.addHeader("Affirm-User-Agent-Version", BuildConfig.VERSION_NAME);
140136
CookieManager cookieManager = CookieManager.getInstance();
141137
String cookie = cookieManager.getCookie(
142-
AffirmConstants.HTTPS_PROTOCOL + promoUrl()
138+
AffirmConstants.HTTPS_PROTOCOL + affirmUrl()
143139
);
144140
if (cookie != null) {
145141
builder.addHeader("Cookie", cookie);

affirm/src/main/java/com/affirm/android/AffirmTrackView.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ protected void onAttachedToWindow() {
8181
webView.setWebChromeClient(new AffirmWebChromeClient(this));
8282

8383
final String html = initialHtml();
84-
webView.loadDataWithBaseURL(HTTPS_PROTOCOL + AffirmPlugins.get().promoUrl(), html,
84+
webView.loadDataWithBaseURL(HTTPS_PROTOCOL + AffirmPlugins.get().affirmUrl(), html,
8585
TEXT_HTML, UTF_8, null);
8686
// Since there is no callback, the track view will be removed after 10 seconds timeout.
8787
handler.postDelayed(new Runnable() {

affirm/src/main/java/com/affirm/android/CheckoutRequest.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import static com.affirm.android.AffirmConstants.API_VERSION_KEY;
2424
import static com.affirm.android.AffirmConstants.API_VERSION_VALUE;
2525
import static com.affirm.android.AffirmConstants.CHECKOUT;
26-
import static com.affirm.android.AffirmConstants.CHECKOUT_HEADER_AFFIRM_LOCALE;
27-
import static com.affirm.android.AffirmConstants.CHECKOUT_HEADER_COUNTRY_CODE;
26+
import static com.affirm.android.AffirmConstants.CHECKOUT_META;
27+
import static com.affirm.android.AffirmConstants.CHECKOUT_META_LOCALE;
2828
import static com.affirm.android.AffirmConstants.CHECKOUT_PATH;
2929
import static com.affirm.android.AffirmConstants.MERCHANT;
3030
import static com.affirm.android.AffirmConstants.METADATA;
@@ -39,7 +39,6 @@
3939
import static com.affirm.android.AffirmTracker.TrackingEvent.VCN_CHECKOUT_CREATION_START;
4040
import static com.affirm.android.AffirmTracker.TrackingLevel.INFO;
4141

42-
import java.util.HashMap;
4342
import java.util.Map;
4443

4544
class CheckoutRequest implements AffirmRequest {
@@ -147,7 +146,7 @@ class AffirmCheckoutRequest implements AffirmClient.AffirmApiRequest {
147146
@Override
148147
public String url() {
149148
return AffirmHttpClient.getProtocol()
150-
+ AffirmPlugins.get().checkoutUrl()
149+
+ AffirmPlugins.get().affirmUrl()
151150
+ CHECKOUT_PATH;
152151
}
153152

@@ -193,6 +192,10 @@ public JsonObject body() {
193192
checkoutJson.add(MERCHANT, merchantJson);
194193
checkoutJson.addProperty(API_VERSION_KEY, API_VERSION_VALUE);
195194

195+
JsonObject metaJson = new JsonObject();
196+
metaJson.addProperty(CHECKOUT_META_LOCALE, AffirmPlugins.get().locale());
197+
checkoutJson.add(CHECKOUT_META, metaJson);
198+
196199
// Need to set `platform_type` & `platform_affirm` by default
197200
JsonObject metadataJson = checkoutJson.getAsJsonObject(METADATA);
198201
if (metadataJson == null) {
@@ -209,10 +212,7 @@ public JsonObject body() {
209212
@Nullable
210213
@Override
211214
public Map<String, String> headers() {
212-
HashMap<String, String> headers = new HashMap<>();
213-
headers.put(CHECKOUT_HEADER_AFFIRM_LOCALE, AffirmPlugins.get().locale());
214-
headers.put(CHECKOUT_HEADER_COUNTRY_CODE, AffirmPlugins.get().countryCode());
215-
return headers;
215+
return null;
216216
}
217217
}
218218
}

affirm/src/main/java/com/affirm/android/CookiesUtil.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ private CookiesUtil() {
2020
public static void clearCookies(Context context) {
2121
final CookieManager cookieManager = CookieManager.getInstance();
2222
final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(context);
23-
CookiesUtil.clearCookieByUrl(HTTPS_PROTOCOL + AffirmPlugins.get().promoUrl(),
24-
cookieManager, cookieSyncManager);
25-
CookiesUtil.clearCookieByUrl(HTTPS_PROTOCOL + AffirmPlugins.get().checkoutUrl(),
23+
CookiesUtil.clearCookieByUrl(HTTPS_PROTOCOL + AffirmPlugins.get().affirmUrl(),
2624
cookieManager, cookieSyncManager);
2725
}
2826

affirm/src/main/java/com/affirm/android/ModalFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public void onDetach() {
150150
void onAttached() {
151151
final String html = initialHtml();
152152
webView.loadDataWithBaseURL(
153-
HTTPS_PROTOCOL + AffirmPlugins.get().promoUrl(),
153+
HTTPS_PROTOCOL + AffirmPlugins.get().affirmUrl(),
154154
html, TEXT_HTML, UTF_8, null);
155155
}
156156

affirm/src/main/java/com/affirm/android/PrequalFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ void initViews() {
101101
@Override
102102
void onAttached() {
103103
String publicKey = AffirmPlugins.get().publicKey();
104-
String prequalUri = HTTPS_PROTOCOL + AffirmPlugins.get().promoUrl() + PREQUAL_PATH;
104+
String prequalUri = HTTPS_PROTOCOL + AffirmPlugins.get().affirmUrl() + PREQUAL_PATH;
105105
Uri.Builder builder = Uri.parse(prequalUri).buildUpon();
106106
builder.appendQueryParameter(PREQUAL_PUBLIC_API_KEY, publicKey);
107107
builder.appendQueryParameter(PREQUAL_UNIT_PRICE, amount);

affirm/src/main/java/com/affirm/android/PromoRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ public String url() {
162162
int centAmount = AffirmUtils.decimalDollarsToIntegerCents(dollarAmount);
163163
Uri uri = Uri.parse(String.format(
164164
AffirmHttpClient.getProtocol()
165-
+ AffirmPlugins.get().promoUrl()
165+
+ AffirmPlugins.get().affirmUrl()
166166
+ PROMO_PATH,
167167
AffirmPlugins.get().publicKey()
168168
));

affirm/src/test/java/com/affirm/android/AffirmPluginsTest.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ public void setup() {
1616
}
1717
}
1818

19-
@Test
20-
public void testBaseUrl() {
21-
Truth.assertThat(AffirmPlugins.get().checkoutUrl()).isEqualTo("api.global-sandbox.affirm.com");
22-
}
23-
2419
@Test
2520
public void testBaseJsUrl() {
2621
Truth.assertThat(AffirmPlugins.get().jsUrl()).isEqualTo("cdn1-sandbox.affirm.com");
@@ -37,8 +32,8 @@ public void testEnvironmentName() {
3732
}
3833

3934
@Test
40-
public void testBasePromoUrl() {
41-
Truth.assertThat(AffirmPlugins.get().promoUrl()).isEqualTo("sandbox.affirm.com");
35+
public void testBaseUrl() {
36+
Truth.assertThat(AffirmPlugins.get().affirmUrl()).isEqualTo("sandbox.affirm.com");
4237
}
4338

4439
@Test

affirm/src/test/java/com/affirm/android/CheckoutRequestTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
public class CheckoutRequestTest {
2222

2323
private static final String expectedCheckoutBody =
24-
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\"}}";
24+
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\",\"meta\":{\"locale\":\"en_US\"}}}";
2525

2626
private static final String expectedCheckoutWithCaasBody =
27-
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"caas\":\"4626b631-c5bc-4c4e-800b-dd5fa27ef8b8\",\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\"}}";
27+
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"caas\":\"4626b631-c5bc-4c4e-800b-dd5fa27ef8b8\",\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\",\"meta\":{\"locale\":\"en_US\"}}}";
2828

2929
private static final String expectedCheckoutWithCardAuthWindowBody =
30-
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"card_auth_window\":10,\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\"}}";
30+
"{\"checkout\":{\"items\":{\"wheel\":{\"display_name\":\"Great Deal Wheel\",\"sku\":\"wheel\",\"unit_price\":100000,\"qty\":1,\"item_url\":\"http://merchant.com/great_deal_wheel\",\"item_image_url\":\"http://www.image.com/111\"}},\"currency\":\"USD\",\"shipping\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"billing\":{\"address\":{\"street1\":\"333 Kansas st\",\"city\":\"San Francisco\",\"region1_code\":\"CA\",\"postal_code\":\"94103\",\"country\":\"USA\"},\"name\":{\"full\":\"John Smith\"}},\"shipping_amount\":100000,\"tax_amount\":10000,\"total\":110000,\"metadata\":{\"entity_name\":\"internal-sub_brand-name\",\"shipping_type\":\"UPS Ground\",\"webhook_session_id\":\"ABC123\",\"platform_type\":\"Affirm Android SDK\",\"platform_affirm\":\"%s\"},\"merchant\":{\"public_api_key\":\"Y8CQXFF044903JC0\",\"user_confirmation_url\":\"affirm://checkout/confirmed\",\"user_cancel_url\":\"affirm://checkout/cancelled\",\"card_auth_window\":10,\"user_confirmation_url_action\":\"GET\"},\"api_version\":\"v2\",\"meta\":{\"locale\":\"en_US\"}}}";
3131

3232
private static String generateExpectedCheckoutBody() {
3333
return String.format(expectedCheckoutBody, BuildConfig.VERSION_NAME);

0 commit comments

Comments
 (0)