@connexup/react-native-square-mobile-payment-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/NativeSquareMobilePaymentSDK.podspec +23 -0
- package/README.md +66 -0
- package/android/build.gradle +81 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/DateFormatUtils.java +29 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/ErrorUtilities.kt +56 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentAuthorization.kt +185 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentException.kt +8 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentPayment.kt +542 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentReader.kt +344 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentSDK.kt +47 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentSDKPackage.kt +77 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/MobilePaymentSetting.kt +144 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/AdditionalPaymentMethodConvert.kt +46 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/AuthorizationStateConvert.kt +26 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/CardConvert.kt +53 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/CardDetailsConvert.kt +74 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/CardEntryMethodConvert.kt +31 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/CashPaymentDetailsConvert.kt +18 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/CurrencyCodeConvert.kt +204 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/DelayActionConvert.kt +33 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/DeniedReasonConvert.kt +28 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/DigitalWalletDetailsConvert.kt +18 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ErrorDetailsConvert.kt +32 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ExternalPaymentDetailsConvert.kt +25 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/LocationConvert.kt +31 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/MoneyConvert.kt +31 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/OfflineStatusConvert.kt +21 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/PaymentConvert.kt +93 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/PaymentProcessingFeeConvert.kt +39 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/PaymentSettingsConvert.kt +26 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ProcessingModeConvert.kt +28 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderBatteryStatusConvert.kt +19 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderChangeEventConvert.kt +75 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderConnectionTypeConvert.kt +17 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderInfoConvert.kt +51 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderModalConvert.kt +18 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderStateConvert.kt +51 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/ReaderStatusConvert.kt +51 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/SdkSettingsConvert.kt +30 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/SquareAccountDetailsConvert.kt +20 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/TrackingConsentStateConvert.kt +17 -0
- package/android/src/main/java/com/connexup/square/mobilepayment/convert/WalletBrandConvert.kt +41 -0
- package/ios/Converters/AdditionalPaymentMethod+Extension.swift +17 -0
- package/ios/Converters/AdditionalPaymentMethodType+Extension.swift +44 -0
- package/ios/Converters/AuthorizationState+Extension.swift +22 -0
- package/ios/Converters/BatteryLevel+Extension.swift +27 -0
- package/ios/Converters/Card+Extension.swift +33 -0
- package/ios/Converters/CardBrand+Extension.swift +47 -0
- package/ios/Converters/CardCoBrand+Extension.swift +24 -0
- package/ios/Converters/CardEntryMethod+Extension.swift +30 -0
- package/ios/Converters/CardInputMethods+Extension.swift +35 -0
- package/ios/Converters/CardInsertionStatus+Extension.swift +24 -0
- package/ios/Converters/CardPaymentDetails+Extensions.swift +31 -0
- package/ios/Converters/CardPaymentStatus+Extension.swift +28 -0
- package/ios/Converters/Currency+Extension.swift +50 -0
- package/ios/Converters/Location+Extension.swift +19 -0
- package/ios/Converters/MoneyAmount+Extension.swift +30 -0
- package/ios/Converters/Payment+Extension.swift +44 -0
- package/ios/Converters/PaymentSettings+Extension.swift +19 -0
- package/ios/Converters/PaymentStatus+Extension.swift +53 -0
- package/ios/Converters/ProcessingMode+Extension.swift +37 -0
- package/ios/Converters/ReaderBatteryStatus+Extension.swift +19 -0
- package/ios/Converters/ReaderChange+Extension.swift +41 -0
- package/ios/Converters/ReaderConnectionFailureInfo+Extension.swift +20 -0
- package/ios/Converters/ReaderConnectionFailureReason+Extension.swift +40 -0
- package/ios/Converters/ReaderConnectionFailureRecoverySuggestion+Extension.swift +30 -0
- package/ios/Converters/ReaderConnectionInfo+Extension.swift +18 -0
- package/ios/Converters/ReaderConnectionStatus+Extension.swift +26 -0
- package/ios/Converters/ReaderFirmwareInfo+Extension.swift +19 -0
- package/ios/Converters/ReaderInfo+Extension.swift +30 -0
- package/ios/Converters/ReaderModel+Extension.swift +28 -0
- package/ios/Converters/ReaderState+Extension.swift +30 -0
- package/ios/Converters/ReaderStatus+Extension.swift +60 -0
- package/ios/Converters/ReaderStatusInfo+Extension.swift +22 -0
- package/ios/Converters/SDKSettings+Extension.swift +25 -0
- package/ios/Converters/SourceType+Extension.swift +32 -0
- package/ios/Converters/TrackingConsentState+Extension.swift +25 -0
- package/ios/ErrorUtilities.swift +41 -0
- package/ios/MobilePaymentAuthorization.swift +154 -0
- package/ios/MobilePaymentDateFormatter.swift +15 -0
- package/ios/MobilePaymentPayment.swift +478 -0
- package/ios/MobilePaymentReader.swift +248 -0
- package/ios/MobilePaymentSDK.swift +36 -0
- package/ios/MobilePaymentSetting.swift +86 -0
- package/ios/MockReaderUIManage.swift +52 -0
- package/ios/Models/NativeErrorInfo.swift +22 -0
- package/ios/Models/RCTPaymentMoneyParameter.swift +20 -0
- package/ios/Models/RCTPaymentParameters.swift +50 -0
- package/ios/Models/RCTPromptParameters.swift +20 -0
- package/ios/NotificationKeys.swift +9 -0
- package/ios/NotificationUtils.swift +21 -0
- package/ios/RCTMobilePaymentAuthorization.h +12 -0
- package/ios/RCTMobilePaymentAuthorization.mm +78 -0
- package/ios/RCTMobilePaymentPayment.h +12 -0
- package/ios/RCTMobilePaymentPayment.mm +116 -0
- package/ios/RCTMobilePaymentReader.h +12 -0
- package/ios/RCTMobilePaymentReader.mm +114 -0
- package/ios/RCTMobilePaymentSetting.h +10 -0
- package/ios/RCTMobilePaymentSetting.mm +94 -0
- package/ios/UIColor+Extension.swift +81 -0
- package/lib/module/authorization/NativeMobilePaymentAuthorization.js +60 -0
- package/lib/module/authorization/NativeMobilePaymentAuthorization.js.map +1 -0
- package/lib/module/authorization/index.js +44 -0
- package/lib/module/authorization/index.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/payment/NativeMobilePaymentPayment.js +138 -0
- package/lib/module/payment/NativeMobilePaymentPayment.js.map +1 -0
- package/lib/module/payment/index.js +113 -0
- package/lib/module/payment/index.js.map +1 -0
- package/lib/module/reader/NativeMobilePaymentReader.js +151 -0
- package/lib/module/reader/NativeMobilePaymentReader.js.map +1 -0
- package/lib/module/reader/index.js +109 -0
- package/lib/module/reader/index.js.map +1 -0
- package/lib/module/setting/NativeMobilePaymentSetting.js +5 -0
- package/lib/module/setting/NativeMobilePaymentSetting.js.map +1 -0
- package/lib/module/setting/index.js +74 -0
- package/lib/module/setting/index.js.map +1 -0
- package/lib/module/type.js +27 -0
- package/lib/module/type.js.map +1 -0
- package/lib/module/util.js +32 -0
- package/lib/module/util.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/authorization/NativeMobilePaymentAuthorization.d.ts +82 -0
- package/lib/typescript/src/authorization/NativeMobilePaymentAuthorization.d.ts.map +1 -0
- package/lib/typescript/src/authorization/index.d.ts +14 -0
- package/lib/typescript/src/authorization/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +5 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/payment/NativeMobilePaymentPayment.d.ts +725 -0
- package/lib/typescript/src/payment/NativeMobilePaymentPayment.d.ts.map +1 -0
- package/lib/typescript/src/payment/index.d.ts +13 -0
- package/lib/typescript/src/payment/index.d.ts.map +1 -0
- package/lib/typescript/src/reader/NativeMobilePaymentReader.d.ts +318 -0
- package/lib/typescript/src/reader/NativeMobilePaymentReader.d.ts.map +1 -0
- package/lib/typescript/src/reader/index.d.ts +19 -0
- package/lib/typescript/src/reader/index.d.ts.map +1 -0
- package/lib/typescript/src/setting/NativeMobilePaymentSetting.d.ts +49 -0
- package/lib/typescript/src/setting/NativeMobilePaymentSetting.d.ts.map +1 -0
- package/lib/typescript/src/setting/index.d.ts +17 -0
- package/lib/typescript/src/setting/index.d.ts.map +1 -0
- package/lib/typescript/src/type.d.ts +23 -0
- package/lib/typescript/src/type.d.ts.map +1 -0
- package/lib/typescript/src/util.d.ts +3 -0
- package/lib/typescript/src/util.d.ts.map +1 -0
- package/package.json +178 -0
- package/src/authorization/NativeMobilePaymentAuthorization.ts +297 -0
- package/src/authorization/index.ts +60 -0
- package/src/index.ts +4 -0
- package/src/payment/NativeMobilePaymentPayment.ts +1220 -0
- package/src/payment/index.ts +161 -0
- package/src/reader/NativeMobilePaymentReader.ts +463 -0
- package/src/reader/index.ts +140 -0
- package/src/setting/NativeMobilePaymentSetting.ts +254 -0
- package/src/setting/index.ts +91 -0
- package/src/type.ts +35 -0
- package/src/util.ts +31 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderConnectionFailureRecoverySuggestion+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderConnectionFailureRecoverySuggestion {
|
|
12
|
+
var jsonValue: String {
|
|
13
|
+
switch self {
|
|
14
|
+
case .noSuggestion:
|
|
15
|
+
return "NO_SUGGESTION"
|
|
16
|
+
case .retry:
|
|
17
|
+
return "RETRY"
|
|
18
|
+
case .activateAccount:
|
|
19
|
+
return "ACTIVATE_ACCOUNT"
|
|
20
|
+
case .contactSupport:
|
|
21
|
+
return "CONTACT_SUPPORT"
|
|
22
|
+
case .reviewTapToPayGuidelines:
|
|
23
|
+
return "REVIEW_TAP_TO_PAY_GUIDELINES"
|
|
24
|
+
case .enablePasscodeToUseTapToPay:
|
|
25
|
+
return "ENABLE_PASSCODE_TO_USE_TAP_TO_PAY"
|
|
26
|
+
@unknown default:
|
|
27
|
+
return "UNKNOWN"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderConnectionInfo+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderConnectionInfo {
|
|
12
|
+
var jsonDictionary: [String: Any] {
|
|
13
|
+
var result: [String: Any] = [:]
|
|
14
|
+
result["state"] = self.state.jsonValue
|
|
15
|
+
result["failureInfo"] = self.failureInfo?.jsonDictionary
|
|
16
|
+
return result
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderConnectionStatus+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderConnectionState {
|
|
12
|
+
var jsonValue: String {
|
|
13
|
+
switch self {
|
|
14
|
+
case .notConnected:
|
|
15
|
+
return "NOT_CONNECTED"
|
|
16
|
+
case .connecting:
|
|
17
|
+
return "CONNECTING"
|
|
18
|
+
case .connected:
|
|
19
|
+
return "CONNECTED"
|
|
20
|
+
case .failedToConnect:
|
|
21
|
+
return "FAILED_TO_CONNECT"
|
|
22
|
+
@unknown default:
|
|
23
|
+
return "UNKNOWN"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FirmwareInfo+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderFirmwareInfo {
|
|
12
|
+
var jsonDictionary: [String: Any] {
|
|
13
|
+
var result: [String: Any] = [:]
|
|
14
|
+
result["version"] = self.version
|
|
15
|
+
result["updatePercentage"] = self.updatePercentage
|
|
16
|
+
result["failureReason"] = self.failureReason?.localizedDescription
|
|
17
|
+
return result
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderInfo+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderInfo {
|
|
12
|
+
var jsonDictionary: [String: Any] {
|
|
13
|
+
var result: [String: Any] = [:]
|
|
14
|
+
result["id"] = String(self.id)
|
|
15
|
+
result["name"] = self.name
|
|
16
|
+
result["serialNumber"] = self.serialNumber
|
|
17
|
+
result["model"] = self.model.jsonValue
|
|
18
|
+
result["supportedInputMethods"] = self.supportedInputMethods.jsonValue
|
|
19
|
+
result["connectionInfo"] = self.connectionInfo.jsonDictionary
|
|
20
|
+
result["firmwareInfo"] = self.firmwareInfo?.jsonDictionary
|
|
21
|
+
result["state"] = self.state.jsonValue
|
|
22
|
+
result["status"] = self.statusInfo.jsonDictionary
|
|
23
|
+
result["batteryStatus"] = self.batteryStatus?.jsonDictionary
|
|
24
|
+
result["isBlinkable"] = self.isBlinkable
|
|
25
|
+
result["isForgettable"] = self.isForgettable
|
|
26
|
+
result["isConnectionRetryable"] = self.isConnectionRetryable
|
|
27
|
+
result["cardInsertionStatus"] = self.cardInsertionStatus.jsonValue
|
|
28
|
+
return result
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderModel+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderModel {
|
|
12
|
+
var jsonValue: String {
|
|
13
|
+
switch self {
|
|
14
|
+
case .magstripe:
|
|
15
|
+
return "MAGSTRIPE"
|
|
16
|
+
case .contactlessAndChip:
|
|
17
|
+
return "CONTACTLESS_AND_CHIP"
|
|
18
|
+
case .stand:
|
|
19
|
+
return "STAND"
|
|
20
|
+
case .tapToPay:
|
|
21
|
+
return "TAP_TO_PAY"
|
|
22
|
+
case .unknown:
|
|
23
|
+
return "UNKNOWN"
|
|
24
|
+
@unknown default:
|
|
25
|
+
return "UNKNOWN"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderState+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2023/9/12.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderState {
|
|
12
|
+
var jsonValue: String {
|
|
13
|
+
switch self {
|
|
14
|
+
case .disconnected:
|
|
15
|
+
return "DISCONNECTED"
|
|
16
|
+
case .connecting:
|
|
17
|
+
return "CONNECTING"
|
|
18
|
+
case .ready:
|
|
19
|
+
return "READY"
|
|
20
|
+
case .updatingFirmware:
|
|
21
|
+
return "UPDATING_FIRMWARE"
|
|
22
|
+
case .failedToConnect:
|
|
23
|
+
return "FAILED_TO_CONNECT"
|
|
24
|
+
case .disabled:
|
|
25
|
+
return "DISABLED"
|
|
26
|
+
@unknown default:
|
|
27
|
+
return "UNKNOWN"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TrackingConsentState+Extension.swift
|
|
3
|
+
// LocationHub
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2025/10/16.
|
|
6
|
+
//
|
|
7
|
+
import Foundation
|
|
8
|
+
import SquareMobilePaymentsSDK
|
|
9
|
+
|
|
10
|
+
extension ReaderStatus {
|
|
11
|
+
var jsonValue: String {
|
|
12
|
+
switch self {
|
|
13
|
+
case .connectingToDevice:
|
|
14
|
+
return "CONNECTING_TO_DEVICE"
|
|
15
|
+
case .connectingToSquare:
|
|
16
|
+
return "CONNECTING_TO_SQUARE"
|
|
17
|
+
case .readerUnavailable:
|
|
18
|
+
return "READER_UNAVAILABLE"
|
|
19
|
+
case .faulty:
|
|
20
|
+
return "FAULTY"
|
|
21
|
+
case .ready:
|
|
22
|
+
return "READY"
|
|
23
|
+
@unknown default:
|
|
24
|
+
return "UNKNOWN"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
extension ReaderUnavailableReason {
|
|
30
|
+
var jsonValue: String? {
|
|
31
|
+
switch self {
|
|
32
|
+
case .blockingFirmwareUpdate:
|
|
33
|
+
return "BLOCKING_UPDATE"
|
|
34
|
+
case .bluetoothDisabled:
|
|
35
|
+
return "BLUETOOTH_DISABLED"
|
|
36
|
+
case .bluetoothFailure:
|
|
37
|
+
return "BLUETOOTH_FAILURE"
|
|
38
|
+
case .tapToPayError:
|
|
39
|
+
return "TAP_TO_PAY_ERROR"
|
|
40
|
+
case .tapToPayIsNotLinked:
|
|
41
|
+
return "TAP_TO_PAY_IS_NOT_LINKED"
|
|
42
|
+
case .secureConnectionNetworkFailure:
|
|
43
|
+
return "SECURE_CONNECTION_NETWORK_FAILURE"
|
|
44
|
+
case .readerTimeout:
|
|
45
|
+
return "READER_TIMEOUT"
|
|
46
|
+
case .maxReadersConnected:
|
|
47
|
+
return "MAX_READERS_CONNECTED"
|
|
48
|
+
case .internalError:
|
|
49
|
+
return "INTERNAL_ERROR"
|
|
50
|
+
case .secureConnectionToSquareFailure:
|
|
51
|
+
return "SECURE_CONNECTION_TO_SQUARE_FAILURE"
|
|
52
|
+
case .notConnectedToInternet:
|
|
53
|
+
return "NOT_CONNECTED_TO_INTERNET"
|
|
54
|
+
case .revokedByDevice:
|
|
55
|
+
return "REVOKED_BY_DEVICE"
|
|
56
|
+
@unknown default:
|
|
57
|
+
return "UNKNOWN"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReaderStatusInfo+Extension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2025/10/16.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension ReaderStatusInfo {
|
|
12
|
+
var jsonDictionary: [String: Any] {
|
|
13
|
+
var result: [String: Any] = [:]
|
|
14
|
+
result["status"] = self.status.jsonValue
|
|
15
|
+
if let unavailableReasonInfo = self.unavailableReasonInfo {
|
|
16
|
+
result["unavailableReason"] = unavailableReasonInfo.reason.jsonValue
|
|
17
|
+
result["title"] = unavailableReasonInfo.title
|
|
18
|
+
result["description"] = unavailableReasonInfo.detail
|
|
19
|
+
}
|
|
20
|
+
return result
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SDKSettings.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2024/6/18.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension SDKSettings {
|
|
12
|
+
var jsonDictionary: [String: Any] {
|
|
13
|
+
var result: [String: Any] = [:]
|
|
14
|
+
switch self.environment {
|
|
15
|
+
case .production:
|
|
16
|
+
result["environment"] = "PRODUCTION"
|
|
17
|
+
case .sandbox:
|
|
18
|
+
result["environment"] = "SANDBOX"
|
|
19
|
+
@unknown default:
|
|
20
|
+
result["environment"] = "UNKNOWN"
|
|
21
|
+
}
|
|
22
|
+
result["version"] = self.version
|
|
23
|
+
return result
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SourceTypeExtension.swift
|
|
3
|
+
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2024/4/22.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SquareMobilePaymentsSDK
|
|
10
|
+
|
|
11
|
+
extension SourceType {
|
|
12
|
+
var jsonValue: String {
|
|
13
|
+
switch self {
|
|
14
|
+
case .card:
|
|
15
|
+
return "CARD"
|
|
16
|
+
case .cash:
|
|
17
|
+
return "CASH"
|
|
18
|
+
case .external:
|
|
19
|
+
return "EXTERNAL"
|
|
20
|
+
case .wallet:
|
|
21
|
+
return "WALLET"
|
|
22
|
+
case .bankAccount:
|
|
23
|
+
return "BANK_ACCOUNT"
|
|
24
|
+
case .squareAccount:
|
|
25
|
+
return "SQUARE_ACCOUNT"
|
|
26
|
+
case .unknown:
|
|
27
|
+
return "UNKNOWN"
|
|
28
|
+
@unknown default:
|
|
29
|
+
return "UNKNOWN"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TrackingConsentState+Extension.swift
|
|
3
|
+
// LocationHub
|
|
4
|
+
//
|
|
5
|
+
// Created by chancetio on 2025/10/16.
|
|
6
|
+
//
|
|
7
|
+
import Foundation
|
|
8
|
+
import SquareMobilePaymentsSDK
|
|
9
|
+
|
|
10
|
+
extension TrackingConsentState {
|
|
11
|
+
var jsonValue: String {
|
|
12
|
+
switch self {
|
|
13
|
+
case .pending:
|
|
14
|
+
return "PENDING"
|
|
15
|
+
case .granted:
|
|
16
|
+
return "GRANTED"
|
|
17
|
+
case .denied:
|
|
18
|
+
return "DENIED"
|
|
19
|
+
case .notRequired:
|
|
20
|
+
return "NOT_REQUIRED"
|
|
21
|
+
@unknown default:
|
|
22
|
+
return "UNKNOWN"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNMobilePaymentErrorUtilities.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by chancetio on 2023/9/12.
|
|
5
|
+
//
|
|
6
|
+
import Foundation
|
|
7
|
+
|
|
8
|
+
enum ErrorUtilities {
|
|
9
|
+
static let UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
10
|
+
static let PARAMS_ERROR = "PARAMS_ERROR"
|
|
11
|
+
|
|
12
|
+
static func createNativeModuleError(code: String?, message: String?) -> String? {
|
|
13
|
+
return serializeErrorToJson(code: code, message: message, debugCode: nil, debugMessage: nil)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static func serializeErrorToJson(code: String?, error: NSError) -> String? {
|
|
17
|
+
let debugCode = error.userInfo["com.squareup.MobilePaymentsSDK.ErrorDebugCode"] as? String
|
|
18
|
+
let debugMessage = error.userInfo["com.squareup.MobilePaymentsSDK.ErrorDebugMessage"] as? String
|
|
19
|
+
return serializeErrorToJson(code: code, message: error.localizedDescription, debugCode: debugCode, debugMessage: debugMessage)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private static func serializeErrorToJson(code: String?,
|
|
23
|
+
message: String?,
|
|
24
|
+
debugCode: String?,
|
|
25
|
+
debugMessage: String?) -> String?
|
|
26
|
+
{
|
|
27
|
+
var errObject: [String: String] = [:]
|
|
28
|
+
errObject["code"] = code
|
|
29
|
+
errObject["message"] = message
|
|
30
|
+
errObject["debugCode"] = debugCode
|
|
31
|
+
errObject["debugMessage"] = debugMessage
|
|
32
|
+
|
|
33
|
+
let jsonData = try? JSONSerialization.data(withJSONObject: errObject, options: .prettyPrinted)
|
|
34
|
+
|
|
35
|
+
guard let jsonData = jsonData else {
|
|
36
|
+
return "{'message': 'failed to serialize error'}"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return String(data: jsonData, encoding: .utf8)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MobilePaymentAuthorization.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by chancetio on 2023/9/12.
|
|
5
|
+
//
|
|
6
|
+
import Foundation
|
|
7
|
+
import SquareMobilePaymentsSDK
|
|
8
|
+
|
|
9
|
+
let AuthorizationErrorNoNetwork = "AUTHORIZATION_ERROR_NO_NETWORK"
|
|
10
|
+
let AuthorizationErrorAlreadyAuthorized = "AUTHORIZATION_ERROR_ALREADY_AUTHORIZED"
|
|
11
|
+
let AuthorizationErrorAlreadyInProgress = "AUTHORIZATION_ERROR_ALREADY_IN_PROGRESS"
|
|
12
|
+
let AuthorizationErrorDeauthorizationInProgress = "AUTHORIZATION_ERROR_DEAUTHORIZATION_IN_PROGRESS"
|
|
13
|
+
let AuthorizationErrorAuthorizationCodeAlreadyRedeemed = "AUTHORIZATION_ERROR_AUTHORIZATION_CODE_ALREADY_REDEEMED"
|
|
14
|
+
let AuthorizationErrorExpiredAuthorizationCode = "AUTHORIZATION_ERROR_EXPIRED_AUTHORIZATION_CODE"
|
|
15
|
+
let AuthorizationErrorInvalidAuthorizationCode = "AUTHORIZATION_ERROR_INVALID_AUTHORIZATION_CODE"
|
|
16
|
+
let AuthorizationErrorInvalidAccessToken = "AUTHORIZATION_ERROR_INVALID_ACCESS_TOKEN"
|
|
17
|
+
let AuthorizationErrorEmptyAccessToken = "AUTHORIZATION_ERROR_EMPTY_ACCESS_TOKEN"
|
|
18
|
+
let AuthorizationErrorInvalidLocationID = "AUTHORIZATION_ERROR_INVALID_LOCATION_ID"
|
|
19
|
+
let AuthorizationErrorLocationNotActivatedForCardProcessing = "AUTHORIZATION_ERROR_LOCATION_NOT_ACTIVATED_FOR_CARD_PROCESSING"
|
|
20
|
+
let AuthorizationErrorEmptyLocationID = "AUTHORIZATION_ERROR_EMPTY_LOCATION_ID"
|
|
21
|
+
let AuthorizationErrorUnsupportedCountry = "AUTHORIZATION_ERROR_UNSUPPORTED_COUNTRY"
|
|
22
|
+
let AuthorizationErrorDeviceTimeDoesNotMatchServerTime = "AUTHORIZATION_ERROR_DEVICE_TIME_DOES_NOT_MATCH_SERVER_TIME"
|
|
23
|
+
let AuthorizationErrorUnexpected = "AUTHORIZATION_ERROR_UNEXPECTED"
|
|
24
|
+
|
|
25
|
+
@objc public protocol RCTMobilePaymentAuthorizationEventEmitter {
|
|
26
|
+
func onAuthorizationStateDidChange(_ value: String)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@objcMembers
|
|
30
|
+
public class MobilePaymentAuthorization: NSObject {
|
|
31
|
+
private lazy var observer = MobilePaymentAuthorizationObserver(owner: self)
|
|
32
|
+
|
|
33
|
+
public weak var emitter: RCTMobilePaymentAuthorizationEventEmitter?
|
|
34
|
+
|
|
35
|
+
deinit {
|
|
36
|
+
print("deinit")
|
|
37
|
+
invalidate()
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public func initialize() {
|
|
41
|
+
print("auth initialize")
|
|
42
|
+
NotificationUtils.addObserver(self, selector: #selector(onSDKInitialize), name: MobilePaymentNotificationKeys.sdkInitialized.rawValue)
|
|
43
|
+
if MobilePaymentSDK.shared.isInitialized {
|
|
44
|
+
print("auth onSDKInitialize")
|
|
45
|
+
onSDKInitialize()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public func invalidate() {
|
|
50
|
+
print("auth invalidate")
|
|
51
|
+
NotificationUtils.removeObserver(self)
|
|
52
|
+
if MobilePaymentSDK.shared.isInitialized {
|
|
53
|
+
MobilePaymentsSDK.shared.authorizationManager.remove(observer)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@objc
|
|
58
|
+
private func onSDKInitialize() {
|
|
59
|
+
MobilePaymentsSDK.shared.authorizationManager.remove(observer)
|
|
60
|
+
MobilePaymentsSDK.shared.authorizationManager.add(observer)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public func authorize(accessToken: String, locationId: String, completion: @escaping (_ error: NativeErrorInfo?) -> Void) {
|
|
64
|
+
DispatchQueue.main.async {
|
|
65
|
+
MobilePaymentsSDK.shared.authorizationManager.authorize(withAccessToken: accessToken, locationID: locationId) { [weak self] error in
|
|
66
|
+
guard let self = self else {
|
|
67
|
+
return
|
|
68
|
+
}
|
|
69
|
+
if let error = error {
|
|
70
|
+
let errorCode = self.authorizationErrorCode(nativeErrorCode: (error as NSError).code)
|
|
71
|
+
completion(NativeErrorInfo(code: errorCode, message: ErrorUtilities.serializeErrorToJson(code: errorCode, error: error as NSError), error: error))
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
completion(nil)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public func deauthorize(completion: @escaping (_ error: NativeErrorInfo?) -> Void) {
|
|
80
|
+
DispatchQueue.main.async {
|
|
81
|
+
if MobilePaymentsSDK.shared.authorizationManager.state == .notAuthorized {
|
|
82
|
+
completion(nil)
|
|
83
|
+
return
|
|
84
|
+
}
|
|
85
|
+
MobilePaymentsSDK.shared.authorizationManager.deauthorize { [weak self] in
|
|
86
|
+
guard self != nil else {
|
|
87
|
+
return
|
|
88
|
+
}
|
|
89
|
+
completion(nil)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
public func state() -> String {
|
|
95
|
+
return MobilePaymentsSDK.shared.authorizationManager.state.jsonValue
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
public func location() -> [String: Any]? {
|
|
99
|
+
return MobilePaymentsSDK.shared.authorizationManager.location?.jsonDictionary
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private func authorizationErrorCode(nativeErrorCode: Int) -> String {
|
|
103
|
+
if let error = AuthorizationError(rawValue: nativeErrorCode) {
|
|
104
|
+
switch error {
|
|
105
|
+
case .alreadyAuthorized:
|
|
106
|
+
return AuthorizationErrorAlreadyAuthorized
|
|
107
|
+
case .alreadyInProgress:
|
|
108
|
+
return AuthorizationErrorAlreadyInProgress
|
|
109
|
+
case .authorizationCodeAlreadyRedeemed:
|
|
110
|
+
return AuthorizationErrorAuthorizationCodeAlreadyRedeemed
|
|
111
|
+
case .deauthorizationInProgress:
|
|
112
|
+
return AuthorizationErrorDeauthorizationInProgress
|
|
113
|
+
case .deviceTimeDoesNotMatchServerTime:
|
|
114
|
+
return AuthorizationErrorDeviceTimeDoesNotMatchServerTime
|
|
115
|
+
case .emptyLocationID:
|
|
116
|
+
return AuthorizationErrorEmptyLocationID
|
|
117
|
+
case .emptyAccessToken:
|
|
118
|
+
return AuthorizationErrorEmptyAccessToken
|
|
119
|
+
case .expiredAuthorizationCode:
|
|
120
|
+
return AuthorizationErrorExpiredAuthorizationCode
|
|
121
|
+
case .invalidAuthorizationCode:
|
|
122
|
+
return AuthorizationErrorInvalidAuthorizationCode
|
|
123
|
+
case .invalidAccessToken:
|
|
124
|
+
return AuthorizationErrorInvalidAccessToken
|
|
125
|
+
case .invalidLocationID:
|
|
126
|
+
return AuthorizationErrorInvalidLocationID
|
|
127
|
+
case .locationNotActivatedForCardProcessing:
|
|
128
|
+
return AuthorizationErrorLocationNotActivatedForCardProcessing
|
|
129
|
+
case .noNetwork:
|
|
130
|
+
return AuthorizationErrorNoNetwork
|
|
131
|
+
case .unsupportedCountry:
|
|
132
|
+
return AuthorizationErrorUnsupportedCountry
|
|
133
|
+
case .unexpected:
|
|
134
|
+
return AuthorizationErrorUnexpected
|
|
135
|
+
@unknown default:
|
|
136
|
+
return ErrorUtilities.UNKNOWN_ERROR
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
return ErrorUtilities.UNKNOWN_ERROR
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
class MobilePaymentAuthorizationObserver: AuthorizationStateObserver {
|
|
145
|
+
weak var owner: MobilePaymentAuthorization?
|
|
146
|
+
|
|
147
|
+
init(owner: MobilePaymentAuthorization) {
|
|
148
|
+
self.owner = owner
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
func authorizationStateDidChange(_ authorizationState: AuthorizationState) {
|
|
152
|
+
owner?.emitter?.onAuthorizationStateDidChange(authorizationState.jsonValue)
|
|
153
|
+
}
|
|
154
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MobilePaymentDateFormatter.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by chancetio on 2023/9/13.
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
import Foundation
|
|
8
|
+
|
|
9
|
+
enum MobilePaymentDateFormatter {
|
|
10
|
+
private static let dateFormatter = ISO8601DateFormatter()
|
|
11
|
+
|
|
12
|
+
static func iso8601String(from date: Date) -> String {
|
|
13
|
+
return dateFormatter.string(from: date)
|
|
14
|
+
}
|
|
15
|
+
}
|