private static boolean isManifestValid(BraintreeFragment fragment) { return ManifestValidator.isUrlSchemeDeclaredInAndroidManifest(fragment.getApplicationContext(), fragment.getReturnUrlScheme(), BraintreeBrowserSwitchActivity.class); }
private Intent getCancelResponseIntent() { return new Intent().setData(Uri.parse(mBraintreeFragment.getReturnUrlScheme() + "://local-payment-cancel?paymentToken=canceled")); } }
private static void launchBrowserSwitch(BraintreeFragment fragment, ThreeDSecureLookup threeDSecureLookup) { String assetsBaseUrl = fragment.getConfiguration().getAssetsUrl() + THREE_D_SECURE_ASSETS_PATH; String returnUrl = String.format("%s/redirect.html?redirect_url=%s://x-callback-url/braintree/threedsecure?", assetsBaseUrl, fragment.getReturnUrlScheme()); Uri redirectUri = Uri.parse(assetsBaseUrl + "/index.html") .buildUpon() .appendQueryParameter("AcsUrl", threeDSecureLookup.getAcsUrl()) .appendQueryParameter("PaReq", threeDSecureLookup.getPareq()) .appendQueryParameter("MD", threeDSecureLookup.getMd()) .appendQueryParameter("TermUrl", threeDSecureLookup.getTermUrl()) .appendQueryParameter("ReturnUrl", returnUrl) .build(); fragment.browserSwitch(BraintreeRequestCodes.THREE_D_SECURE, redirectUri.toString()); } }
private Intent getSuccessResponseIntent() { return new Intent().setData(Uri.parse(mBraintreeFragment.getReturnUrlScheme() + "://local-payment-success?paymentToken=successTokenId")); }
@Override public Object answer(InvocationOnMock invocation) throws Throwable { String requestBody = (String) invocation.getArguments()[1]; JSONObject json = new JSONObject(requestBody); assertEquals("some-route-id", json.getString("route_id")); String expectedRedirectUrl = Uri.parse("http://assets.example.com/mobile/ideal-redirect/0.0.0/index.html?redirect_url=" + mBraintreeFragment.getReturnUrlScheme() + "://").toString(); assertEquals(expectedRedirectUrl, json.getString("redirect_url")); HttpResponseCallback callback = (HttpResponseCallback) invocation.getArguments()[2]; callback.success(stringFromFixture("payment_methods/pending_ideal_bank_payment.json")); return null; } }).when(mMockApiClient).post(eq("/ideal-payments"), any(String.class), any(HttpResponseCallback.class));
@Override public Object answer(InvocationOnMock invocation) throws Throwable { String requestBody = (String) invocation.getArguments()[1]; JSONObject json = new JSONObject(requestBody); assertEquals("Doe", json.getString("lastName")); assertEquals("1.10", json.getString("amount")); assertEquals("Den Haag", json.getString("city")); assertEquals("2585 GJ", json.getString("postalCode")); assertEquals("sale", json.getString("intent")); assertEquals("Jon", json.getString("firstName")); assertEquals("639847934", json.getString("phone")); assertEquals("NL", json.getString("countryCode")); assertEquals("EUR", json.getString("currencyIsoCode")); assertEquals("ideal", json.getString("fundingSource")); assertEquals("jon@getbraintree.com", json.getString("payerEmail")); assertEquals("836486 of 22321 Park Lake", json.getString("line1")); assertEquals("Apt 2", json.getString("line2")); assertEquals("CA", json.getString("state")); assertEquals("local-merchant-account-id", json.getString("merchantAccountId")); assertTrue(json.getJSONObject("experienceProfile").getBoolean("noShipping")); String expectedCancelUrl = Uri.parse(mBraintreeFragment.getReturnUrlScheme() + "://local-payment-cancel").toString(); String expectedReturnUrl = Uri.parse(mBraintreeFragment.getReturnUrlScheme() + "://local-payment-success").toString(); assertEquals(expectedCancelUrl, json.getString("cancelUrl")); assertEquals(expectedReturnUrl, json.getString("returnUrl")); HttpResponseCallback callback = (HttpResponseCallback) invocation.getArguments()[2]; callback.success(stringFromFixture("payment_methods/local_payment_create_response.json")); return null; } }).when(mMockHttpClient).post(eq("/v1/paypal_hermes/create_payment_resource"), any(String.class), any(HttpResponseCallback.class));
private static <T extends Request> T populateRequestData(BraintreeFragment fragment, T request) { PayPalConfiguration paypalConfiguration = fragment.getConfiguration().getPayPal(); String environment; switch (paypalConfiguration.getEnvironment()) { case "live": environment = EnvironmentManager.LIVE; break; case "offline": environment = EnvironmentManager.MOCK; break; default: environment = paypalConfiguration.getEnvironment(); break; } String clientId = paypalConfiguration.getClientId(); if (clientId == null && EnvironmentManager.MOCK.equals(environment)) { clientId = "FAKE-PAYPAL-CLIENT-ID"; } request.environment(environment) .clientId(clientId) .cancelUrl(fragment.getReturnUrlScheme(), "cancel") .successUrl(fragment.getReturnUrlScheme(), "success"); return request; }
String returnUrl = fragment.getReturnUrlScheme() + "://" + LOCAL_PAYMENT_SUCCESSS; String cancel = fragment.getReturnUrlScheme() + "://" + LOCAL_PAYMENT_CANCEL;
ASSET_SERVER_REDIRECT_PATH + fragment.getReturnUrlScheme() + "://").toString();
fragment.getApplicationContext(), fragment.getReturnUrlScheme(), BraintreeBrowserSwitchActivity.class) && !sWebViewOverride;