Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## Changelog

### v2026.2.1 Feb 12, 2026

* Fix SDK to Android SDK 2.3.4 and iOS to 2.3.1

### v2025.2.1 Feb 19, 2025

* Address NPM dependency issue
Expand Down
17 changes: 11 additions & 6 deletions example/src/Screens/HomeScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,19 @@
type PaymentParameters,
type PromptParameters,
ProcessingMode,
type Failure,
} from 'mobile-payments-sdk-react-native';
import React, { useState } from 'react';
import { View, Text, Image, StyleSheet, TouchableOpacity } from 'react-native';
import {

Check failure on line 16 in example/src/Screens/HomeScreen.tsx

View workflow job for this annotation

GitHub Actions / lint

Replace `⏎··View,⏎··Text,⏎··Image,⏎··StyleSheet,⏎··TouchableOpacity,⏎` with `·View,·Text,·Image,·StyleSheet,·TouchableOpacity·`

Check failure on line 16 in example/src/Screens/HomeScreen.tsx

View workflow job for this annotation

GitHub Actions / lint

Replace `⏎··View,⏎··Text,⏎··Image,⏎··StyleSheet,⏎··TouchableOpacity,⏎` with `·View,·Text,·Image,·StyleSheet,·TouchableOpacity·`
View,
Text,
Image,
StyleSheet,
TouchableOpacity,
} from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import uuid from 'react-native-uuid';
import LoadingButton from '../components/LoadingButton';
import HeaderButton from '../components/HeaderButton';
import { SafeAreaView } from 'react-native-safe-area-context';

const HomeView = () => {
const navigation = useNavigation();
Expand Down Expand Up @@ -121,8 +126,8 @@
backgroundColor: 'white',
},
header: {
justifyContent: 'space-between',
flexDirection: 'row',
marginBottom: 50,
paddingLeft: 16,
paddingRight: 16,
},
Expand All @@ -131,8 +136,7 @@
},
content: {
alignItems: 'center',
flex: 1,
justifyContent: 'center',
flex: 9,
paddingLeft: 16,
paddingRight: 16,
},
Expand All @@ -148,6 +152,7 @@
marginBottom: 32,
},
mockButton: {
flex: 1,
alignItems: 'center',
},
mockReaderText: {
Expand Down
2 changes: 1 addition & 1 deletion example/src/Screens/PermissionsScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
Alert,
Platform,
} from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import DismissButton from '../components/DismissButton';
import PermissionRow from '../components/PermissionRow';
import {
Expand All @@ -28,7 +29,6 @@ import {
} from 'react-native-permissions';
import LoadingButton from '../components/LoadingButton';
import BuildConfig from 'react-native-build-config';
import { SafeAreaView } from 'react-native-safe-area-context';

export const requestBluetooth = () => {
requestMultiple(
Expand Down
11 changes: 4 additions & 7 deletions ios/Mappers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ class Mappers {
additionalPayments = AdditionalPaymentMethods.all
} else if (additionalPaymentsRawArray.contains("KEYED")) {
additionalPayments = AdditionalPaymentMethods.keyed
} else if (additionalPaymentsRawArray.contains("TAP_TO_PAY")) {
additionalPayments = AdditionalPaymentMethods.tapToPay
} else if (additionalPaymentsRawArray.contains("CASH")) {
additionalPayments = AdditionalPaymentMethods.cash
}
guard let prompt = PromptMode(rawValue: promptMode) else {
return .failure(.cannotCreatePrompt)
Expand Down Expand Up @@ -45,13 +49,6 @@ class Mappers {
processingMode: processingMode
)
}
else if let idempotencyKey = paymentParameters["idempotencyKey"] as? String {
paymentParams = PaymentParameters(
idempotencyKey: idempotencyKey,
amountMoney: amountMoney,
processingMode: processingMode
)
}

guard let paymentParams
else {
Expand Down
2 changes: 0 additions & 2 deletions ios/MobilePaymentsSdkReactNative.swift
Original file line number Diff line number Diff line change
Expand Up @@ -579,8 +579,6 @@ extension MobilePaymentsSdkReactNative: PaymentManagerDelegate {
switch paymentError {
case .deviceTimeDoesNotMatchServerTime:
errorMessage = "The local device time is out of sync with the server time, which could lead to inaccurate payment reporting. Check your device's time and attempt your action again."
case .idempotencyKeyReused:
errorMessage = "The idempotency key used for this payment has already been used. Review previous payments to ensure you are not processing a duplicate payment, and then try again with a new idempotency key."
case .invalidPaymentParameters:
errorMessage = "The PaymentParameters provided were invalid. Check the request details and try the payment again."
case .invalidPaymentSource:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mobile-payments-sdk-react-native",
"version": "2025.9.1",
"version": "2026.2.1",
"description": "Mobile Payments SDK plug-in for React Native. Enables developers to build secure in-person payment solutions.",
"source": "./src/index.tsx",
"main": "./lib/commonjs/index.js",
Expand Down
1 change: 1 addition & 0 deletions src/models/enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export enum AccountType {
export enum AdditionalPaymentMethodType {
ALL = 'ALL',
KEYED = 'KEYED',
TAP_TO_PAY = 'TAP_TO_PAY',
}

export enum AuthorizationState {
Expand Down
Loading