From 1fbfe7fa1ca8a836e7aaa850b30e4caa8cc5aae9 Mon Sep 17 00:00:00 2001 From: Ugo Chukwu Date: Fri, 21 Mar 2025 19:36:52 -0300 Subject: [PATCH 1/3] Add Client side create button to the dev app MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When enabled it’ll create payment intents using the terminal sdk, and when disabled it’ll create payment intents via the stripe api. Client side create is always disabled for p400 readers as it doesn’t support that functionality. Signed-off-by: Ugo Chukwu --- .../src/screens/CollectCardPaymentScreen.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/dev-app/src/screens/CollectCardPaymentScreen.tsx b/dev-app/src/screens/CollectCardPaymentScreen.tsx index 09cdadbef..8e619fc20 100644 --- a/dev-app/src/screens/CollectCardPaymentScreen.tsx +++ b/dev-app/src/screens/CollectCardPaymentScreen.tsx @@ -127,6 +127,7 @@ export default function CollectCardPaymentScreen() { const { params } = useRoute>(); const { simulated, discoveryMethod, deviceType } = params; + const [enableClientSideCreate, setClientSideCreate] = useState(deviceType !== 'verifoneP400'); const { addLogs, clearLogs, setCancel } = useContext(LogContext); const navigation = useNavigation>(); @@ -205,7 +206,7 @@ export default function CollectCardPaymentScreen() { let paymentIntent: PaymentIntent.Type | undefined; let paymentIntentError: StripeError | undefined; - if (deviceType === 'verifoneP400') { + if (deviceType === 'verifoneP400' || !enableClientSideCreate) { const resp = await api.createPaymentIntent({ amount: Number(inputValues.amount), currency: inputValues.currency, @@ -691,6 +692,21 @@ export default function CollectCardPaymentScreen() { } /> + + { + setClientSideCreate(value); + }} + /> + } + /> + Date: Tue, 1 Apr 2025 11:46:39 -0300 Subject: [PATCH 2/3] Address PR comments Rename enable client side -> enable server side, enabled by default for Verifone P400. Signed-off-by: Ugo Chukwu --- dev-app/src/screens/CollectCardPaymentScreen.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dev-app/src/screens/CollectCardPaymentScreen.tsx b/dev-app/src/screens/CollectCardPaymentScreen.tsx index 8e619fc20..32fd67af1 100644 --- a/dev-app/src/screens/CollectCardPaymentScreen.tsx +++ b/dev-app/src/screens/CollectCardPaymentScreen.tsx @@ -127,7 +127,7 @@ export default function CollectCardPaymentScreen() { const { params } = useRoute>(); const { simulated, discoveryMethod, deviceType } = params; - const [enableClientSideCreate, setClientSideCreate] = useState(deviceType !== 'verifoneP400'); + const [createPIServerSide, setServerSideCreate] = useState(deviceType === 'verifoneP400'); const { addLogs, clearLogs, setCancel } = useContext(LogContext); const navigation = useNavigation>(); @@ -206,7 +206,7 @@ export default function CollectCardPaymentScreen() { let paymentIntent: PaymentIntent.Type | undefined; let paymentIntentError: StripeError | undefined; - if (deviceType === 'verifoneP400' || !enableClientSideCreate) { + if (createPIServerSide) { const resp = await api.createPaymentIntent({ amount: Number(inputValues.amount), currency: inputValues.currency, @@ -692,16 +692,16 @@ export default function CollectCardPaymentScreen() { } /> - + { - setClientSideCreate(value); + setServerSideCreate(value); }} /> } From d703491dcfce8c7c6ebe58aa0e42ffe7471410cc Mon Sep 17 00:00:00 2001 From: Ugo Chukwu Date: Tue, 1 Apr 2025 12:06:04 -0300 Subject: [PATCH 3/3] Add server side create option for set up intents Signed-off-by: Ugo Chukwu --- dev-app/src/screens/SetupIntentScreen.tsx | 31 ++++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/dev-app/src/screens/SetupIntentScreen.tsx b/dev-app/src/screens/SetupIntentScreen.tsx index 956dcda22..aab8c6f04 100644 --- a/dev-app/src/screens/SetupIntentScreen.tsx +++ b/dev-app/src/screens/SetupIntentScreen.tsx @@ -43,7 +43,7 @@ export default function SetupIntentScreen() { useState(false); const [collectReason, setCollectReason] = useState('unspecified'); const [moto, setMoto] = useState(false); - +const [createSIServerSide, setServerSideCreate] = useState(deviceType === 'verifoneP400'); const [allowRedisplay, setAllowRedisplay] = useState('always'); @@ -194,7 +194,7 @@ export default function SetupIntentScreen() { let setupIntent: SetupIntent.Type | undefined; let setupIntentError: StripeError | undefined; - if (deviceType === 'verifoneP400') { + if (createSIServerSide) { const resp = await api.createSetupIntent({}); if ('error' in resp) { @@ -360,11 +360,28 @@ export default function SetupIntentScreen() { } /> - + + { + setServerSideCreate(value); + }} + /> + } + /> + + + + ); }