首页 > 解决方案 > 会话变量在来自另一个提供者的回调中丢失

问题描述

我们的应用程序在 ASP.net MVC 5、.Net Framework 4.6 上,我们正在使用自定义 SQL 会话状态

<sessionState mode="Custom" customProvider="mssql" cookieless="false" timeout="20">
  <providers>
    <add name="mongo" type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider, Sitecore.SessionProvider.MongoDB" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" />
    <add name="mssql" type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider, Sitecore.SessionProvider.Sql" sessionType="private" connectionStringName="session" pollingInterval="2" compression="true" />
    <add name="redis" type="Sitecore.SessionProvider.Redis.RedisSessionStateProvider, Sitecore.SessionProvider.Redis" applicationName="Application" connectionString="session" pollingInterval="2" compression="true" />
  </providers>
</sessionState>

我们目前正在研究支付提供商集成(worldpay),我们有一个 3 步加入流程,我们收集个人详细信息、账单详细信息、帐户创建详细信息,每一步都会更新会话变量中的信息

在提交时,应用程序通过传递帐单详细信息和回调 URL 来调用支付提供商 API 以发布交易状态,成功交易后,我们将在我们的应用程序上创建一个用户,并将所有详细信息存储在会话中

问题 :

在从支付提供商 POST 回回调 URL 时,我的带有用户详细信息的会话变量丢失,创建了一个新的会话 ID

在 Post back 之前,有 15 个会话变量

在此处输入图像描述

回发后有 3 个会话变量

在此处输入图像描述

有关如何解决此问题的任何帮助?

标签: asp.netasp.net-mvcworldpay

解决方案


推荐阅读