Hello,
I'm trying to setup a transaction using a card-present solution and the iOS SDK.
A little background information, we used to have card-NOT-present accounts, those worked well but now we need card-present accounts.
Ok, so i've tried a lot of things but i constantly receive "Transactions of this market type cannot be processed with this system".
No matter what i do, i keep getting this message. I adjusted my code so it sends track1 & track2 (minus the sentinel data).
So, i am using CreditCardTrackType and i set both track1 & track2.
Then, i use the TransRetailInfoType to set the marketType (MARKET_TYPE_RETAIL) and deviceType (DEVICE_TYPE_LINEA). I attach this to TransactionRequestType.
I still receive these errors.
Does anyone know what i'm doing wrong?
Kind regards,
Frank
Solved! Go to Solution.
02-27-2014 07:35 AM
So, i've solved the issue. I checked what the C# version did (by the way, that code example is incorrect) and saw one minor difference : Device Type.
The C# example uses "PresonalComputerBasedTerminal" as devicetype, when i used that same devicetype the payment went OK. I can't understand why and i don't want to be a "not so tolerant individual", the code examples are not good and the documentation is not up to date. Other than that, i love working with Authorize.net's iOS SDK. Works perfect!!!
03-03-2014 01:56 AM
Just to make sure, you did get a new account?
02-27-2014 08:14 AM
Yes i did, i double checked. It's a Card Present account, market type Retail. I just setup a test account to see if i'm doing anything wrong, account wise. But it's generating the same result.
02-27-2014 08:16 AM
Extra info,
I just did a little test with the following code (i replaced some information with <VALID ... DATA>. They are filled in correct.
AuthNet *an = [AuthNet getInstance];
[an setDelegate:self];
CreditCardTrackType *trackType = [CreditCardTrackTypecreditCardTrackType];
trackType.track1 = @"<VALID TRACK 1 DATA>";
trackType.track2 = @"<VALID TRACK 2 DATA>;
PaymentType *paymentType = [PaymentType paymentType];
//paymentType.creditCard = nil;
paymentType.trackData = trackType;
//paymentType.bankAccount = nil;
ExtendedAmountType *extendedAmountTypeTax = [ExtendedAmountTypeextendedAmountType];
extendedAmountTypeTax.amount = @"0";
extendedAmountTypeTax.name = @"Tax";
ExtendedAmountType *extendedAmountTypeShipping = [ExtendedAmountType extendedAmountType];
extendedAmountTypeShipping.amount = @"0";
extendedAmountTypeShipping.name = @"Shipping";
LineItemType *lineItem = [LineItemTypelineItem];
lineItem.itemName = @"Soda";
lineItem.itemDescription = @"Soda";
lineItem.itemQuantity = @"1";
lineItem.itemPrice = @"1.00";
lineItem.itemID = @"1";
TransRetailInfoType *retailType = [TransRetailInfoTypetransRetailInfoType];
retailType.marketType = MARKET_TYPE_RETAIL;
retailType.deviceType = DEVICE_TYPE_LINEA;
TransactionRequestType *requestType = [TransactionRequestTypetransactionRequest];
requestType.lineItems = [[NSArray arrayWithObject:lineItem] mutableCopy];
requestType.amount = @"9.00";
requestType.payment = paymentType;
requestType.tax = extendedAmountTypeTax;
requestType.shipping = extendedAmountTypeShipping;
requestType.retail = retailType;
CreateTransactionRequest *request = [CreateTransactionRequestcreateTransactionRequest];
request.transactionRequest = requestType;
request.transactionType = AUTH_ONLY;
request.anetApiRequest.merchantAuthentication.mobileDeviceId = @"<VALID DEVICE ID>";
request.anetApiRequest.merchantAuthentication.sessionToken = sessionToken;
[an purchaseWithRequest:request];
-----
02-27-2014 08:27 AM
If you use that code and use a Card Not Present test account, does it works?
02-28-2014 02:19 PM
Good question, i'll check that now
03-03-2014 12:24 AM
So, i've solved the issue. I checked what the C# version did (by the way, that code example is incorrect) and saw one minor difference : Device Type.
The C# example uses "PresonalComputerBasedTerminal" as devicetype, when i used that same devicetype the payment went OK. I can't understand why and i don't want to be a "not so tolerant individual", the code examples are not good and the documentation is not up to date. Other than that, i love working with Authorize.net's iOS SDK. Works perfect!!!
03-03-2014 01:56 AM
By the way, if anyone needs well working examples of both Card Present and Card Not Present for iOs. Let me know. They both work smoothly now.
Frank
03-03-2014 03:39 AM
Excellent! I had same issue and thanks to you its solved now. I was struggling for past 2 days.. the SDK documentation is really worst I have ever seen.
05-27-2014 10:10 AM