Сеанс заполняется конвейером запросов aspnet.Потому что вы вызываете контроллер вручную, чего вам следует всегда избегать, потому что контроллеры созданы для обработки запросов и не предназначены для вызова вручную, поскольку это нарушает весь конвейер запросов.
Поскольку сеанс где-то установленв конвейере запросов, и вы вызываете контроллер вручную, ни одна из этих переменных не будет доступна внутри этого контроллера, но они будут на контроллере, из которого вы его вызываете, поскольку это является частью конвейера запросов.Возможно, вы можете получить к нему доступ и передать его в качестве параметра.
Наилучшим вариантом является использование службы для выполнения платежа или чего-либо, находящегося внутри действия оплаты, и использование этой службы в обоих контроллерах..