Skip to content

Commit

Permalink
Allow adding an NSMutableDictionary or an NSMutableArray directly to …
Browse files Browse the repository at this point in the history
…metadata
  • Loading branch information
ibrahimlawal committed Apr 13, 2018
1 parent 24aef8b commit 24abdcc
Show file tree
Hide file tree
Showing 11 changed files with 73 additions and 10 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
=== 3.0.5 2018-04-13

* Allow adding an NSMutableDictionary or an NSMutableArray directly to metadata

=== 3.0.4 2017-05-25

* Hotfix Ensure we notify caller when showing or dismissing our dialogs
Expand Down
2 changes: 2 additions & 0 deletions Example/Paystack iOS Example.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,7 @@
SDKROOT = iphoneos;
SWIFT_OBJC_BRIDGING_HEADER = "Paystack iOS Example (Simple)/Paystack iOS Example (Simple)-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
};
name = Debug;
};
Expand Down Expand Up @@ -374,6 +375,7 @@
SDKROOT = iphoneos;
SWIFT_OBJC_BRIDGING_HEADER = "Paystack iOS Example (Simple)/Paystack iOS Example (Simple)-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
VALIDATE_PRODUCT = YES;
};
name = Release;
Expand Down
2 changes: 1 addition & 1 deletion Example/Paystack iOS Example/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.0.4</string>
<string>3.0.5</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
Expand Down
19 changes: 15 additions & 4 deletions Example/Paystack iOS Example/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ class ViewController: UIViewController, PSTCKPaymentCardTextFieldDelegate {
return
}
showOkayableMessage("Backend not configured", message:"To run this sample, please configure your backend.")

// chargeWithSDK(newCode:"");

}

Expand Down Expand Up @@ -108,9 +108,20 @@ class ViewController: UIViewController, PSTCKPaymentCardTextFieldDelegate {
let transactionParams = PSTCKTransactionParams.init();
transactionParams.access_code = newCode as String;
//transactionParams.additionalAPIParameters = ["enforce_otp": "true"];
//transactionParams.email = "ibrahim@paystack.co";
//transactionParams.amount = 2000;

// transactionParams.email = "ibrahim@paystack.co";
// transactionParams.amount = 2000;
// let dictParams: NSMutableDictionary = [
// "recurring": true
// ];
// let arrParams: NSMutableArray = [
// "0","go"
// ];
// do {
// try transactionParams.setMetadataValueDict(dictParams, forKey: "custom_filters");
// try transactionParams.setMetadataValueArray(arrParams, forKey: "custom_array");
// } catch {
// print(error)
// }
// use library to create charge and get its reference
PSTCKAPIClient.shared().chargeCard(self.cardDetailsForm.cardParams, forTransaction: transactionParams, on: self, didEndWithError: { (error, reference) in
self.outputOnLabel(str: "Charge errored")
Expand Down
8 changes: 8 additions & 0 deletions GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,10 +261,18 @@ You will need to specify callbacks too. Each will be called depending on how the

// building new Paystack Transaction
transactionParams.amount = 1390;
let custom_filters: NSMutableDictionary = [
"recurring": true
];
let items: NSMutableArray = [
"Bag","Glasses"
];
do {
try transactionParams.setCustomFieldValue("iOS SDK", displayedAs: "Paid Via");
try transactionParams.setCustomFieldValue("Paystack hats", displayedAs: "To Buy");
try transactionParams.setMetadataValue("iOS SDK", forKey: "paid_via");
try transactionParams.setMetadataValueDict(custom_filters, forKey: "custom_filters");
try transactionParams.setMetadataValueArray(items, forKey: "items");
} catch {
print(error);
}
Expand Down
2 changes: 1 addition & 1 deletion Paystack.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Paystack'
s.version = '3.0.4'
s.version = '3.0.5'
s.summary = 'Paystack is a web-based API helping African Businesses accept payments online.'
s.description = <<-DESC
Paystack makes it easy for African Businesses to accept Mastercard, Visa and Verve cards from anyone, anywhere in the world.
Expand Down
2 changes: 1 addition & 1 deletion Paystack/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>3.0.4</string>
<string>3.0.5</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
Expand Down
30 changes: 30 additions & 0 deletions Paystack/PSTCKTransactionParams.m
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,36 @@ - (PSTCKTransactionParams *) setMetadataValue:(NSString*)value
return [self _setMetadataValue:value forKey:key error:error];
}

- (PSTCKTransactionParams *) setMetadataValueDict:(NSMutableDictionary*)dict
forKey:(NSString*)key
error:(NSError**) error {
if([@"custom_fields" isEqualToString:key]){
*error = [[NSError alloc] initWithDomain:PaystackDomain
code:PSTCKTransactionError
userInfo:@{
NSLocalizedDescriptionKey: PSTCKUnexpectedError,
PSTCKErrorMessageKey: PSTCKTransactionErrorDontSetCustomFieldDirectlyMessage
}];
return nil;
}
return [self _setMetadataValue:dict forKey:key error:error];
}

- (PSTCKTransactionParams *) setMetadataValueArray:(NSMutableArray*)arr
forKey:(NSString*)key
error:(NSError**) error {
if([@"custom_fields" isEqualToString:key]){
*error = [[NSError alloc] initWithDomain:PaystackDomain
code:PSTCKTransactionError
userInfo:@{
NSLocalizedDescriptionKey: PSTCKUnexpectedError,
PSTCKErrorMessageKey: PSTCKTransactionErrorDontSetCustomFieldDirectlyMessage
}];
return nil;
}
return [self _setMetadataValue:arr forKey:key error:error];
}

- (PSTCKTransactionParams *) _setMetadataValue:(NSObject*) value
forKey:(NSString*)key
error:(NSError**) error {
Expand Down
4 changes: 2 additions & 2 deletions Paystack/PublicHeaders/PSTCKAPIClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
#import <UIKit/UIViewController.h>
#endif

static NSString *const __nonnull PSTCKSDKVersion = @"3.0.4";
static NSString *const __nonnull PSTCKSDKBuild = @"13";
static NSString *const __nonnull PSTCKSDKVersion = @"3.0.5";
static NSString *const __nonnull PSTCKSDKBuild = @"14";

@class PSTCKCard, PSTCKCardParams, PSTCKTransactionParams, PSTCKToken;

Expand Down
8 changes: 8 additions & 0 deletions Paystack/PublicHeaders/PSTCKTransactionParams.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@
forKey:(nonnull NSString*)key
error:(NSError * _Nullable __autoreleasing * _Nonnull) error;

- (nullable PSTCKTransactionParams *) setMetadataValueDict:(nonnull NSMutableDictionary*)dict
forKey:(nonnull NSString*)key
error:(NSError * _Nullable __autoreleasing * _Nonnull) error;

- (nullable PSTCKTransactionParams *) setMetadataValueArray:(nonnull NSMutableArray*)arr
forKey:(nonnull NSString*)key
error:(NSError * _Nullable __autoreleasing * _Nonnull) error;

- (nullable PSTCKTransactionParams *) setCustomFieldValue:(nonnull NSString*)value
displayedAs:(nonnull NSString*)display_name
error:(NSError * _Nullable __autoreleasing * _Nonnull) error;
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.4
3.0.5

0 comments on commit 24abdcc

Please sign in to comment.