Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
skirsche-ieffects authored and Paschmid committed Mar 3, 2021
0 parents commit facd3a4
Show file tree
Hide file tree
Showing 209 changed files with 27,049 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.DS_Store
/.build
/Packages
/.swiftpm
/*.xcodeproj
xcuserdata/
39 changes: 39 additions & 0 deletions Datatrans.xcframework/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-x86_64-simulator</string>
<key>LibraryPath</key>
<string>Datatrans.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>Datatrans.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
//
// CardIOCreditCardInfo.h
// Version 5.2.0
//
// See the file "LICENSE.md" for the full license governing this code.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/// CardIOCreditCardType Identifies type of card.
typedef NS_ENUM(NSInteger, CardIOCreditCardType) {
/// The card number does not correspond to any recognizable card type.
CardIOCreditCardTypeUnrecognized = 0,
/// The card number corresponds to multiple card types (e.g., when only a few digits have been entered).
CardIOCreditCardTypeAmbiguous = 1,
/// American Express
CardIOCreditCardTypeAmex = '3',
/// Japan Credit Bureau
CardIOCreditCardTypeJCB = 'J',
/// VISA
CardIOCreditCardTypeVisa = '4',
/// MasterCard
CardIOCreditCardTypeMastercard = '5',
/// Discover Card
CardIOCreditCardTypeDiscover = '6'
};


/// Container for the information about a card.
@interface CardIOCreditCardInfo : NSObject<NSCopying>

/// Card number.
@property(nonatomic, copy, readwrite) NSString *cardNumber;

/// Card number with all but the last four digits obfuscated.
@property(nonatomic, copy, readonly) NSString *redactedCardNumber;

/// January == 1
/// @note expiryMonth & expiryYear may be 0, if expiry information was not requested.
@property(nonatomic, assign, readwrite) NSUInteger expiryMonth;

/// The full four digit year.
/// @note expiryMonth & expiryYear may be 0, if expiry information was not requested.
@property(nonatomic, assign, readwrite) NSUInteger expiryYear;

/// Security code (aka CSC, CVV, CVV2, etc.)
/// @note May be nil, if security code was not requested.
@property(nonatomic, copy, readwrite) NSString *cvv;

/// Postal code. Format is country dependent.
/// @note May be nil, if postal code information was not requested.
@property(nonatomic, copy, readwrite) NSString *postalCode;

/// Was the card number scanned (as opposed to entered manually)?
@property(nonatomic, assign, readwrite) BOOL scanned;

/// The rectified card image; usually 428x270.
@property(nonatomic, strong, readwrite) UIImage *cardImage;

/// Derived from cardNumber.
/// @note CardIOCreditInfo objects returned by either of the delegate methods
/// userDidProvideCreditCardInfo:inPaymentViewController:
/// or cardIOView:didScanCard:
/// will never return a cardType of CardIOCreditCardTypeAmbiguous.
@property(nonatomic, assign, readonly) CardIOCreditCardType cardType;

/// Convenience method which returns a card type string suitable for display (e.g. "Visa", "American Express", "JCB", "MasterCard", or "Discover").
/// Where appropriate, this string will be translated into the language specified.
/// @param cardType The card type.
/// @param languageOrLocale See CardIOPaymentViewController.h for a detailed explanation of languageOrLocale.
/// @return Card type string suitable for display.
+ (NSString *)displayStringForCardType:(CardIOCreditCardType)cardType usingLanguageOrLocale:(NSString *)languageOrLocale;

/// Returns a 36x25 credit card logo, at a resolution appropriate for the device.
/// @param cardType The card type.
/// @return 36x25 credit card logo.
+ (UIImage *)logoForCardType:(CardIOCreditCardType)cardType;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// CardIODetectionMode.h
// Version 5.2.0
//
// See the file "LICENSE.md" for the full license governing this code.
//
//

#ifndef icc_CardIODetectionMode_h
#define icc_CardIODetectionMode_h

typedef NS_ENUM(NSInteger, CardIODetectionMode) {
CardIODetectionModeCardImageAndNumber = 0,
CardIODetectionModeCardImageOnly,
CardIODetectionModeAutomatic
};

#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// CardIOUtilities.h
// Version 5.2.0
//
// See the file "LICENSE.md" for the full license governing this code.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface CardIOUtilities : NSObject

/// Please send the output of this method with any technical support requests.
/// @return Human-readable version of this library.
+ (NSString *)libraryVersion;

/// Determine whether this device supports camera-based card scanning, considering
/// factors such as hardware support and OS version.
///
/// card.io automatically provides manual entry of cards as a fallback,
/// so it is not typically necessary for your app to check this.
///
/// @return YES iff the user's device supports camera-based card scanning.
+ (BOOL)canReadCardWithCamera;

/// The preload method prepares card.io to launch faster. Calling preload is optional but suggested.
/// On an iPhone 5S, for example, preloading makes card.io launch ~400ms faster.
/// The best time to call preload is when displaying a view from which card.io might be launched;
/// e.g., inside your view controller's viewWillAppear: method.
/// preload works in the background; the call to preload returns immediately.
+ (void)preload;

/// Returns a doubly Gaussian-blurred screenshot, intended for screenshots when backgrounding.
/// @return Blurred screenshot.
+ (UIImageView *)blurredScreenImageView;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
//
// CardIOView.h
// Version 5.2.0
//
// See the file "LICENSE.md" for the full license governing this code.
//

#import <UIKit/UIKit.h>
#import "CardIOViewDelegate.h"
#import "CardIODetectionMode.h"

/// CardIOView is one of two main entry points into the card.io SDK.
/// @see CardIOPaymentViewController
@interface CardIOView : UIView


#pragma mark - Properties you MUST set

/// Typically, your view controller will set itself as this delegate.
@property(nonatomic, weak, readwrite) id<CardIOViewDelegate> delegate;


#pragma mark - Properties you MAY set

/// The preferred language for all strings appearing in the user interface.
/// If not set, or if set to nil, defaults to the device's current language setting.
///
/// Can be specified as a language code ("en", "fr", "zh-Hans", etc.) or as a locale ("en_AU", "fr_FR", "zh-Hant_HK", etc.).
/// If card.io does not contain localized strings for a specified locale, then it will fall back to the language. E.g., "es_CO" -> "es".
/// If card.io does not contain localized strings for a specified language, then it will fall back to American English.
///
/// If you specify only a language code, and that code matches the device's currently preferred language,
/// then card.io will attempt to use the device's current region as well.
/// E.g., specifying "en" on a device set to "English" and "United Kingdom" will result in "en_GB".
///
/// These localizations are currently included:
/// ar,da,de,en,en_AU,en_GB,es,es_MX,fr,he,is,it,ja,ko,ms,nb,nl,pl,pt,pt_BR,ru,sv,th,tr,zh-Hans,zh-Hant,zh-Hant_TW.
@property(nonatomic, copy, readwrite) NSString *languageOrLocale;

/// Alter the card guide (bracket) color. Opaque colors recommended.
/// Defaults to nil; if nil, will use card.io green.
@property(nonatomic, retain, readwrite) UIColor *guideColor;

/// Set to YES to show the card.io logo over the camera instead of the PayPal logo. Defaults to NO.
@property(nonatomic, assign, readwrite) BOOL useCardIOLogo;

/// Hide the PayPal or card.io logo in the scan view. Defaults to NO.
@property(nonatomic, assign, readwrite) BOOL hideCardIOLogo;

/// By default, in camera view the card guide and the buttons always rotate to match the device's orientation.
/// All four orientations are permitted, regardless of any app or viewcontroller constraints.
/// If you wish, the card guide and buttons can instead obey standard iOS constraints, including
/// the UISupportedInterfaceOrientations settings in your app's plist.
/// Set to NO to follow standard iOS constraints. Defaults to YES. (Does not affect the manual entry screen.)
@property(nonatomic, assign, readwrite) BOOL allowFreelyRotatingCardGuide;

/// Set the scan instruction text. If nil, use the default text. Defaults to nil.
/// Use newlines as desired to control the wrapping of text onto multiple lines.
@property(nonatomic, copy, readwrite) NSString *scanInstructions;

/// A custom view that will be overlaid atop the entire scan view. Defaults to nil.
/// If you set a scanOverlayView, be sure to:
///
/// * Consider rotation. Be sure to test on the iPad with rotation both enabled and disabled.
/// To make rotation synchronization easier, whenever a scanOverlayView is set, and card.io does an
/// in-place rotation (rotates its UI elements relative to their containers), card.io will generate
/// rotation notifications; see CardIOScanningOrientationDidChangeNotification
/// and associated userInfo key documentation below.
/// As with UIKit, the initial rotation is always UIInterfaceOrientationPortrait.
///
/// * Be sure to pass touches through to the superview as appropriate. Note that the entire camera
/// preview responds to touches (triggers refocusing). Test the light button and the toolbar buttons.
///
/// * Minimize animations, redrawing, or any other CPU/GPU/memory intensive activities
@property(nonatomic, retain, readwrite) UIView *scanOverlayView;

/// Set to NO if you don't want the camera to try to scan the card expiration.
/// Defaults to YES.
@property(nonatomic, assign, readwrite) BOOL scanExpiry;

/// CardIODetectionModeCardImageAndNumber: the scanner must successfully identify the card number.
/// CardIODetectionModeCardImageOnly: don't scan the card, just detect a credit-card-shaped card.
/// CardIODetectionModeAutomatic: start as CardIODetectionModeCardImageAndNumber, but fall back to
/// CardIODetectionModeCardImageOnly if scanning has not succeeded within a reasonable time.
/// Defaults to CardIODetectionModeCardImageAndNumber.
///
/// @note Images returned in CardIODetectionModeCardImageOnly mode may be less focused, to accomodate scanning
/// cards that are dominantly white (e.g., the backs of drivers licenses), and thus
/// hard to calculate accurate focus scores for.
@property(nonatomic, assign, readwrite) CardIODetectionMode detectionMode;

/// After a successful scan, the CardIOView will briefly display an image of the card with
/// the computed card number superimposed. This property controls how long (in seconds)
/// that image will be displayed.
/// Set this to 0.0 to suppress the display entirely.
/// Defaults to 1.0.
@property(nonatomic, assign, readwrite) CGFloat scannedImageDuration;

/// Name for orientation change notification.
extern NSString * const CardIOScanningOrientationDidChangeNotification;

/// userInfo key for orientation change notification, to get the current scanning orientation.
///
/// Returned as an NSValue wrapping a UIDeviceOrientation. Sample extraction code:
/// @code
/// NSValue *wrappedOrientation = notification.userInfo[CardIOCurrentScanningOrientation];
/// UIDeviceOrientation scanningOrientation = UIDeviceOrientationPortrait; // set a default value just to be safe
/// [wrappedOrientation getValue:&scanningOrientation];
/// // use scanningOrientation...
/// @endcode
extern NSString * const CardIOCurrentScanningOrientation;

/// userInfo key for orientation change notification, to get the duration of the card.io rotation animations.
///
/// Returned as an NSNumber wrapping an NSTimeInterval (i.e. a double).
extern NSString * const CardIOScanningOrientationAnimationDuration;


#pragma mark - Property you MAY get

/// The actual camera preview area within the CardIOView. Location is relative to the CardIOView's origin.
/// You might want to use this, for example, when adjusting your view controller's view layout.
@property(nonatomic, assign, readonly) CGRect cameraPreviewFrame;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//
// CardIOViewDelegate.h
// Version 5.2.0
//
// See the file "LICENSE.md" for the full license governing this code.
//

#import <Foundation/Foundation.h>

@class CardIOCreditCardInfo;
@class CardIOView;

/// The receiver will be notified when the CardIOView completes it work.
@protocol CardIOViewDelegate<NSObject>

@required

/// This method will be called when the CardIOView completes its work.
/// It is up to you to hide or remove the CardIOView.
/// At a minimum, you should give the user an opportunity to confirm that the card information was captured correctly.
/// @param cardIOView The active CardIOView.
/// @param cardInfo The results of the scan.
/// @note cardInfo will be nil if exiting due to a problem (e.g., no available camera).
- (void)cardIOView:(CardIOView *)cardIOView didScanCard:(CardIOCreditCardInfo *)cardInfo;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//
// DTAddress.h
// datatrans-iphone
//
// Created by bacherma on 06/07/15.
// Copyright 2015 iEffects GmbH. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface DTAddress : NSObject<NSCopying>

@property (nonatomic, copy) NSString* firstName;
@property (nonatomic, copy) NSString* lastName;
@property (nonatomic, copy) NSString* street;
@property (nonatomic, copy) NSString* zipCode;

@property (nonatomic, copy) NSString* city;
@property (nonatomic, copy) NSString* countryCode;
@property (nonatomic, copy) NSString* street2;

- (id)initWithFirstName:(NSString *)firstName
lastName:(NSString *)lastName
street:(NSString *)street
zipCode:(NSString *)zipCode;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

#import <Foundation/Foundation.h>

@class DTPaymentMethodInfo;
@class DTPaymentRequest;
@class DTPaymentMethodToken;

@interface DTAliasPaymentAuthorizationRequest : NSObject

@property (nonatomic, nullable, copy) NSString* cvv;
@property (nonatomic, nullable, copy) NSString* easypayPaymentInfo;
@property (nonatomic, nullable, copy) NSDictionary* merchantProperties;
@property (nonatomic, nonnull, copy) DTPaymentRequest* paymentRequest;
@property (nonatomic, nullable, copy) NSString* payPalPairingId;
@property (nonatomic, nonnull, copy) NSString* reqType;
@property (nonatomic, nonnull, copy) DTPaymentMethodToken* paymentMethodToken;
@property (nonatomic, assign) BOOL returnAlias;
@property (nonatomic, nullable, copy) NSString* transactionId;

@end
Loading

0 comments on commit facd3a4

Please sign in to comment.