大家好,我遇到了问题,这是我第一次为支付门户设置Mutial SSL,下面的代码是我正在使用的,我得到的错误是:
System.Web.Services.Protocols.SoapException:找不到用于授权用户的凭据在System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse上缺少身份验证凭据[cert](SoapClientMessage消息,WebResponse响应,流responseStream,布局asyncCall)位于c:\ users \ hp \ documents \ visual studio 2010中的USBANK.epayWebService.epayWebServiceService.Payment(PaymentRequest PaymentRequest)中的System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object []参数) Projects \ USBANK \ USBANK \ Web References \ epayWebService \ Reference.cs:第953行,位于C:\ Users \ HP \ documents \ visual studio 2010 \ Projects \ USBANK \ USBANK \的USBANK.Default.Page_Load(Object sender,EventArgs e) Default.aspx.cs:第36行
我之前从未见过这个错误,也不确定问题是什么,我知道我必须加载.crt文件,我对此有任何帮助,这样会很棒。
谢谢!
string certPath = "C:\\inetpub\\SSLCertificate.cer";
Documents\\Visual Studio 2010\\Projects\\USBANK\\USBANK\\SSLCertificate.cer";
epayWebService.CardNotPresentCredit CNPC = new epayWebService.CardNotPresentCredit();
epayWebService.PaymentRequest PR = new epayWebService.PaymentRequest();
epayWebService.BillerCredential BC = new epayWebService.BillerCredential();
epayWebService.PaymentMethod PM = new epayWebService.PaymentMethod();
epayWebService.GetPaymentRequest GPR = new epayWebService.GetPaymentRequest();
epayWebService.PaymentResponse Response = new epayWebService.PaymentResponse();
BC.billerGroupID = "xxx";
BC.billerID = "xxx";
PR.billerCredential = BC;
PR.paymentAmount = 0;
PR.paymentDate = DateTime.Now;
CNPC.cardNumber = "xxxxxxxxxxxxxx";
PM.Item = CNPC;
PR.paymentMethod = PM;
PR.productCode = "Menu";
try
{
epayWebService.epayWebServiceService ep = new epayWebService.epayWebServiceService();
ep.Url = "https://xxx.xxxxxxxxx.com/EPayWebService/";
ep.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
Response = ep.Payment(PR);
LabelResponse.Text = Response.response.ToString();
}
catch(Exception ex)
{
LabelResponse.Text = ex.ToString();
}
答案 0 :(得分:0)
我们遇到了这个问题,原来我们发错了证书。您需要附上您的证书,而不是USBank证书。
答案 1 :(得分:0)
要验证自己,您需要自己的私钥。这通常与您的公共证书一起存储在一个文件中。它可能有“.pfx”或“.p12”扩展名。
此外,您需要使用X509Certificate2
子类。奇怪的是,尽管它是一个“证书”,但该对象还可以携带客户端进行身份验证所需的私钥。