-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathNSRave.swift
More file actions
64 lines (54 loc) · 2.11 KB
/
NSRave.swift
File metadata and controls
64 lines (54 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import UIKit
func jsonToString(_ jsonData: [String:Any]) -> String {
do {
let data = try JSONSerialization.data(withJSONObject: jsonData);
guard let str = String(data: data, encoding: String.Encoding.utf8) else { return "" };
return str;
} catch _ {
return "";
}
}
@objcMembers
public class NSRave: UIViewController, RavePayProtocol {
public var publicKey:String?
public var encryptionKey:String?
public var isStaging:Bool = true
public var email:String?
public var firstName:String?
public var lastName:String?
public var phoneNumber:String?
public var transcationRef:String?
public var country:String = "NG"
public var currencyCode:String = "NGN"
public var narration:String?
public var amount:String?
public var delegate: NSRaveDelegate?
public func tranasctionSuccessful(flwRef: String?, responseData: [String : Any]?) {
let data = jsonToString(responseData ?? ["": ""])
self.delegate?.onSuccess(flwRef ?? "", data)
}
public func tranasctionFailed(flwRef: String?, responseData: [String : Any]?) {
let data = jsonToString(responseData ?? ["": ""])
self.delegate?.onError(flwRef ?? "", data)
}
public func initRave(view: UIViewController) -> NSRave {
let config = RaveConfig.sharedConfig()
config.country = self.country
config.currencyCode = self.currencyCode
config.email = self.email
config.isStaging = self.isStaging
config.phoneNumber = self.phoneNumber
config.transcationRef = self.transcationRef
config.firstName = self.firstName
config.lastName = self.lastName
config.meta = [["metaname":"sdk", "metavalue":"ios"]]
config.publicKey = self.publicKey
config.encryptionKey = self.encryptionKey
let controller = NewRavePayViewController()
let nav = UINavigationController(rootViewController: controller)
controller.amount = self.amount
controller.delegate = self
view.present(nav, animated: true)
return self
}
}