import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...
Gets Easier & Fastest growing Payment Solution, Accepting International Payments with Razorpay
Most of the developers prefer Razorpay as the international payments solution with supported Multi-currency support and reduced chargebacks in India. It is robust and provides developer friendly API & SDK for Android, iOS etc. It provides different modes of payments like :- credit card, debit card, net banking, UPI and other popular wallets. It provide the fast and reliable support.
In this blog we are going to focus on Razor Pay integration with iOS swift 4.2 using Xcode 11. in which we will learn how can we integrate Razorpay with iOS app. We will create a demo app to integrate Razorpay and pay some amount by using Razorpay payment gateway.
- xcode 11
- Swift 4.2
- A Razorpay account (you can signup from here https://dashboard.Razorpay.com/#/access/signup)
- your Razorpay key id (you can get from here https://dashboard.Razorpay.com/#/app/keys)
Development in Xcode
1. Open Terminal then go to project base.
2. open podfile
3. edit podfile add - pod ‘Razorpay-pod’
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'WithMe' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for WithMe
pod 'razorpay-pod'
target 'WithMeTests' do
inherit! :search_paths
# Pods for testing
end
target 'WithMeUITests' do
# Pods for testing
end
end
4. Then pod Install
5 Reopen Project in xcode.
Develope a basic UI as given below.
import Razorpay
class ViewController: UIViewController{
// Razorpay
var braintreeClient: BTAPIClient?
var razoepay: RazorpayCheckout!
override func viewDidLoad() {
super.viewDidLoad()
razoepay = RazorpayCheckout.initWithKey("rzp_test_FtNotNSVCQRKJU", andDelegate: self)
}
@IBAction func checkOut(_ sender: Any) {
let options: [String:Any] = [
"amount" : "1000", //mandatory in paise like:- 1000 paise == 10 rs
"currency": "INR",
"description": "purchase description",
"image": "logo",
"name": "Swift Series",
"prefill": [
"contact": "9797979797",
"email": "foo@bar.com"
],
"theme": [
"color": "#528FF0"
]
]
razoepay?.open(options)
}
}
extension ViewController: RazorpayPaymentCompletionProtocol {
func onPaymentSuccess(_ payment_id: String) {
let alert = UIAlertController(title: "Paid", message: "Payment Success", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
func onPaymentError(_ code: Int32, description str: String) {
let alert = UIAlertController(title: "Error", message: "\(code)\n\(str)", preferredStyle: .alert)
let action = UIAlertAction(title: "OK", style: .cancel, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
}
Output. Like
nice
ReplyDeleteVery informative post...!
ReplyDeleteRazorpay Payment Integration In iOS Swift
5 Best Benefits to Hire iOS Developers for Your App Development Project
Hire iOS Developers