हमने इसका पता लगा लिया।
किसी तरह "ASP.NET_SessionId" कुकी का "समान" विशेषता "लैक" को डिफॉल्ट करता है और इसके कारण सत्र कुकी को भुगतान गेटवे के जावास्क्रिप्ट कोड द्वारा किए गए अनुरोध में नहीं जोड़ा जाता है।
हमने इस मान को ओवरराइड करने के लिए web.config फ़ाइल में निम्नलिखित नियम जोड़ा है और इसे "कोई नहीं" पर सेट किया है।
<configuration>
<system.webServer>
<rewrite>
<outboundRules>
<rule name="Add SameSite" preCondition="No SameSite">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; SameSite=None" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No SameSite">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; SameSite=None" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
अद्यतन १ : बस ऊपर दिए गए कॉन्फ़िगरेशन को जोड़ने से आधुनिक ब्राउज़रों के लिए समस्या हल हो गई, लेकिन हमने महसूस किया कि हम अभी भी पुराने संस्करणों के साथ माइक्रोसाफ्ट एज और इंटरनेट एक्सप्लोरर के साथ समस्या थे।
इसलिए हमें web.config फ़ाइल में नोड को जोड़ने के लिए CookieSameSite = "none" विशेषता जोड़ने की आवश्यकता थी।
<sessionState cookieSameSite="None" />
इस कॉन्फ़िगरेशन परिवर्तन से सावधान रहें, क्योंकि पुराने .net फ्रेमवर्क संस्करण इसका समर्थन नहीं करते हैं और आपकी साइट को त्रुटि पृष्ठ प्रदर्शित करने का कारण बनते हैं।
वैसे हम अभी भी IOS 12 में ब्राउज़रों के साथ समस्या कर रहे हैं। लेकिन मुझे लगता है कि यह इस पुष्ट बग से संबंधित है
अद्यतन 2 : IOS मुद्दे के बारे में संभावित सुधार के लिए zemien का उत्तर देखें
अद्यतन 3 : ज़ेमिएन के उत्तर में सुझावों के साथ हमारे निष्कर्षों को जोड़कर हम निम्नलिखित लिखित नियमों के साथ आए हैं। हम उत्पादन में इस विन्यास का उपयोग कर रहे हैं। लेकिन सावधान रहें: यह संगत ब्राउज़रों के लिए "समान: कोई नहीं" विशेषता के साथ सभी कुकीज़ को चिह्नित करता है और असंगत ब्राउज़रों के लिए मौजूद समसाइट विशेषता को बाहर करता है। यह जटिल लग सकता है लेकिन मैंने टिप्पणी लाइनों के माध्यम से समझाने की कोशिश की।
यह अंतिम विन्यास है जिसका हम उत्पादन में उपयोग करते हैं:
<configuration>
<system.webServer>
<rewrite>
<outboundRules>
<preConditions>
<!-- Browsers incompatible with SameSite=None -->
<preCondition name="IncompatibleWithSameSiteNone" logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="(CPU iPhone OS 12)|(iPad; CPU OS 12)" />
<add input="{HTTP_USER_AGENT}" pattern="(Chrome/5)|(Chrome/6)" />
<add input="{HTTP_USER_AGENT}" pattern="( OS X 10_14).*(Version/).*((Safari)|(KHTML, like Gecko)$)" />
</preCondition>
<!-- Rest of the browsers are assumed to be compatible with SameSite=None -->
<preCondition name="CompatibleWithSameSiteNone" logicalGrouping="MatchAll">
<add input="{HTTP_USER_AGENT}" pattern="(CPU iPhone OS 12)|(iPad; CPU OS 12)" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="(Chrome/5)|(Chrome/6)" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="( OS X 10_14).*(Version/).*((Safari)|(KHTML, like Gecko)$)" negate="true" />
</preCondition>
</preConditions>
<!-- Rule 1: Remove SameSite part from cookie for incompatible browsers if exists -->
<rule name="Remove_SameSiteCookie_IfExists_ForLegacyBrowsers" preCondition="IncompatibleWithSameSiteNone">
<match serverVariable="RESPONSE_Set-Cookie" pattern="(.*)(SameSite=.*)" />
<action type="Rewrite" value="{R:1}" />
</rule>
<!-- Rule 2: Override SameSite's value to None if exists, for compatible browsers -->
<rule name="Override_SameSiteCookie_IfExists_ForModernBrowsers" preCondition="CompatibleWithSameSiteNone">
<match serverVariable="RESPONSE_Set-Cookie" pattern="(.*)(SameSite=.*)" />
<action type="Rewrite" value="{R:1}; SameSite=None" />
</rule>
<!-- Rule 3: Add SameSite attribute with the value None if it does not exists, for compatible browsers -->
<rule name="Add_SameSiteCookie_IfNotExists_ForModernBrowsers" preCondition="CompatibleWithSameSiteNone">
<match serverVariable="RESPONSE_Set-Cookie" pattern=".*"/>
<!-- Condition explanation: Cookie data contains some string value but does not contain SameSite attribute -->
<conditions logicalGrouping="MatchAll">
<add input="{R:0}" pattern="^(?!\s*$).+"/>
<add input="{R:0}" pattern="SameSite=.*" negate="true"/>
</conditions>
<action type="Rewrite" value="{R:0}; SameSite=None" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>