ASP. NET MVC 5 приложение на. NET framework 4.5.2.
Использование CyberSource для отправки платежа.
При отправке параметра отправки платежа в CyberSource: «override_custom_receipt_page», который указывает MVC действие, к которому Cybersource должен вернуться после обработки платежа.
В производственной среде платеж отправляется на
https://secureacceptance.cybersource.com . . . .
Все работает нормально.
В локальных средах, средах DEV, QA платеж отправляется на
https://testsecureacceptance.cybersource.com . . . .
И в этих средах CS возвращается к указанному MVC действие, но SessionId отличается, а не SessionId сеанса, отправившего запрос в CS.
И, конечно же, MVC action не может найти никаких объектов Session, необходимых для обработки ответа от CS.
И ответ обрабатывается неправильно.
Я погуглил, нашел информацию о смене идентификатора сеанса, попробовал несколько рекомендаций, не помогает.
Global.asax.cs действительно имеет Session_Start:
protected void Session_Start()
{
Session["init"] = 0;
}
Кроме того, в web.config
:
<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="20">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=<..value here..>" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
среды DEV, QA, PROD находятся в Azure.
Кроме того, кажется, что до сих пор этот код работал нормально в течение 5 лет, затем он сломался in Local, DEV, QA.
Похоже, что он мог сломаться после того, как среды DEV и QA были перемещены в Azure.
Но, Local env отсутствует в Azure, это мой собственный ноутбук.
Нет балансировщика нагрузки для Local, DEV, QA.
ТАКЖЕ, я только что нашел информацию о том, что "Chrome изменено, как файлы cookie работают с De c 2019 ", об атрибуте sameSite. Но, опять же - почему тот же код работает в производственной среде без sameSite и не работает в другой среде?
Если кто-нибудь может иметь представление о том, что может происходить, почему CS не может вернуться к тому же сессия, мы будем очень признательны.
Большое спасибо