citruspay / citruspay-ios-sdk Goto Github PK
View Code? Open in Web Editor NEWEnhanced iOS SDK for Superior Native Payments Experience
License: MIT License
Enhanced iOS SDK for Superior Native Payments Experience
License: MIT License
[NSTaggedPointerString rangeOfString:options:range:locale:]: nil argument'
[CitrusPay SDK] Version 4.1.8 : Property error Value: Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 403" UserInfo={NSLocalizedDescription=Server threw an error
code 403}
dyld: Library not loaded: @rpath/JSONModel.framework/JSONModel
Referenced from: /Users/ajayjha/Library/Developer/Xcode/DerivedData/CitrusDemoX-dleqkcznphjcmhcvcffxqczmrlpt/Build/Products/Debug-iphonesimulator/PlugNPlay.framework/PlugNPlay
Reason: image not found
Also added inside the Embedded Binaries section located in the Xcode project under the tab Target / General.
Module compiled with Swift 3.0.2 cannot be imported in Swift 3.1 For Plug and Play SDK. Please provide new release for Plug and play sdk with swift 3.1 support.
Thanks
I tried installing using cocoa pods. After installing, I imported bridging header as #import "CitrusPay/CitrusPay.h"
After compiling it gives an error as 'JSONModel.h' file not found so I had to add this framework manually by dragging respective files and folders.
ProjectPath/CitrusPay.framework/CitrusPay compiled with older version of Swift language (3.0) than previous files (4.0)
file 'ProjectPath/Swift4.0/eCube/Pods/CitrusPay/Framework/core-sdk/CitrusPay.framework/CitrusPay' for architecture x86_64
restRequest JSON> {"email":"[email protected]","client_id":"7lz1x66n40-sdk-merchant","mobile":"8102057040","scope":"LIMITED","client_secret":"56d4588916815c6564726ce273edbc73"}
2018-04-06 16:09:49:475 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : allHeaderFields {
"Access-Control-Allow-Headers" = "Authorization,Origin,X-Requested-With,Content-Type,Accept,merchantAccessKey,requestSignature,access_key";
"Access-Control-Allow-Methods" = "POST, GET, PUT, OPTIONS, DELETE";
"Access-Control-Allow-Origin" = "*";
"Access-Control-Max-Age" = 3600;
"Cache-Control" = "no-cache, no-store, max-age=0, must-revalidate, no-store";
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 84;
"Content-Security-Policy" = "default-src https: data: 'unsafe-inline' 'unsafe-eval'";
"Content-Type" = "application/json;charset=UTF-8";
Date = "Fri, 06 Apr 2018 10:39:49 GMT";
Expires = 0;
"Keep-Alive" = "timeout=5, max=99";
Pragma = "no-cache, no-cache";
"Public-Key-Pins" = "pin-sha256="WGpYij0OXdgfaAwkCOf3Mtt9WJKZxTf01t6XamZCx0U="; pin-sha256="HpP5E4a6KAA3cQ2JCKHmUEruEFo7dTWVt/Em0HWkL0Y="; max-age=15768000; includeSubDomains";
"Strict-Transport-Security" = "max-age=31536000;includeSubDomains;preload";
Vary = "Accept-Encoding";
"Www-Authenticate" = "Bearer realm="oauth", error="invalid_token", error_description="Invalid access token: (null)"";
"X-Content-Type-Options" = "nosniff, nosniff";
"X-Frame-Options" = "DENY, SAMEORIGIN";
"X-Xss-Protection" = "1; mode=block, 1; mode=block";
}
2018-04-06 16:09:49:475 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : updated 1
2018-04-06 16:09:49:475 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : ----------------------------------------------- Properties for object <CTSRestCoreResponse: 0x60400065ca10>
2018-04-06 16:09:49:476 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property responseString Value: {"error":"invalid_token","error_description":"Invalid access token: (null)"}
2018-04-06 16:09:49:476 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property requestId Value: -1
2018-04-06 16:09:49:477 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property indexData Value: -1
2018-04-06 16:09:49:477 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property data Value: (null)
2018-04-06 16:09:49:478 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property error Value: Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 401" UserInfo={NSLocalizedDescription=Server threw an error
code 401}
2018-04-06 16:09:49:478 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : -----------------------------------------------
2018-04-06 16:09:49:478 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : ----------------------------------------------- Properties for object nil description
2018-04-06 16:09:49:479 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property errorDescription Value: Invalid access token: (null)
2018-04-06 16:09:49:479 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property description Value: (null)
2018-04-06 16:09:49:479 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property error Value: invalid_token
2018-04-06 16:09:49:480 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property type Value: (null)
2018-04-06 16:09:49:480 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property serverResponse Value: (null)
2018-04-06 16:09:49:480 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property errorCode Value: (null)
2018-04-06 16:09:49:481 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property errorMessage Value: (null)
2018-04-06 16:09:49:481 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : Property error_desc Value: (null)
2018-04-06 16:09:49:482 SanyogTravel[9343:225124] [CitrusPay SDK] Version 4.1.8 : -----------------------------------------------
There is a crash while calling the method
- (void)requestSimpliPay:(PaymentType *)paymentType
andParentViewController:(UIViewController *)controller
completionHandler:(CTSSimpliPayCompletionHandler)completion
in the latest version 4.1.7.
The console shows the following logs -
2017-10-31 00:07:24.569 [Warning] > [CitrusPay SDK] Version 4.1.7 : prepaid signin token Expired
2017-10-31 00:07:24.571 [Error] > [CitrusPay SDK] Version 4.1.7 : validation error 7000
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<CitrusPay.CTSHUDSystemActivityIndicatorView: 0x7f8b335072f0; frame = (0 0; 125 100); clipsToBounds = YES; layer = <CALayer: 0x60c00042ffa0>> has been added as a subview to <CitrusPay.FrameView: 0x7f8b2a27d6e0; baseClass = UIVisualEffectView; frame = (0 0; 125 100); clipsToBounds = YES; alpha = 0.6; autoresize = LM+RM+TM+BM; layer = <CALayer: 0x6040004221e0>>. Do not add subviews directly to the visual effect view itself, instead add them to the -contentView.'
Here is stack trace
*** First throw call stack:
(
0 CoreFoundation 0x00000001095101cb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010e6baf41 objc_exception_throw + 48
2 CoreFoundation 0x0000000109515362 +[NSException raise:format:arguments:] + 98
3 Foundation 0x000000010abd2089 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 193
4 UIKit 0x000000010c70443f -[UIVisualEffectView _addSubview:positioned:relativeTo:] + 379
5 CitrusPay 0x0000000108deefed _T09CitrusPay6CTSHUDC11contentViewSo6UIViewCfsTf4gn_n + 349
6 CitrusPay 0x0000000108deb73e _T09CitrusPay14CTSProgressHUDC18showSystemActivityyyFZTo + 142
7 libdispatch.dylib 0x00000001105103f7 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x000000011051143c _dispatch_client_callout + 8
9 libdispatch.dylib 0x000000011051c6f0 _dispatch_main_queue_callback_4CF + 628
10 CoreFoundation 0x00000001094d2ef9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
11 CoreFoundation 0x0000000109497662 __CFRunLoopRun + 2402
12 CoreFoundation 0x0000000109496a89 CFRunLoopRunSpecific + 409
13 GraphicsServices 0x000000011293a9c6 GSEventRunModal + 62
14 UIKit 0x000000010c116d30 UIApplicationMain + 159
15 iOSConsumerApp 0x0000000106bb67d7 main + 55
16 libdyld.dylib 0x000000011058dd81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
@vipin04 @mukesh122 @YadneshCitrus Please look into this!
2017-07-28 12:22:53.841 Citrus[3130:652924] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2017-07-28 12:22:53.841 Citrus[3130:652924] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2017-07-28 12:22:53.842 [Warning] > [CitrusPay SDK] Version 4.1.6 : prepaid signin token Expired
success: Optional(Error Domain=com.citrus.errorDomain Code=7018 "Zero or More than one payment instruments.
Please setup only one payment instrument." UserInfo={NSLocalizedDescription=Zero or More than one payment instruments.
Please setup only one payment instrument.})
2017-07-28 12:22:53.868 [Error] > [CitrusPay SDK] Version 4.1.6 : Local Validation error : Error Domain=com.citrus.errorDomain Code=7018 "Zero or More than one payment instruments.
Please setup only one payment instrument." UserInfo={NSLocalizedDescription=Zero or More than one payment instruments.
Please setup only one payment instrument.}
[CitrusPay SDK v3.1.3]
Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 500" UserInfo={NSLocalizedDescription=Server threw an error
code 500, CTSServerErrorDescription=(null description)}
i am getting this issue
[CitrusPay SDK] Version 4.1.8 : Property error Value: Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 401" UserInfo={NSLocalizedDescription=Server threw an error
code 401}
module compiled with Swift 4.0 cannot be imported in Swift 4.0.2: /Users/dhaval.sabhaya/Desktop/Swift4.0/eCube/Pods/CitrusGraphics/Framework/graphics-sdk/CitrusGraphics.framework/Modules/CitrusGraphics.swiftmodule/x86_64.swiftmodule
@vipin04
We are not able to use the latest version of Citrus SDK in our project as the CitrusGraphics SDK is not updated to Swift 4. Do you have an ETA for this?
While Initialising
Error im getting
*** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
*** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
*** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
And it crashes while binding user (requestBindUsername)
Module compiled with Swift 3.0.2 cannot be imported in Swift 3.1 For Plug and Play SDK. Please provide new release for Plug and play sdk with swift 3.1 support.
Thanks.
on requestPaymentsModes() method, I get following error:
Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 500
when using
pod 'CitrusPay', '~> 4.1.5'
Library/Developer/Xcode/DerivedData/SanyogTravel-bpsbqfpbtqaxetairpmwqwhfouby/Build/Products/Debug-iphonesimulator/SanyogTravel.app/Frameworks/CitrusGraphics.framework/CitrusGraphics
While clicking on cancel button on Payment provider webview controller it shows confirmation message to close but not working for first time, on second time it works!
:0: error: module compiled with Swift 3.1 cannot be imported in Swift 3.2.3: /Users/maheshkumar/Documents/Mac Data/SanyogTravel/Pods/CitrusGraphics/Framework/graphics-sdk/CitrusGraphics.framework/Modules/CitrusGraphics.swiftmodule/x86_64.swiftmodule
Citrus login and every thing is working as expected. Now i am getting 500 server error on login.
Please resolve the issue as soon as possible. Let me know why this happen.
Unable to compile in swift 3.0.2,
"Module compiled with Swift 3.0 cannot be imported in Swift 3.0.2"
I think the problem is with pre-built binaries.
Module compiled with Swift 3.0.2 cannot be imported in Swift 3.1 For PlugNPlay SDK. Please provide a new release for PlugNPlay SDK with swift 3.1 support.
it is working fine in Simulator but it showing an error if you run in device Module compiled with Swift 3.0.2 cannot be imported in Swift 3.1
My Xcode version is 8.3.2
iPhone Device version is 10.3.1 and 10.2.1
Thanks
[CitrusPay SDK] Version 4.1.8 : Property error Value: Error Domain=com.citrus.errorDomain Code=7007 "Server threw an error
code 401" UserInfo={NSLocalizedDescription=Server threw an error
code 401}
error: The following binaries use incompatible versions of Swift:
Hi
JSONModel is directly added in framework causing error while using with project with jsonmodel as dependency, can you remove it from framework and add as dependency in podspec?
[CitrusGraphics] Version 1.1.2 : Prefetched : MCRD, MTRO, VISA, RPAY & AMEX
[CitrusGraphics] Version 1.1.2 : Prefetched : CID005, CID010, CID001, CID002, CID033 & CID036
2017-06-22 14:52:21.430 [Warning] > [CitrusPay SDK] Version 4.1.5 : no encryption key found
2017-06-22 14:52:21.457 [Warning] > [CitrusPay SDK] Version 4.1.5 : prepaid signin token Expired
2017-06-22 14:52:25.649 [Error] > [CitrusPay SDK] Version 4.1.5 : validation error 7000
Encountered issue when archived with bitcode.
bitcode bundle could not be generated because '/Users/sarav/Desktop/housejoy/Pods/CitrusPay/CitrusPay-Framework/CitrusPay.framework/CitrusPay(CTSProfilePrepaidRes.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture armv7
In payment provider webview content is not scrollable so can not log in into bank account (example : Yesbank)
While using the latest version i am getting the following error
dyld: Symbol not found: OBJC_CLASS$__TtC14CitrusGraphics14CitrusGraphics.
I'm trying to sign the user in through requestMasterLink
and get a limited access token . The SDK prints that the user is signed in and I receive the token successfully, but am not able to use it further since the SDK shows it as expired. For example, isLoggedIn
prints prepaid signin token Expired
.
Here's the debug output. I have scrubbed sensitive info off it.
Debug output:
2016-09-07 13:37:39.085 *[11605:746377] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-07 13:37:39.085 *[11605:746377] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-07 13:37:39.085 *[11605:746377] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-07 13:37:39.087 *[11605:746377] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-07 13:37:39.087 *[11605:746377] *** -[NSKeyedUnarchiver initForReadingWithData:]: data is NULL
2016-09-07 13:37:39.087 *[11605:746377] CitrusPay SDK v4.0.0 : Key signup_oauth_token value ********************
2016-09-07 13:37:39.088 *[11605:746377] CitrusPay SDK v4.0.0 : ----------------------------------------------- Properties for object <CTSRestCoreRequest: 0x7fb57dd94c70>
2016-09-07 13:37:39.088 *[11605:746377] CitrusPay SDK v4.0.0 : Property requestJson Value: {"email":"*","client_id":"**********-signin","mobile":"*","scope":"LIMITED","client_secret":"**********************"}
2016-09-07 13:37:39.088 *[11605:746377] CitrusPay SDK v4.0.0 : Property urlPath Value: /service/um/find_or_create/user
2016-09-07 13:37:39.089 *[11605:746377] CitrusPay SDK v4.0.0 : Property parameters Value: (null)
2016-09-07 13:37:39.089 *[11605:746377] CitrusPay SDK v4.0.0 : Property headers Value: {
Authorization = "Bearer *******************";
}
2016-09-07 13:37:39.089 *[11605:746377] CitrusPay SDK v4.0.0 : Property requestId Value: -1
2016-09-07 13:37:39.089 *[11605:746377] CitrusPay SDK v4.0.0 : Property httpMethod Value: 1
2016-09-07 13:37:39.090 *[11605:746377] CitrusPay SDK v4.0.0 : Property index Value: -1
2016-09-07 13:37:39.090 *[11605:746377] CitrusPay SDK v4.0.0 : Property isAlternatePath Value: 0
2016-09-07 13:37:39.090 *[11605:746377] CitrusPay SDK v4.0.0 : -----------------------------------------------
2016-09-07 13:37:39.091 *[11605:746377] CitrusPay SDK v4.0.0 : setting header Bearer ***************, for key Authorization
2016-09-07 13:37:39.091 *[11605:746377] CitrusPay SDK v4.0.0 : setting header application/json, for key Content-Type
2016-09-07 13:37:39.091 *[11605:746377] CitrusPay SDK v4.0.0 : URL > <NSMutableURLRequest: 0x7fb57de34220> { URL: https://admin.citruspay.com/service/um/find_or_create/user }
2016-09-07 13:37:39.091 *[11605:746377] CitrusPay SDK v4.0.0 : restRequest JSON> {"email":"roshan@*.com","client_id":"*********-signin","mobile":"*","scope":"LIMITED","client_secret":"***************"}
2016-09-07 13:37:39.224 *[11605:748452] CitrusPay SDK v4.0.0 : allHeaderFields {
"Access-Control-Allow-Headers" = "Authorization,Origin,X-Requested-With,Content-Type,Accept,merchantAccessKey,requestSignature,access_key";
"Access-Control-Allow-Methods" = "POST, GET, OPTIONS, DELETE, PUT";
"Access-Control-Allow-Origin" = "*";
"Access-Control-Max-Age" = 3600;
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Type" = "application/json;charset=UTF-8";
Date = "Wed, 07 Sep 2016 08:02:27 GMT";
"Keep-Alive" = "timeout=5, max=100";
Server = Apache;
"Transfer-Encoding" = Identity;
Vary = "Accept-Encoding";
}
2016-09-07 13:37:39.224 *[11605:748452] CitrusPay SDK v4.0.0 : updated 1
2016-09-07 13:37:39.224 *[11605:748452] CitrusPay SDK v4.0.0 : ----------------------------------------------- Properties for object <CTSRestCoreResponse: 0x7fb57d9e1660>
2016-09-07 13:37:39.224 *[11605:748452] CitrusPay SDK v4.0.0 : Property responseString Value: {"responseCode":"R-222-03","responseMessage":"User signed in with limited scope token","responseData":{"limitedAccessToken":{"access_token":"*","token_type":"bearer","refresh_token":"*","expires_in":10035206,"scope":"identity merchant_wallet profile prepaid_merchant"},"profileData":{"email":"*","emailVerified":1,"emailVerifiedDate":1467718554000,"mobile":"*","mobileVerified":1,"mobileVerifiedDate":1472737037000,"firstName":"","lastName":"","uuid":"*"}}}
2016-09-07 13:37:39.225 *[11605:748452] CitrusPay SDK v4.0.0 : Property requestId Value: -1
2016-09-07 13:37:39.225 *[11605:748452] CitrusPay SDK v4.0.0 : Property indexData Value: -1
2016-09-07 13:37:39.225 *[11605:748452] CitrusPay SDK v4.0.0 : Property data Value: (null)
2016-09-07 13:37:39.225 *[11605:748452] CitrusPay SDK v4.0.0 : Property error Value: (null)
2016-09-07 13:37:39.225 *[11605:748452] CitrusPay SDK v4.0.0 : -----------------------------------------------
2016-09-07 13:37:39.226 *[11605:748452] CitrusPay SDK v4.0.0 : genResponse <CTSResponse>
[responseCode]: R-222-03
[responseData]: {
limitedAccessToken = {
"access_token" = "*";
"expires_in" = 10035206;
"refresh_token" = "*";
scope = "identity merchant_wallet profile prepaid_merchant";
"token_type" = bearer;
};
profileData = {
email = "*";
emailVerified = 1;
emailVerifiedDate = 1467718554000;
firstName = "";
lastName = "";
mobile = *;
mobileVerified = 1;
mobileVerifiedDate = 1472737037000;
uuid = *;
};
}
[responseMessage]: User signed in with limited scope token
</CTSResponse>
2016-09-07 13:37:39.226 *[11605:748452] CitrusPay SDK v4.0.0 : genResponse {
"access_token" = "*";
"expires_in" = 10035206;
"refresh_token" = "*";
scope = "identity merchant_wallet profile prepaid_merchant";
"token_type" = bearer;
}
2016-09-07 13:37:39.226 *[11605:748452] CitrusPay SDK v4.0.0 : genResponse {
email = "*";
emailVerified = 1;
emailVerifiedDate = 1467718554000;
firstName = "";
lastName = "";
mobile = *;
mobileVerified = 1;
mobileVerifiedDate = 1472737037000;
uuid = *;
}
2016-09-07 13:37:39.227 *[11605:748452] CitrusPay SDK v4.0.0 : Storing Login Id *
We are unable to use CitrusPay in the latest version of Xcode (9.2).
Please release a new version complied with the latest Xcode using Swift 4.0.3
Module compiled with Swift 4.0 cannot be imported in Swift 4.0.3: /Users/Shantanu/Documents/Demo/Pods/CitrusPay/Framework/core-sdk/CitrusPay.framework/Modules/CitrusPay.swiftmodule/arm64.swiftmodule
@mukesh122 I'm getting error while compiling my code with Citrus SDK in Xcode 8.3. Seems like you have to recompile the framework in Xcode 8.3. Please find the error below.
module compiled with Swift 3.0.2 cannot be imported in Swift 3.1: /Pods/CitrusGraphics/Framework/graphics-sdk/CitrusGraphics.framework/Modules/CitrusGraphics.swiftmodule/x86_64.swiftmodule
Please let me know the ETA for this
On running the demo project i am getting error as -
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[JSONKeyMapper mapperForSnakeCase]: unrecognized selector sent to class
Does anyone knows the solution?
I am trying to integrate CitrusPay SDK to my iPhone application. How can i integrate CitrusPay Direct payment without asking user to login to citrus pay.
I want to give options to user like :
Pay using Citrus Wallet
Pay using Creditcard/Debit Card
Pay using Net banking
If user would like to pay using Citrus Wallet then i will ask user to login to citrus using their credentials. If they will go with 2nd or 3rd option like pay using Credit Card/Debit Card or net banking then they don't need to login.
I want to implement this function in my app using CitrusPay SDK. Can you point out me for the code of this?
I already have a demo of the Citrus pay and i already checked it.
https://github.com/citruspay/citruspay-ios-sdk
I downloaded the demo from the above link.
Please help me out for this.
Hello There ,
I am integrating Citrus Payment gateway to our iOS application . I am trying to use PlugNPlay framework for payments but i am facing an issue while doing a test transaction receiving below error .
"value":null,"currency":"INR" . - Value going null
2017-02-06 16:27:19.760 [Verbose] > [CitrusPay SDK] Version 4.1.2 : billJson {"merchantTxnId":"xxxxxxxxxxxxxxx","amount":{"value":null,"currency":"INR"},"requestSignature":"xxxxxxxxxxxxxxx","merchantAccessKey":"xxxxxxxxxxxxxx","returnUrl":"https://eventdex.com/citrus-mobile/requestData.php?secret_key=xxxxxxxxxxxxxx?amount=1.00"}
2017-02-06 16:27:19.760 [Verbose] > [CitrusPay SDK] Version 4.1.2 : signature (null)
2017-02-06 16:27:19.760 CitrusTestApp[5510:214817] error Invalid JSON data: Value of required model key value is null
CitrusPay Complete the Transaction, Merchant Server did Not Return Data From postResponseiOS()
I am trying append custom parameters to the bill url and pass that bill
url to the sdk.
e.g.
https://salty-plateau-1529.herokuapp.com/billGenerator.sandbox.php?id=10
In Android CitrusPaySDK on doing this way the amount parameter is appended to the url as
[https://salty-plateau-1529.herokuapp.com/billGenerator.sandbox.php
?id=10&amount=3.00](https://salty-plateau-1529.herokuapp.com/billGenerator.sandbox.php
?id=10&amount=3.00)
But iOS SDK is not checking whether there is already a parameter in url and it appends amount to the url to form the request url like below
[https://salty-plateau-1529.herokuapp.com/billGenerator.sandbox.php
?id=10?amount=3.00](https://salty-plateau-1529.herokuapp.com/billGenerator.sandbox.php
?id=10?amount=3.00)
Because of this error is occurring in Bill Generator. Please fix this logic issue in your SDK ASAP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.