X.509 v.3 证书的方法。一个比较完整的调用 微信 API的示例:
private stringGetResponseResult()
{
string strResponseResult="";//返回结果
try
{
string url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
string cert = @"";//证书文件(完整文件名称)
string password = "123467890";//验证证书密码
//对服务端证书进行有效性校验(非第三方权威机构颁发的证书,如自己生成的,不进行验证,这里返回true)
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
X509Certificate cer = new X509Certificate(cert, password);// X.509 v.3 证书的方法。
HttpWebRequest webrequest = (HttpWebRequest)HttpWebRequest.Create(url);//模拟http请求
webrequest.ClientCertificates.Add(cer);
webrequest.Timeout = 30000;
webrequest.Method = "post";
HttpWebResponse webreponse = (HttpWebResponse)webrequest.GetResponse();//获取相应流信息
Stream stream = webreponse.GetResponseStream();
string resp = string.Empty;
using (StreamReader reader = new StreamReader(stream))
{
resp = reader.ReadToEnd();
}
strResponseResult = resp;
}
catch (Exception exp)
{
throw new Exception("Exception Information:"+exp.Message.ToString());
}
return strResponseResult;
}
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
if (errors == SslPolicyErrors.None)
return true;
return false;
}