cancel
Showing results for 
Search instead for 
Did you mean: 

Card present with iOS SDK not working for me

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

fvanleeuwen
Member
1 ACCEPTED SOLUTION

Accepted Solutions

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!!!

 

View solution in original post

8 REPLIES 8

Just to make sure, you did get a new account?

RaynorC1emen7
Expert

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. 

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];

 

-----

If you use that code and use a Card Not Present test account, does it works?

Good question, i'll check that now

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!!!

 

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

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.