@aptos-scp/scp-component-rn-device-services 0.2.7 → 0.4.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.
Files changed (110) hide show
  1. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit +0 -0
  2. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/Info.plist +0 -0
  3. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/VersionInfo.plist +0 -0
  4. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.2.mom +0 -0
  5. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.3.mom +0 -0
  6. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.4.mom +0 -0
  7. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.4.omo +0 -0
  8. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.10.mom +0 -0
  9. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.8.6.mom +0 -0
  10. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit v1.9.mom +0 -0
  11. package/ios/Frameworks/Adyen/AdyenToolkit.framework/AdyenToolkit.bundle/adyentoolkit.momd/adyentoolkit.mom +0 -0
  12. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAccountData.h +26 -0
  13. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAdditionalDataRequest.h +38 -0
  14. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAmount.h +16 -0
  15. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYAppData.h +26 -0
  16. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYBalance.h +13 -0
  17. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYCashTransactionRequest.h +35 -0
  18. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYConstants.h +688 -0
  19. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYCurrency.h +33 -0
  20. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDevice.h +308 -0
  21. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceData.h +52 -0
  22. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceManagerDelegate.h +66 -0
  23. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDeviceRegistry.h +125 -0
  24. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYDynamicCurrencyConversionData.h +22 -0
  25. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYErrors.h +153 -0
  26. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCard.h +41 -0
  27. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardBalanceRequest.h +50 -0
  28. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardBalanceResponse.h +38 -0
  29. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadRequest.h +78 -0
  30. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadRequestDelegate.h +25 -0
  31. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardLoadResponse.h +31 -0
  32. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardMask.h +31 -0
  33. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYGiftCardRequest.h +13 -0
  34. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYLocationManager.h +14 -0
  35. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYLoginDelegate.h +80 -0
  36. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYPrintReceiptRequest.h +57 -0
  37. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReceipt.h +33 -0
  38. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReceiptLine.h +92 -0
  39. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYReferralRequest.h +16 -0
  40. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYRefundData.h +54 -0
  41. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYServerSynchronization.h +18 -0
  42. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYSignatureRequest.h +117 -0
  43. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYSpecialTransactionRequest.h +63 -0
  44. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYToneGenerator.h +45 -0
  45. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionData.h +416 -0
  46. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionDetails.h +45 -0
  47. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionProcessorDelegate.h +279 -0
  48. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYTransactionRequest.h +108 -0
  49. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/ADYUIKit.h +30 -0
  50. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/Adyen.h +591 -0
  51. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/AdyenToolkit-umbrella.h +59 -0
  52. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/AdyenToolkit.h +79 -0
  53. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/NSData+ADY.h +31 -0
  54. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/NSString+ADY.h +19 -0
  55. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Headers/adylog.h +176 -0
  56. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Info.plist +0 -0
  57. package/ios/Frameworks/Adyen/AdyenToolkit.framework/Modules/module.modulemap +6 -0
  58. package/ios/SCPRNDeviceServices/Adyen/AdyenConstants.h +40 -0
  59. package/ios/SCPRNDeviceServices/Adyen/AdyenConstants.m +28 -0
  60. package/ios/SCPRNDeviceServices/Adyen/AdyenDelegate.h +23 -0
  61. package/ios/SCPRNDeviceServices/Adyen/AdyenDelegate.m +15 -0
  62. package/ios/SCPRNDeviceServices/Adyen/AdyenDeviceManagerDelegate.h +19 -0
  63. package/ios/SCPRNDeviceServices/Adyen/AdyenDeviceManagerDelegate.m +31 -0
  64. package/ios/SCPRNDeviceServices/Adyen/AdyenLoginDelegate.h +19 -0
  65. package/ios/SCPRNDeviceServices/Adyen/AdyenLoginDelegate.m +26 -0
  66. package/ios/SCPRNDeviceServices/Adyen/AdyenTransactionProcessorDelegate.h +26 -0
  67. package/ios/SCPRNDeviceServices/Adyen/AdyenTransactionProcessorDelegate.m +148 -0
  68. package/ios/SCPRNDeviceServices/AdyenPaymentTerminal.h +19 -0
  69. package/ios/SCPRNDeviceServices/AdyenPaymentTerminal.m +457 -22
  70. package/ios/SCPRNDeviceServices.xcodeproj/project.pbxproj +56 -0
  71. package/lib/AdyenDevice/AdyenDevice.d.ts +56 -0
  72. package/lib/AdyenDevice/AdyenDevice.js +350 -0
  73. package/lib/AdyenDevice/AdyenDevice.js.map +1 -0
  74. package/lib/AdyenDevice/constants.d.ts +13 -0
  75. package/lib/AdyenDevice/constants.js +228 -0
  76. package/lib/AdyenDevice/constants.js.map +1 -0
  77. package/lib/AdyenDevice/index.d.ts +1 -0
  78. package/lib/AdyenDevice/index.js +7 -0
  79. package/lib/AdyenDevice/index.js.map +1 -0
  80. package/lib/AdyenDevice/interfaces.d.ts +175 -0
  81. package/lib/AdyenDevice/interfaces.js +3 -0
  82. package/lib/AdyenDevice/interfaces.js.map +1 -0
  83. package/lib/AurusDevice/AurusDevice.d.ts +6 -6
  84. package/lib/AurusDevice/AurusDevice.js +34 -20
  85. package/lib/AurusDevice/AurusDevice.js.map +1 -1
  86. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.d.ts +2 -3
  87. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.js +13 -22
  88. package/lib/AurusDevice/sdk-interface/AurusPaymentSupport.js.map +1 -1
  89. package/lib/PaymentDeviceFactory.d.ts +5 -5
  90. package/lib/PaymentDeviceFactory.js +4 -4
  91. package/lib/PaymentDeviceFactory.js.map +1 -1
  92. package/lib/PaymentDeviceService.d.ts +4 -3
  93. package/lib/PaymentDeviceService.js +47 -30
  94. package/lib/PaymentDeviceService.js.map +1 -1
  95. package/lib/ScannerDeviceFactory.d.ts +5 -5
  96. package/lib/ScannerDeviceFactory.js +5 -5
  97. package/lib/ScannerDeviceFactory.js.map +1 -1
  98. package/lib/ScannerDeviceService.d.ts +2 -2
  99. package/lib/ScannerDeviceService.js +6 -2
  100. package/lib/ScannerDeviceService.js.map +1 -1
  101. package/lib/configs/inversify/inversify.config.js +4 -7
  102. package/lib/configs/inversify/inversify.config.js.map +1 -1
  103. package/lib/constants/constants.d.ts +0 -4
  104. package/lib/constants/constants.js +0 -4
  105. package/lib/constants/constants.js.map +1 -1
  106. package/lib/interfaces/IDeviceStatus.d.ts +1 -0
  107. package/lib/interfaces/payment/IPayment.d.ts +4 -9
  108. package/lib/interfaces/payment/messages/responses.d.ts +1 -1
  109. package/lib/interfaces/scanner/IScanner.d.ts +2 -8
  110. package/package.json +1 -1
@@ -0,0 +1,591 @@
1
+ //
2
+ // Adyen.h
3
+ //
4
+ // Created by maarten on 6/19/12.
5
+ //
6
+ //
7
+
8
+ #import "ADYDeviceManagerDelegate.h"
9
+ #import "ADYServerSynchronization.h"
10
+ #import "ADYLoginDelegate.h"
11
+ #import "ADYConstants.h"
12
+ #import "ADYTransactionData.h"
13
+
14
+ typedef NS_ENUM(NSUInteger, ADYLoginStatus) {
15
+ ADYLoginStatusLoggedOut,
16
+ ADYLoginStatusLoggingIn,
17
+ ADYLoginStatusLoggedIn,
18
+ ADYLoginStatusLoggingOut
19
+ };
20
+
21
+
22
+ @class ADYAppData;
23
+ @class ADYDeviceData;
24
+ @class ADYPendingTransaction;
25
+ @class ADYTransactionRequest;
26
+ @class ADYTransactionData;
27
+ @class ADYDeviceRegistry;
28
+ @class ADYAccountData;
29
+ @class ADYCurrency;
30
+ @class ADYAmount;
31
+
32
+ /**
33
+ * This notification is posted when an attempt from the bluetooth-device to fetch an HTTP
34
+ * resource from a server, using the iOS device as a proxy, fails. Additional information
35
+ * is available in the notification's <tt>userInfo</tt>:
36
+ * <dl>
37
+ * <dt><tt>ADYNotificationProxyFailedURLKey</tt></dt>
38
+ * <dd>The URL of the resource the device tried to fetch, as an <tt>NSURL</tt> object</dd>
39
+ * <dt><tt>ADYNotificationProxyFailedErrorKey</tt></dt>
40
+ * <dd>The error that occurred, as an <tt>NSError</tt> object</dd>
41
+ * </dl>
42
+ */
43
+ extern NSString *const ADYNotificationProxyFailed;
44
+
45
+ /// This notification is posted when a payment transaction starts.
46
+ extern NSString *const ADYNotificationTransactionStarted;
47
+
48
+ /// This notification is posted when a payment transaction ends.
49
+ extern NSString *const ADYNotificationTransactionEnded;
50
+
51
+ /// To get the `ADYTransactionData` object from the `ADYNotificationTransactionEnded` notification userInfo.
52
+ extern NSString *const ADYNotificationTransactionDataKey;
53
+
54
+ /// Used as key in the <tt>userInfo</tt> of a <tt>ADYNotificationProxyFailed</tt> notification.
55
+ extern NSString *const ADYNotificationProxyFailedURLKey;
56
+ /// Used as key in the <tt>userInfo</tt> of a <tt>ADYNotificationProxyFailed</tt> notification.
57
+ extern NSString *const ADYNotificationProxyFailedErrorKey;
58
+
59
+ /**
60
+ * This class is the main entry point for Adyen payment functionality. Obtain an instance by calling
61
+ * sharedInstance, then call the various methods to handle payment-devices and initiate payments.
62
+ *
63
+ * Notifications
64
+ * =============
65
+ *
66
+ * The Adyen library emits the following notifications through the `NSNotificationCenter`:
67
+ *
68
+ * - `ADYNotificationTransactionStarted`: fired when a payment-transaction starts. A typical
69
+ * use for this notifification is to temporarily stop the application idle-timer (using
70
+ * `UIApplication.idleTimeDisabled` to prevent the iOS device to suspend when the transaction
71
+ * is running.
72
+ * - `ADYNotificationTransactionEnded`: fired when a payment-transaction ends.
73
+ * - `ADYNotificationProxyFailed`: when a bluetooth-device is connected to the iOS device, it
74
+ * will use the iOS device as a proxy to the PSP. Whenever the iOS device fails to relay a proxy-request
75
+ * from the bluetooth device to the PSP, a `ADYNotificationProxyFailed` is fired. The `userInfo` dictionary
76
+ * of this notification contains two keys:
77
+ * - `ADYNotificationProxyFailedURLKey`: the `NSURL` representing the URL that was requested.
78
+ * - `ADYNotificationProxyFailedErrorKey`: an `NSError` object representing the error that occurred
79
+ *
80
+ * ADYError
81
+ * ======
82
+ *
83
+ * All `NSError`s emitted by classes in the `Adyen` library are errors in the `Adyen` error-domain. This
84
+ * value is available in the constant `ADYErrorDomain`. The error-codes that can occur are:
85
+ *
86
+ * - `ADYErrorCodeUnknownError` (0): An unknown error occurred. More information may be
87
+ * available in the `NSError`s `userInfo` under key `NSUnderlyingErrorKey`.
88
+ * - `ADYErrorCodeNoDeviceConnected` (100): An attempt was made to start an operation while
89
+ * no payment device was connected.
90
+ * - `ADYErrorCodeUnauthorizedForDevice` (101): An attempt was made to use a payment device
91
+ * that was configured for another merchant.
92
+ * - `ADYErrorCodeDeviceError` (102): The payment device could not execute a command
93
+ * sent to it.
94
+ * - `ADYErrorCodeInvalidCredentialsForPaymentDevice` (103): Error indicating that the supplied
95
+ * merchant credentials are incorrect for the the payment device used. This may indicate that
96
+ * the device has not been boarded.
97
+ * - `ADYErrorCodeAmountTooLow` (104): Error indicating that a transaction was started with
98
+ * an amount that is too low.
99
+ * - `ADYErrorCodeInvalidCredentialsForPSP` (200): Error indicating that the supplied merchant
100
+ * credentials are incorrect for the PSP.
101
+ * - `ADYErrorCodePaymentDeviceConnectionError` (300): Error indicating that communication with the payment
102
+ * device failed.
103
+ * - `ADYErrorCodeNetworkError` (400): Error indicating that communication over the network failed.
104
+ * - `ADYErrorCodeAppRegistrationFailed` (500): Error indicating that registration of the app failed.
105
+ * - `ADYErrorCodeNoInternetConnection` (401): Error indicating that a backend system could not be
106
+ * reached because the iOS device does not have an internet connection.
107
+ * - `ADYErrorCodeInvalidApp` (501): An attempt is made to register a device from an app that has
108
+ * not been registered.
109
+ * - `ADYErrorCodeUserPermissionError` (502): The user does not have sufficient permissions on the PSP
110
+ * for the requested operation.
111
+ * - `ADYErrorCodeInvalidMerchant` (503): The merchant account given is not valid
112
+ * - `ADYErrorCodeAlreadyLoggedIn` (504): An attempt was made to log in without first logging out
113
+ * - `ADYErrorCodeNotLoggedIn` (505): An attempt was made to log out without first logging in
114
+ * - `ADYErrorCodeAppRegistrationTokenCheckTimeout` (506): Error indicating that, after
115
+ * app-registration, the generated token was not propagated across the entire backend
116
+ * in time.
117
+ * - `ADYErrorCodeDeviceEMVError` (600): Error communicating with the EMV device
118
+ * - `ADYErrorCodeDeviceSAPIError` (601): SAPI error
119
+ * - `ADYErrorCodeDevicePrintReceiptFailed` (700): Transaction could not be performed because printing
120
+ * the receipt failed.
121
+ * - `ADYErrorCodePSPValidateError` (701): PSP failed to obtain additional data for card.
122
+ *
123
+ * @warning All method of the <tt>Adyen</tt> class, and all of its returned objects, must be run
124
+ * on the mainthread. Similarly, all methods invoked by an <tt>Adyen</tt> instance on
125
+ * one of its delegates are guaranteed to be invoked on the mainthread.
126
+ *
127
+ * @warning This library relies on notifications from the `EAAccessoryManager` to detect connecting
128
+ * and disconnecting bluetooth devices. These notifications can be disabled application-wide
129
+ * by calling `[EAAccessoryManager unregisterForLocalNotifications]`. To guarantee the correct
130
+ * functioning of the library, *never* call `[EAAccessoryManager unregisterForLocalNotifications]`
131
+ * from your app.
132
+ */
133
+ @interface Adyen : NSObject
134
+
135
+ /**
136
+ * The login status.
137
+ *
138
+ * This is one of:
139
+ *
140
+ * - `ADYLoginStatusLoggedOut`: the library is not currently logged in.
141
+ * - `ADYLoginStatusLoggingIn`: the library is in the process of logging in.
142
+ * - `ADYLoginStatusLoggedIn`: the library is currently logged in.
143
+ * - `ADYLoginStatusLoggingOut`: the library is currently in the process of logging out.
144
+ */
145
+ @property (nonatomic, readonly) ADYLoginStatus loginStatus;
146
+
147
+ /**
148
+ * Set to YES to use Adyen test server
149
+ * Default: NO
150
+ */
151
+ @property (nonatomic, assign) BOOL useTestBackend;
152
+
153
+ /**
154
+ * A single login can have permission to do transactions for multiple merchants. If this is
155
+ * the case, the `availableMerchantCodes` property exposes which merchantCodes are
156
+ * available. Any of these merchantCodes can be assigned to the `activeMerchantCode`
157
+ * property to change the current identity.
158
+ *
159
+ * Whenever a transaction is started, a transaction list fetched or a refund requested,
160
+ * the `activeMerchantCode` will be used. So switching the entire lib to a different
161
+ * identity only requires setting this property.
162
+ *
163
+ * Will return nil unless the `loginStatus` is ADYLoginStatusLoggedIn
164
+ */
165
+ @property (nonatomic, strong) NSString *activeMerchantCode;
166
+
167
+ /**
168
+ * Integrator name. Set company name of your app.
169
+ */
170
+ @property (nonatomic, strong) NSString *integratorName;
171
+
172
+ /**
173
+ * Store Identifier. Set store identifier (usually number) to use during device boarding.
174
+ */
175
+ @property (nonatomic, strong) NSString *store;
176
+
177
+ /**
178
+ * The merchantCodes that can be used, with the current login, to request and initiate anything
179
+ * in the lib. Any of the `availableMerchantCodes` can be set as the `activeMerchantCode` to
180
+ * change the current identity used to start transactions and refunds.
181
+ *
182
+ * Will return nil unless the `loginStatus` is ADYLoginStatusLoggedIn
183
+ */
184
+ @property (nonatomic, readonly) NSArray <NSString *> *availableMerchantCodes;
185
+
186
+ /**
187
+ * The device-registry provides access to all connected payment-devices.
188
+ */
189
+ @property (nonatomic, readonly) ADYDeviceRegistry *deviceRegistry;
190
+
191
+ /**
192
+ * Maximum number of transaction to keep in the database. Set to `NSNotFound` to
193
+ * keep all transactions in the database. This is a persistent property - once a
194
+ * value has been set, its value will persist across app restarts.
195
+ */
196
+ @property (nonatomic, assign) NSUInteger maximumNumberOfTransactions;
197
+
198
+ /**
199
+ * Maximum age of transactions in the database, in days. Set to `NSNotFound` to
200
+ * keep all transactions in the database. If not `NSNotFound`, transactions older
201
+ * than `maximumTransactionAgeDays` will be deleted periodically.
202
+ * This is a persistent property - once a value has been set, its value will persist
203
+ * across app restarts.
204
+ */
205
+ @property (nonatomic, assign) NSUInteger maximumTransactionAgeDays;
206
+
207
+ /**
208
+ * Set to YES to add PSP Reference to the footer of every receipt.
209
+ * Default: NO
210
+ */
211
+ @property (nonatomic, assign) BOOL receiptAddPSPReference;
212
+
213
+ /**
214
+ * When logged in, contains data about the account.
215
+ */
216
+ @property (nonatomic, readonly) ADYAccountData *accountData;
217
+
218
+ /**
219
+ * Software updates for the external payment devices are silently downloaded and
220
+ * installed. The amount of data to be downloaded can be quite large, so by default
221
+ * they are only downloaded while the device is connected to WiFi. Set
222
+ * `allowSilentUpdateWhileOnWWAN` to YES to allow downloading of updates when only
223
+ * a 'cell' connection (3G, 4G) is available.
224
+ */
225
+ @property (nonatomic, assign) BOOL allowSilentUpdateWhileOnWWAN;
226
+
227
+ /**
228
+ * For situations where there can be no internet connection while making a payment, an
229
+ * offline transaction mechanism has been constructed. In this case, the payment device
230
+ * will not communicate with the server directly, but pass all it's transaction data
231
+ * to the app (this framework).
232
+ *
233
+ * Enabling this functionality will introduce some new behaviour in the lib, like automatic
234
+ * downloading of transactions from the payment device (if required) and synchronizing them with
235
+ * the server.
236
+ *
237
+ * If you are not sure if you require this feature, leave it disabled. Temporary connection
238
+ * issues are handled by the lib without the enabling of offline transaction handling. This
239
+ * functionality is used only in situations where the payments are always made while offline.
240
+ *
241
+ * Default: NO
242
+ */
243
+ @property (nonatomic, assign) BOOL offlineTransactionHandlingEnabled;
244
+
245
+ /**
246
+ * The current state of the offline transaction synchronizer. This is part of the Offline
247
+ * Transaction Handling mechanism, which can be enabled using `offlineTransactionHandlingEnabled`.
248
+ */
249
+ @property (nonatomic, readonly) ADYServerSynchronizerState offlineSynchronizationState;
250
+
251
+ /**
252
+ * The date when the last offline transaction synchronization was successfully completed.
253
+ * This is part of the Offline Transaction Handling mechanism, which can be enabled
254
+ * using `offlineTransactionHandlingEnabled`.
255
+ */
256
+ @property (nonatomic, readonly) NSDate *lastOfflineSynchronizationComplete;
257
+
258
+ /**
259
+ A list of supported currencies with their corresponding details, bundled in ADYCurrency objects,
260
+ sorted by their abbreviation.
261
+
262
+ The Merchant account has been configured to support currencies that have been configured during the
263
+ boarding process. These currencies can be viewed in the Adyen back office under the settings of
264
+ the merchant code.
265
+
266
+ This method returns the same currencies as `getCurrencies` but returns ADYCurrency objects instead
267
+ of the plain NSString abbreviation (EUR, USD) of the currencies.
268
+ */
269
+ @property (readonly) NSArray<ADYCurrency *> *currenciesWithDetails;
270
+
271
+ /**
272
+ * Obtaining AdyenToolkit version.
273
+ */
274
+ @property (nonatomic, readonly) NSString *version;
275
+
276
+ /**-------------------------------------------------------------------------------------------------
277
+ * @name Obtaining an instance
278
+ *--------------------------------------------------------------------------------------------------
279
+ */
280
+
281
+ /**
282
+ * Obtains an instance of the Adyen class. This is a singleton instance, so there will only ever be one.
283
+ * Calling this method is low-overhead, so you can safely call it multiple times in your app.
284
+ */
285
+ + (Adyen *)sharedInstance;
286
+
287
+ #pragma mark - Register App methods
288
+
289
+ /**-------------------------------------------------------------------------------------------------
290
+ * @name App Registration
291
+ *--------------------------------------------------------------------------------------------------
292
+ */
293
+
294
+ /**
295
+ * Register the app for use by the given `merchantAccount`, `username`, and `password`.
296
+ *
297
+ * @deprecated Use `loginWithMerchantCode:withUsername:withPassword:andDelegate:` instead.
298
+ */
299
+ - (void)loginWithMerchantCode:(NSString *)merchantCode
300
+ withUsername:(NSString *)username
301
+ withPassword:(NSString *)password
302
+ andCompletion:(void (^)(NSError *))completionBlock __attribute__((deprecated));
303
+
304
+ /**
305
+ * Register the app for use by the given `merchantAccount`, `username`, and `password`.
306
+ *
307
+ * Logging in is only possible when the current `loginStatus` is equal to `ADYLoginStatusLoggedOut`.
308
+ * Attempting to log in with a different status will lead to the delegate to be called with an error.
309
+ *
310
+ * Logging in can take quite a while - in extreme cases, as much as two minutes. Therefore, the caller
311
+ * is to provide a delegate which will be called periodically to be kept informed about the progress,
312
+ * thus enable the user interface to show some sort of progress-view.
313
+ *
314
+ * This method returns immediately, the login process will continue in the background.
315
+ *
316
+ * Note that logging in does _not_ have to take place each time the app starts up. After logging
317
+ * in successfully, the library will save the state, and logging in again is only necessary
318
+ * (and possible) after an explicit call to `logoutWithCompletion:`.
319
+ *
320
+ * @param merchantCode merchant-code as supplied by Adyen.
321
+ * @param username username as supplied by Adyen.
322
+ * @param password password as supplied by Adyen.
323
+ * @param delegate caller-supplied delegate which will be kept informed about the
324
+ * login process' progress, and outcome.
325
+ */
326
+ - (void)loginWithMerchantCode:(NSString *)merchantCode
327
+ withUsername:(NSString *)username
328
+ withPassword:(NSString *)password
329
+ andDelegate:(id<ADYLoginDelegate>)delegate;
330
+
331
+ /** Unregister the App
332
+
333
+ When the App is registered, it is registered for the merchant account that has been used to
334
+ register it. There might be situations where one wants to switch the App from one merchant code to
335
+ another merchant code. This will mainly be applicable for integrators and not for merchants.
336
+
337
+ If a switch from one merchant account to another is required, this logout method can be used to do
338
+ so. In this case, also the settings need to be deleted from the payment device, since it will need
339
+ to be re-boarded and the payment device needs to be released from the previous merchant account,
340
+ using the Terminal Fleet Management functionality in the Adyen system.
341
+
342
+ To delete settings from the payment device, use key "9", hold it for 10 seconds and release it.
343
+ In the menu that will appear, there is an option to delete settings. The password required to
344
+ access the menu can be obtained from Adyen Support.
345
+
346
+ @param none
347
+ @deprecated Use logoutWithCompletion: instead.
348
+ @return void
349
+ */
350
+ - (void)logout __attribute__((deprecated));
351
+
352
+ /**
353
+ * Unregisters the app. This happens asynchronously - if the library is processing a transaction,
354
+ * this transaction is finished first before the actual logout is done.
355
+ * @param completion block called when logout is complete.
356
+ */
357
+ - (void)logoutWithCompletion:(void (^)(NSError *error))completion;
358
+
359
+ /** Retrieve the data that identifies the iOS device and the App
360
+ *
361
+ * The data available via this method is:
362
+ * - the iOS device platform
363
+ * - the iOS device name
364
+ * - the iOS device version
365
+ * - the application name
366
+ * - the version of the Adyen library
367
+ *
368
+ * @return an ADYAppData object containing the mentioned data elements
369
+ */
370
+ - (ADYAppData *)getAppData;
371
+
372
+ /**
373
+ * Check if the device is Jailbroken
374
+ *
375
+ * @return YES if the device is jailbroken
376
+ */
377
+ + (BOOL)checkJailbreak;
378
+
379
+ #pragma mark - Transaction Processing Configuration
380
+
381
+ /**-------------------------------------------------------------------------------------------------
382
+ * @name Transaction Processing Configuration
383
+ * ------------------------------------------------------------------------------------------------
384
+ */
385
+
386
+ /**
387
+ Get a list of supported currencies.
388
+
389
+ The merchant account has been configured to support certain currencies. These currencies can be viewed
390
+ in the Adyen back office under the settings of the merchant code.
391
+
392
+ See also the `currenciesWithDetails` property for more details about these currencies.
393
+
394
+ @param none
395
+ @return An array of NSString objects, containing the supported ISO 4217 Currency codes, like "EUR"
396
+ */
397
+ - (NSArray<NSString *> *)getCurrencies;
398
+
399
+ /*
400
+ Searches for the currency with the provided abbreviation and returns its details if found.
401
+
402
+ @param the abbreviation (ISO 4217 Currency code) to find the corresponding currency details for (EUR, USD, etc)
403
+ @return the `ADYCurrency` object containing the details for `abbr` or nil if no currency was found
404
+ */
405
+ - (ADYCurrency *)currencyForAbbreviation:(NSString *)abbr;
406
+
407
+ /** Get a list of supported Payment Methods.
408
+
409
+ The payment device has been configured to support payment methods that have been configured during the
410
+ boarding process. These payment methods can be viewed in the Adyen back office under the settings of
411
+ the merchant code under which the payment device has been configured.
412
+
413
+ By calling this method, the App is being informed of these payment methods.
414
+
415
+ @param none
416
+ @return An array of NSString objects, containing the supported payment methods, like "visa" or "mc"
417
+ */
418
+ - (NSArray *)getSupportedPaymentMethods;
419
+
420
+ /**
421
+ Define whether the library should store every transaction within its database or not.
422
+ Its default value is YES.
423
+
424
+ @param yesOrNo Whether every transaction is stored within the library database or not.
425
+ */
426
+ - (void)setShouldStoreTransactionsInDatabase:(BOOL)yesOrNo;
427
+
428
+ #pragma mark - Transaction Processing
429
+
430
+ /**-------------------------------------------------------------------------------------------------
431
+ * @name Transaction Processing
432
+ * ------------------------------------------------------------------------------------------------
433
+ */
434
+
435
+ /**
436
+ * Send a request to cancel or refund a transaction with the provided pspReference. The Adyen backend will determine which action is needed.
437
+ *
438
+ * The response from the server can't indicate if the cancel/refund was performed or not, only if the cancelOrRefund
439
+ * -request- was successfully received.
440
+ *
441
+ * However, once the request was successfull, if the pspReference of
442
+ * the original transaction is valid and the transaction was not already cancelled/refunded, the cancel/refund will
443
+ * always be performed.
444
+ *
445
+ * When the transactions are retrieved and their refunds are examined, each refund will have a processingState
446
+ * to indicate whether a cancelOrRefund-request was sent.
447
+ *
448
+ */
449
+ - (void)cancelOrRefundTransactionWithPSPReference:(NSString *)pspReference
450
+ merchantReference:(NSString *)merchantReference
451
+ completion:(void (^)(ADYProcessingState refundState, NSError *error))completion;
452
+
453
+ /**
454
+ * Send a request to cancel or refund a transaction with the provided combination of tenderReference and UniqueTerminalId (Model-SerialNumber).
455
+ *
456
+ * The response from the server can't indicate if the cancel/refund was performed or not, only if the cancelOrRefund
457
+ * -request- was successfully received.
458
+ *
459
+ * However, once the request was successfull, if the combination of tenderReference and UniqueTerminalId of
460
+ * the original transaction is valid and the transaction was not already cancelled/refunded, the cancelOrRefund will
461
+ * always be performed.
462
+ *
463
+ * When the transactions are retrieved and their refunds are examined, each refund will have a processingState
464
+ * to indicate whether a cancelOrRefund-request was sent.
465
+ *
466
+ */
467
+ - (void)cancelOrRefundTransactionWithTenderReference:(NSString *)tenderReference
468
+ uniqueTerminalId:(NSString *)uniqueTerminalId
469
+ merchantReference:(NSString *)merchantReference
470
+ completion:(void (^)(ADYProcessingState refundState, NSError *error))completion;
471
+
472
+
473
+ /**
474
+ * Send a request partialy refund a transaction with the provided combination of pspReference, amount, terminalIdentifier, merchantReference and tenderReference
475
+ *
476
+ * The response from the server can't indicate if the cancel/refund was performed or not, only if the scheduleRefund
477
+ * -request- was successfully received.
478
+ *
479
+ * However, once the request was successfull, if the data of
480
+ * the original transaction is valid and the transaction was not already cancelled/refunded, the refund will
481
+ * always be performed.
482
+ *
483
+ * When the transactions are retrieved and their refunds are examined, each refund will have a processingState
484
+ * to indicate whether a scheduleRefund-request was sent.
485
+ *
486
+ */
487
+ - (void)refundTransactionWithPSPReferece:(NSString *)pspReference
488
+ amountToRefund:(ADYAmount *)amount
489
+ terminalIdentifier:(NSString *)terminalIdentifier
490
+ merchantReference:(NSString *)merchantReference
491
+ tenderReference:(NSString *)tenderReference
492
+ onCompletion:(void (^)(ADYProcessingState, NSError *))completion;
493
+
494
+ #pragma mark - Transaction Retrieval
495
+
496
+ /**-------------------------------------------------------------------------------------------------
497
+ * @name Transaction Retrieval
498
+ * ------------------------------------------------------------------------------------------------
499
+ */
500
+
501
+ /**
502
+ Get a list of all previously processed payments for the `activeMerchantCode`.
503
+
504
+ @return A list of previously processed payments as ADYTransactionData objects or nil if
505
+ not logged in.
506
+ @deprecated This method will be removed in future versions.
507
+ */
508
+ - (NSArray *)getTransactions __deprecated_msg("This method will be removed in future versions.");
509
+
510
+ /**
511
+ Get a list of all previously processed payments for the `activeMerchantCode` that match the
512
+ given search string.
513
+
514
+ @return A list of previously processed payments as ADYTransactionData objects or nil if
515
+ not logged in.
516
+ @deprecated This method will be removed in future versions.
517
+ */
518
+ - (NSArray *)getTransactionsWithSearch:(NSString *)search __deprecated_msg("This method will be removed in future versions.");
519
+
520
+ /**
521
+ Get a transaction (for the `activeMerchantCode`) associated with a given merchant reference.
522
+
523
+ @param merchantReference the requested merchant reference.
524
+ @return An ADYTransactionData associated with the given merchant reference or nil if
525
+ not logged in.
526
+ @deprecated This method will be removed in future versions.
527
+ */
528
+ - (ADYTransactionData *)getTransactionWithReference:(NSString *)merchantReference __deprecated_msg("This method will be removed in future versions.");
529
+
530
+ /**
531
+ The number of transactions for the `activeMerchantCode` associated with a given search string.
532
+
533
+ @param search the requested search string or nil for all transactions.
534
+ @return The number of transactions in the internal database associated with the given search string or zero if
535
+ not logged in.
536
+ @deprecated This method will be removed in future versions.
537
+ */
538
+ - (NSUInteger)numberOfTransactionsInSearch:(NSString *)search __deprecated_msg("This method will be removed in future versions.");
539
+
540
+ /**
541
+ Get a transaction (for the `activeMerchantCode`) from an internal array of transactions that response to a given search string.
542
+
543
+ @param row zero-based position in an internal array.
544
+ @param search a search string or nil to query all transactions.
545
+ @return A transaction associated with the given search string or nil if not logged in.
546
+ @deprecated This method will be removed in future versions.
547
+ */
548
+ - (ADYTransactionData *)getTransactionAtRow:(NSUInteger)row andSearch:(NSString *)search __deprecated_msg("This method will be removed in future versions.");
549
+
550
+ /**
551
+ Get a unique transaction by its PSP reference (for the `activeMerchantCode`).
552
+
553
+ @param pspRef The unique PSP reference of the transaction
554
+ @return The transaction identified by the PSP reference or nil if none are in the local DB for the active merchant.
555
+ @deprecated This method will be removed in future versions.
556
+ */
557
+ - (ADYTransactionData *)getTransaction:(NSString *)pspRef __deprecated_msg("This method will be removed in future versions.");
558
+
559
+ #pragma mark - Logging
560
+
561
+ /**
562
+ * @name Logging
563
+ */
564
+
565
+ /**
566
+ * Sends a crash report to the Adyen logging servers.
567
+ *
568
+ * A crash report is, as the name suggest, a report with details about an
569
+ * app crash. It is _not_ for generic error reporting. Such a report can
570
+ * easily be created using tools like `PLCrashReporter` and/or `Quincy`'s
571
+ * `BWCrashReportTextFormatter`.
572
+ *
573
+ * A log of the internal `AdyenToolkit` processes will be appended and the
574
+ * whole will be logged as an app crash on the Adyen logging servers for
575
+ * debugging purposes.
576
+ */
577
+ - (void)sendCrashReport:(NSString *)crashReport;
578
+
579
+ /**
580
+ * @name Offline synchronization
581
+ */
582
+
583
+ - (NSArray *)pendingOfflineItemIds;
584
+
585
+ - (BOOL)hasPendingOfflineItems;
586
+
587
+ - (NSDate *)getOldestNewOfflineItemCreation;
588
+
589
+ - (NSDate *)getOldestRetryableOfflineItemSubmission;
590
+
591
+ @end
@@ -0,0 +1,59 @@
1
+ #ifdef __OBJC__
2
+ #import <UIKit/UIKit.h>
3
+ #else
4
+ #ifndef FOUNDATION_EXPORT
5
+ #if defined(__cplusplus)
6
+ #define FOUNDATION_EXPORT extern "C"
7
+ #else
8
+ #define FOUNDATION_EXPORT extern
9
+ #endif
10
+ #endif
11
+ #endif
12
+
13
+ #import "ADYAccountData.h"
14
+ #import "ADYAdditionalDataRequest.h"
15
+ #import "ADYAmount.h"
16
+ #import "ADYAppData.h"
17
+ #import "ADYBalance.h"
18
+ #import "ADYCashTransactionRequest.h"
19
+ #import "ADYConstants.h"
20
+ #import "ADYCurrency.h"
21
+ #import "ADYDevice.h"
22
+ #import "ADYDeviceData.h"
23
+ #import "ADYDeviceManagerDelegate.h"
24
+ #import "ADYDeviceRegistry.h"
25
+ #import "ADYDynamicCurrencyConversionData.h"
26
+ #import "Adyen.h"
27
+ #import "AdyenToolkit.h"
28
+ #import "ADYErrors.h"
29
+ #import "ADYGiftCard.h"
30
+ #import "ADYGiftCardBalanceRequest.h"
31
+ #import "ADYGiftCardBalanceResponse.h"
32
+ #import "ADYGiftCardLoadRequest.h"
33
+ #import "ADYGiftCardLoadRequestDelegate.h"
34
+ #import "ADYGiftCardLoadResponse.h"
35
+ #import "ADYGiftCardMask.h"
36
+ #import "ADYGiftCardRequest.h"
37
+ #import "ADYLocationManager.h"
38
+ #import "adylog.h"
39
+ #import "ADYLoginDelegate.h"
40
+ #import "ADYPrintReceiptRequest.h"
41
+ #import "ADYReceipt.h"
42
+ #import "ADYReceiptLine.h"
43
+ #import "ADYReferralRequest.h"
44
+ #import "ADYRefundData.h"
45
+ #import "ADYServerSynchronization.h"
46
+ #import "ADYSignatureRequest.h"
47
+ #import "ADYSpecialTransactionRequest.h"
48
+ #import "ADYToneGenerator.h"
49
+ #import "ADYTransactionData.h"
50
+ #import "ADYTransactionDetails.h"
51
+ #import "ADYTransactionProcessorDelegate.h"
52
+ #import "ADYTransactionRequest.h"
53
+ #import "ADYUIKit.h"
54
+ #import "NSData+ADY.h"
55
+ #import "NSString+ADY.h"
56
+
57
+ FOUNDATION_EXPORT double AdyenToolkitVersionNumber;
58
+ FOUNDATION_EXPORT const unsigned char AdyenToolkitVersionString[];
59
+