Skip to content

Commit 9e0a8b2

Browse files
authored
Add deep link fallback url scheme option (#43)
* Add deep link fallback Url scheme * Add forgotten "fallbackUrlScheme" to VenmoNoce
1 parent 6380968 commit 9e0a8b2

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

android/src/main/java/com/expobraintree/ExpoBraintreeModule.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ class ExpoBraintreeModule(reactContext: ReactApplicationContext) :
7575
payPalClientRef = PayPalClient(
7676
currentActivityRef,
7777
data.getString("clientToken") ?: "",
78-
Uri.parse(data.getString("merchantAppLink") ?: "")
78+
Uri.parse(data.getString("merchantAppLink") ?: ""),
79+
data.getString("fallbackUrlScheme") ?: null
7980
)
8081
val vaultRequest: PayPalVaultRequest = PaypalDataConverter.createVaultRequest(data)
8182
payPalClientRef.createPaymentAuthRequest(
@@ -165,7 +166,8 @@ class ExpoBraintreeModule(reactContext: ReactApplicationContext) :
165166
payPalClientRef = PayPalClient(
166167
currentActivityRef,
167168
data.getString("clientToken") ?: "",
168-
Uri.parse(data.getString("merchantAppLink") ?: "")
169+
Uri.parse(data.getString("merchantAppLink") ?: ""),
170+
data.getString("fallbackUrlScheme") ?: null
169171
)
170172
val checkoutRequest: PayPalCheckoutRequest =
171173
PaypalDataConverter.createCheckoutRequest(data)
@@ -253,7 +255,8 @@ class ExpoBraintreeModule(reactContext: ReactApplicationContext) :
253255
venmoClientRef = VenmoClient(
254256
currentActivityRef,
255257
data.getString("clientToken") ?: "",
256-
Uri.parse(data.getString("merchantAppLink") ?: "")
258+
Uri.parse(data.getString("merchantAppLink") ?: ""),
259+
data.getString("fallbackUrlScheme") ?: null
257260
)
258261
val request: VenmoRequest = VenmoDataConverter.createRequest(data)
259262
venmoClientRef.createPaymentAuthRequest(

example/android/app/src/main/AndroidManifest.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
<data android:scheme="https" />
2727
<data android:host="braintree-example-app.web.app" />
2828
</intent-filter>
29+
<intent-filter>
30+
<action android:name="android.intent.action.VIEW" />
31+
<category android:name="android.intent.category.DEFAULT" />
32+
<category android:name="android.intent.category.BROWSABLE" />
33+
<data android:scheme="${applicationId}.braintree" />
34+
</intent-filter>
2935
</activity>
3036
</application>
31-
</manifest>
37+
</manifest>

example/src/App.tsx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919

2020
export const clientToken = 'sandbox_x62mvdjj_p8ngm2sczm8248vg';
2121
export const merchantAppLink = 'https://braintree-example-app.web.app';
22+
const applicationId = 'com.expobraintreeexample';
2223

2324
export default function App() {
2425
const [isLoading, setIsLoading] = React.useState(false);
@@ -89,6 +90,29 @@ export default function App() {
8990
}}
9091
/>
9192

93+
<Button
94+
title="Click Me To request One time Payment (fallback url scheme)"
95+
onPress={async () => {
96+
try {
97+
setIsLoading(true);
98+
const resultDeviceData = await requestOneTimePayment({
99+
clientToken,
100+
amount: '5',
101+
merchantAppLink: '',
102+
fallbackUrlScheme: `${applicationId}.braintree`,
103+
});
104+
setIsLoading(false);
105+
setResult(JSON.stringify(resultDeviceData));
106+
console.log(JSON.stringify(resultDeviceData));
107+
} catch (ex) {
108+
setResult(JSON.stringify(ex));
109+
console.log(JSON.stringify(ex));
110+
} finally {
111+
setIsLoading(false);
112+
}
113+
}}
114+
/>
115+
92116
<Button
93117
title="Click Me To Tokenize Card"
94118
onPress={async () => {

src/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ export type RequestBillingAgreementOptions = {
6060
isAccessibilityElement?: BoolValue;
6161
hasUserLocationConsent?: BoolValue;
6262
merchantAppLink: string;
63+
fallbackUrlScheme?: string;
6364
};
6465
export type RequestOneTimePaymentOptions = {
6566
amount: string;
@@ -71,6 +72,7 @@ export type RequestOneTimePaymentOptions = {
7172
hasUserLocationConsent?: BoolValue;
7273
clientToken: string;
7374
merchantAppLink: string;
75+
fallbackUrlScheme?: string;
7476
};
7577

7678
export type TokenizeCardOptions = {
@@ -126,6 +128,7 @@ export type RequestVenmoNonceOptions = {
126128
shippingAmount?: string;
127129
totalAmount?: string;
128130
fallbackToWeb?: BoolValue;
131+
fallbackUrlScheme?: string;
129132
};
130133

131134
export type BTVenmoNonceResult = {

0 commit comments

Comments
 (0)