Авторизация.ЧИСТАЯ транзакция iOS не будет обрабатываться, если> 999

#ios #objective-c #authorize.net

#iOS #objective-c #authorize.net

Вопрос:

Я использую iOS 7 с авторизацией.ЧИСТАЯ библиотека iOS, и я не могу обработать транзакции более 999. Никто не знает, почему? Я пробовал несколько разных способов форматирования. Я не получаю никаких ошибок, кроме сбоя обработки.

     TransactionRequestType *requestType = [TransactionRequestType transactionRequest];
requestType.lineItems = lineItems;


requestType.amount  =  [[authNetNumFmt stringFromNumber:_total]  stringByReplacingOccurrencesOfString:@"$"   withString:@""];
requestType.amount  =  [[authNetNumFmt stringFromNumber:_total]  stringByReplacingOccurrencesOfString:@","   withString:@""];


requestType.payment = paymentType;

// Required for card present transactions.
requestType.retail = [TransRetailInfoType transRetailInfoType];
requestType.retail.marketType = MARKET_TYPE_RETAIL;
requestType.retail.deviceType = DEVICE_TYPE_UNKNOWN;

CreateTransactionRequest *request = [CreateTransactionRequest createTransactionRequest];
request.anetApiRequest.merchantAuthentication.name = sessionManager.authNetLoginId;  
request.anetApiRequest.merchantAuthentication.transactionKey = sessionManager.authNetTransactionKey;  
request.transactionRequest = requestType;
request.transactionType = AUTH_CAPTURE;

[authNetInstance purchaseWithRequest:request]; //pass with 999 but fail with 1000
  

Комментарии:

1. Этот вопрос кажется не по теме, потому что на него следует ссылаться Authorize.net поддержка

2. Авторизация в основном говорит, что это как-то связано с тем, как вызывается API. Суммы, если я их распечатаю, будут «999» и «1000» соответственно, поэтому в поле суммы просто нет специальных символов. Я не знаю, что еще проверить.

3. Имеет ли ваш торговый счет лимит <1000 долларов?

4. не в соответствии с Authorize.net … но я не уверен, что их поддержка была хорошо осведомлена.

Ответ №1:

Это оказалось простым. В линейных элементах были цены, превышающие 1000 долларов, а преобразование в String составило 1000, что привело к тому, что XML стал недействительным, поскольку в схеме XML указано, что это должно быть число. Мне просто нужно удалить специальные символы из цены, а также из общей суммы, и это сработало.