#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 указано, что это должно быть число. Мне просто нужно удалить специальные символы из цены, а также из общей суммы, и это сработало.