问题如标题
1、证书已经下载和安装到服务器

2、证书代码如下:
1、证书已经下载和安装到服务器

2、证书代码如下:
string strHtml = "";
HttpWebResponse webreponse;
try
{
//系统必须已经导入cert指向的证书
string url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
System.Security.Cryptography.X509Certificates.X509Certificate2 cert =
store.Certificates.Find(X509FindType.FindBySubjectName, "证书名称就不写出来了", false)[0];
HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);
webrequest.ClientCertificates.Add(cert);
webrequest.Method = "post";
webrequest.KeepAlive = true;
webreponse = (HttpWebResponse)webrequest.GetResponse();
Stream stream = webreponse.GetResponseStream();
string resp = string.Empty;
using (StreamReader reader = new StreamReader(stream))
{
resp = reader.ReadToEnd();
}
strHtml = resp;
}
catch (Exception exp)
{
strHtml = exp.ToString();
}
经调试运行错误地方为:
System.Security.Cryptography.X509Certificates.X509Certificate2 cert = store.Certificates.Find(X509FindType.FindBySubjectName, "证书名称就不写出来了", false)[0];
上面这句代码是通过名称查找证书,但是这个数组返回空,找不到对应证书。
至此问题描述完毕,请求各位高手帮忙!
解决方案
5
多半是证书名写错了,把Certificates里的证书名全输出来看看叫啥名称吧
25
那个例子里面不是有么
//能否使用证书
if (isUseCert)
{
string path = HttpContext.Current.Request.PhysicalApplicationPath;
X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);
request.ClientCertificates.Add(cert);
}