Solución:
No veo en su ejemplo de código donde está configurando el valor de _baseUrl, pero supongo que se está haciendo en alguna parte. También supongo que, dado que está relacionado con los pagos, la URL es HTTPS. Si el host remoto ha desactivado TLS 1.0 y su conexión llega como TLS 1.0, podría causar ese comportamiento. Sé que C # 4.6 tiene la compatibilidad con TLS 1.0 / 1.1 / 1.2 habilitada de forma predeterminada, pero creo que C # 4.6 todavía tiene como valor predeterminado solo SSL3 / TLS 1.0 a pesar de que se admiten TLS 1.1 y 1.2. Si esta es la causa del problema, puede agregar TLS 1.1 y 1.2 manualmente a los valores habilitados usando el siguiente código.
System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Si está utilizando .Net 4.0, SecurityProtocolType.Tls11 y SecurityProtocolType.Tls2 no están definidos, por lo que puede utilizar el valor codificado a continuación.
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
Es posible resolver el problema sin ningún cambio en el código, como se describe en esta excelente respuesta a una pregunta similar:
Reorientar el proyecto web a .Net 4.6+, luego actualice web.config de la siguiente manera:
<system.web>
<compilation targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />
</system.web>