Как передать значение параметра ' 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";
Другие вопросы по тегам