【问题标题】:World Pay Payment gateway Integration In ASP.Net MVC using C#使用 C# 在 ASP.Net MVC 中集成 World Pay 支付网关
【发布时间】:2013-05-11 00:58:39
【问题描述】:
string xml = "<?xml version='1.0'? encoding='UTF-8'?><!DOCTYPE paymentService PUBLIC '-//WorldPay//DTD WorldPay PaymentService v1//EN''http://dtd.worldpay.com/paymentService_v1.dtd'><paymentService version='1.4' merchantCode='MYMERCHANTCODE'><submit><order orderCode='RecurringOrderCode'><description>Monthly subscription.</description><amount value='1399' currencyCode='EUR' exponent='2' /><orderContent>Your Original Order Content</orderContent> <paymentDetails><VISA-SSL> <cardNumber>4444333322221111</cardNumber><expiryDate> <date month='09' year='2019'/> </expiryDate> <cardHolderName>J. Shopper</cardHolderName><cvc>123</cvc> <cardAddress> <address> <street>47A Queensbridge Rd</street><postalCode>CB94BQ</postalCode><city>GB</city><countryCode>GB</countryCode><telephoneNumber>+44</telephoneNumber> </address> </cardAddress> </VISA-SSL> <session shopperIPAddress='100.100.100.100' id='0215ui8ib1' /> </paymentDetails></order></submit></paymentService>";
        string url = "https://secure-test.worldpay.com/jsp/merchant/xml/paymentService.jsp";
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        //string s = "id="+Server.UrlEncode(xml);
        byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(xml);
        req.Method = "POST";
        req.ContentType = "text/xml;charset=utf-8";
        req.ContentLength = requestBytes.Length;
        Stream requestStream = req.GetRequestStream();
        requestStream.Write(requestBytes, 0, requestBytes.Length);
        requestStream.Close();
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
        string backstr = sr.ReadToEnd();
        sr.Close();
        res.Close();
        return View();

我正在使用此代码集成 Worldpay 支付网关 API,我在从 HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 行获取响应时收到此错误;

错误是 -401 需要授权

【问题讨论】:

  • API 文档对授权有什么看法?

标签: worldpay


【解决方案1】:

您需要将您的凭据添加到请求中,可能是 HTTP 基本身份验证。可以这样:

req.Headers[HttpRequestHeader.Authorization] = "Basic " + 
    Convert.ToBase64String(Encoding.ASCII.GetBytes(<username> + ":" + <password>));

【讨论】:

  • 我正在寻找将 worlpay 集成到我的 asp.net mvc 站点的方法。我对此了解不多,但您能告诉我这些 将属于 worldpay a/c 或其他吗?
  • 如果您使用基本的 HTTP 身份验证,他们应该已经为您提供了用户名和密码,因此您需要在构建请求时使用它们。
  • 我已经使用 HTML 重定向模型在我的一个 mvc 网站中集成了 worldpay a/c。
猜你喜欢
  • 2017-05-18
  • 2020-10-26
  • 2015-08-03
  • 2018-09-26
  • 2020-10-23
  • 2011-01-21
  • 2011-06-28
  • 2014-06-03
  • 2019-12-26
相关资源
最近更新 更多