Updated 26 October 2021
Hi guys, today we will learn about how to implement CCAvenue payment gateway in an iOS application.
Before starting to code first we need to know what a payment gateway is
A payment gateway is a merchant service provided by an e-commerce application service provider that authorizes credit card or direct payments processing for e-businesses, online retailers, bricks, and clicks, or traditional brick and mortar.
Thus, its enough for us now. Let’s start by following the instructions below.
->Download & Unzip
1. Please download the framework from below link.
https://ccavenue.ae/downloads_mcpg/mobile_sdk/CCAvenueSDK_iOS_V2.0.zip
2. Download CCAvenueSDKiOS.zip file for iOS. This contains the framework file, bundle
resources file, response handler file (ResponseHandler.jsp), RSA file (GetRSA.jsp) and
a demo app (Swift & Objective-C).
3. Unzip the downloaded CCAvenueSDKiOS.zip file anywhere on the file system.
->Upload GetRSA.jsp & ResponseHandler.jsp on Merchant Server
1. GetRSA.jsp kept on the merchant server for fetching the RSA Public Key and send the file
path URL with the request.
2. Also, ResponseHandler.jsp kept on the merchant server for the response will be sent by the
CCAvenue server to the merchant server on the return URL that was configured at the URL
that was sent in the request. Merchant should then decrypt the response, which can then be
parsed to get all transaction details and will send back to the merchant app.
->Include the SDK in Xcode Project
1. Drag the CCAvenueSDK.framework to Frameworks & CCAvenueSDK.bundle under
project in project navigator.
2. Create a new group Frameworks if it does not exist.
3. Choose to Create groups for any added folders. Make sure to select Copy files if
needed.
4. For Swift Projects add the following:
#import <CCAvenueSDK/InitialViewController.h> to the Bridging-Header.h
Note: Ensure linked once in the Linked Framework and Libraries or just drag the
CCAvenueSDK.framework to Embedded Binaries in the general tab in the project
settings.
</dict>element
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
1. Import the CCAvenue Library
1 |
#import <CCAvenueSDK/InitialViewController> |
2. Initialize InitialViewController and pass values in Initializer for SDK.
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 |
let initialVC = InitialViewController.init(OrderId:”1234” , merchantId:”79562” , accessCode:”ABHGH784GFDE”, amount:”10.00”, currency:”AED”, rsaKeyUrl:”www.abc.ae/RSA.jsp”, redirectUrl:”www.abc.ae/Redirect.jsp”, cancelUrl:”www.abc.ae/Cancel.jsp”, showAddress:”Y”, billingName:”ABC”, billingAddress:”Star City”, billingCity:”Dubai”, billingState:”Dubai”, billingCountry:”United Arab Emirates”, billingTel:”+971 1234567890”, billingEmail:”test@gmail.com” deliveryName:”XYZ”, deliveryAddress:”Internet City”, deliveryCity:”Dubai”, deliveryState:”Dubai”, deliveryCountry:”United Arab Emirates”, deliveryTel:”+971 9876543210” promoCode:”PROMO1270” merchant_param1:"Param 1” merchant_param2:"Param 2” merchant_param3:"Param 3” merchant_param4:"Param 4" merchant_param5:"Param 5” useCCPromo:“Y”) |
3. Initialize InitViewContollerDelegate for last class where you start SDK.
1 |
class ViewController: UIViewController, InitialViewControllerDelegate |
4. Assign an instance of the class that’s adopted the delegate protocol to its delegate property.
1 |
initialVC?.delegate = self; |
5. Present Initial controller of SDK to process payment.
1 |
self.present(initialVC!, animated: true, completion: nil); |
1. Call delegate method of InitialViewConrollerDelegate.
1 2 3 4 5 6 7 |
self.present(initialVC!, animated: true, completion: nil); func getResponse(_ responseDict_: NSMutableDictionary!) { print("Response in merchant app :- \(responseDict_)”); // here SDK will closed and you get response in Dictionary and use for further process } |
If you have more details or questions, you can reply to the received confirmation email.
Back to Home
11 comments
What is best way payment gateway integration ?
SDK or Web
Kindly contact us at [email protected]. So that we could assist you in a better way.
Thanks and Regards.
Zeba Hakim.
Kindly contact us at [email protected]. So that we could assist you in a better way.
Thanks.
how are you?
i implemented ccavenue but i got crash ap
2021-12-24 12:00:19.136867+0530 AirGuncart[32153:371515] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
*** First throw call stack:
(
0 CoreFoundation 0x0000000102d8f126 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x0000000102c1ff78 objc_exception_throw + 48
2 CoreFoundation 0x0000000102e0bcdb _CFThrowFormattedException + 194
3 CoreFoundation 0x0000000102e171f8 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:].cold.5 + 0
4 CoreFoundation 0x0000000102dfa1ff -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 235
5 CoreFoundation 0x0000000102d8dda3 +[NSDictionary dictionaryWithObjects:forKeys:count:] + 49
6 AirGuncart 0x00000001004cf123 -[InitialViewController addCardView] + 9283
7 AirGuncart 0x00000001004edb56 __44-[InitialViewController fetchPaymentOptions]_block_invoke_2 + 38
8 libdispatch.dylib 0x00000001054d58ac _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00000001054d6a88 _dispatch_client_callout + 8
10 libdispatch.dylib 0x00000001054e4f23 _dispatch_main_queue_callback_4CF + 1152
11 CoreFoundation 0x0000000102cfd276 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
12 CoreFoundation 0x0000000102cf7b06 __CFRunLoopRun + 2685
13 CoreFoundation 0x0000000102cf6b9e CFRunLoopRunSpecific + 567
14 GraphicsServices 0x000000010b040db3 GSEventRunModal + 139
15 UIKitCore 0x000000010c772af3 -[UIApplication _run] + 912
16 UIKitCore 0x000000010c777a04 UIApplicationMain + 101
17 libswiftUIKit.dylib 0x000000010428f7b2 $s5UIKit17UIApplicationMainys5Int32VAD_SpySpys4Int8VGGSgSSSgAJtF + 98
18 AirGuncart 0x0000000100448e5a $sSo21UIApplicationDelegateP5UIKitE4mainyyFZ + 122
19 AirGuncart 0x0000000100448dce $s10AirGuncart11AppDelegateC5$mainyyFZ + 46
20 AirGuncart 0x0000000100448ea9 main + 41
21 libdyld.dylib 0x0000000105565415 start + 1
22 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
terminating with uncaught exception of type NSException
Pls help me..
Kindly contact us at [email protected]. So that we could assist you in a better way.
Thanks
how are you?
i implemented ccavenue but i got crash ap
2021-12-24 12:00:19.136867+0530 AirGuncart[32153:371515] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
*** First throw call stack:
(
0 CoreFoundation 0x0000000102d8f126 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x0000000102c1ff78 objc_exception_throw + 48
2 CoreFoundation 0x0000000102e0bcdb _CFThrowFormattedException + 194
3 CoreFoundation 0x0000000102e171f8 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:].cold.5 + 0
4 CoreFoundation 0x0000000102dfa1ff -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 235
5 CoreFoundation 0x0000000102d8dda3 +[NSDictionary dictionaryWithObjects:forKeys:count:] + 49
6 AirGuncart 0x00000001004cf123 -[InitialViewController addCardView] + 9283
7 AirGuncart 0x00000001004edb56 __44-[InitialViewController fetchPaymentOptions]_block_invoke_2 + 38
8 libdispatch.dylib 0x00000001054d58ac _dispatch_call_block_and_release + 12
9 libdispatch.dylib 0x00000001054d6a88 _dispatch_client_callout + 8
10 libdispatch.dylib 0x00000001054e4f23 _dispatch_main_queue_callback_4CF + 1152
11 CoreFoundation 0x0000000102cfd276 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
12 CoreFoundation 0x0000000102cf7b06 __CFRunLoopRun + 2685
13 CoreFoundation 0x0000000102cf6b9e CFRunLoopRunSpecific + 567
14 GraphicsServices 0x000000010b040db3 GSEventRunModal + 139
15 UIKitCore 0x000000010c772af3 -[UIApplication _run] + 912
16 UIKitCore 0x000000010c777a04 UIApplicationMain + 101
17 libswiftUIKit.dylib 0x000000010428f7b2 $s5UIKit17UIApplicationMainys5Int32VAD_SpySpys4Int8VGGSgSSSgAJtF + 98
18 AirGuncart 0x0000000100448e5a $sSo21UIApplicationDelegateP5UIKitE4mainyyFZ + 122
19 AirGuncart 0x0000000100448dce $s10AirGuncart11AppDelegateC5$mainyyFZ + 46
20 AirGuncart 0x0000000100448ea9 main + 41
21 libdyld.dylib 0x0000000105565415 start + 1
22 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]’
terminating with uncaught exception of type NSException
Pls help me..
Kindly contact us at [email protected]. So that we could assist you in a better way.
Thanks
Kindly contact us at [email protected]. So that we could assist you in a better way.
Thanks