Как передать значение параметра ' x_duplicate_window ' при использовании AuthorizeNet?
Я использую AuthorizeNet.dll ( https://github.com/AuthorizeNet/sdk-dotnet) в течение последних 6 месяцев, он отлично работает! Недавно я получил следующую ошибку для нескольких транзакций:
"Повторная транзакция была отправлена". Я провожу исследование в Интернете и нашел следующую ссылку, которая хорошо объясняет https://support.authorize.net/authkb/index?page=content&id=A425&actp=LIST
Мой вопрос: как я могу передать значение для параметра "x_duplicate_window", как только я вызову следующий метод, CustomerGateway.cs -> public IGatewayResponse AuthorizeAndCapture(Order order)
? Или мне нужно что-то изменить внутри AuthorizeAndCapture
метод? Или мне нужно что-то изменить внутри HttpXmlUtility.cs->ANetApiResponse Send(ANetApiRequest apiRequest)
Я ценю любую помощь. Спасибо
1 ответ
Вам не нужно изменять код SDK. Он предоставляет API для CIM "extraOptions" через Order.ExtraOptions
свойство (которое само по себе является точкой доступа для параметров AIM, отсутствующих по умолчанию в сообщениях CIM SOAP). Например:
Order order = ...
order.ExtraOptions = "x_duplicate_window=0"; // integer seconds, 28800 (8 hour) max; see AIM documentation
// (from comments) if you need to include multiple "extras", the delimiter is '&'
order.ExtraOptions = "x_duplicate_window=0&x_customer_ip=100.0.0.1";