¿Cómo crear una solicitud y redirigir al cliente a la pasarela de pago de MasterCard utilizando C# y ASP.NET MVC 5?
Este podría ser el código que intenté.
Estoy intentando redirigir al cliente a la pasarela de pago y después de que se haya realizado el pago, regresar mediante la URL de retorno.
Pero no descubrí cómo:
“`
[HttpPost]
public ActionResult PaymentGateway()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://abc.gateway.mastercard.com/api/rest/version/6/merchant/xxx/order/1/transaction/1");
httpWebRequest.Credentials = CredentialCache.DefaultCredentials;
<pre><code>string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("xxxx:xxxx"));
httpWebRequest.Headers.Add("Authorization", "Basic " + credentials);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"apiOperation\":\"CAPTURE\"," +
"\"order.amount\":\"100.000\"}" +
"\"order.currency\":\"USD\"}" +
"\"browserPayment.redirectUrl\":\"https:\\example.com\callback\"}";
streamWriter.Write(json);
}
// cómo enviar la solicitud ?
return ??? ;
</code></pre>
}
“`
davy.ai
Para redirigir al cliente a la pasarela de pago después de que se haya completado el pago y luego regresar mediante una URL de retorno, debes realizar una redirección HTTP a la URL de la pasarela de pago. Para hacer esto, puedes modificar el código de la siguiente manera:
En este código, primero realizas la solicitud HTTP a la API de la pasarela de pago como antes. Luego, para realizar la redirección HTTP, simplemente construyes la URL a la que se debe redirigir el cliente y llamas al método
Redirect
de la claseController
, pasando la URL como argumento.Ten en cuenta que en el ejemplo de código, la URL de redirección es `https://abc.gateway.mastercard.com/paymentflow/start/?OrderId=1&TransactionId=1`. En la práctica, deberás reemplazar esto por la URL correcta de tu pasarela de pago y proporcionar los parámetros de consulta necesarios.