zoukankan      html  css  js  c++  java
  • C#.NET ,微信退款证书

    微信退款时遇到:基础连接已经关闭 连接被意外关闭。

    服务器环境:WIN SERVER 2008 R2.  WINDOWS服务承载的WCF服务,基于.NET FRAMEWORK 3.5.

    第一笔交易的退款是正常的,第二笔交易的退款就提示这个错误。重新导入证书后正常。再做一笔退款时还是报错。反复如此。

    同一环境另一证书一切正常。。。。。。。。

    问题代码:

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);
    
    req.KeepAlive = false;
    
    X509Certificate cer = new X509Certificate(certFullName, password);

    在网上搜索了下,有人这样写:

    X509Certificate2 certificate = new X509Certificate2(PATH_TO_CERTIFICATE, PASSWORD, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);

    也有人这样写:

    X509Certificate2 cer = new X509Certificate2(certFullName, password,
    X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

     估计是优先从X509KeyStorageFlags.MachineKeySet 这个地方去找证书。

    但是没在意他们都用的是:X509Certificate2。而我用的仍是X509Certificate。

    “X509Certificate cer = new X509Certificate(certFullName, password);”这段代码是微信官方DEMO里的,如下图:

    我以为代码里加下X509KeyStorageFlags即可,即:

    X509Certificate cer = new X509Certificate(certFullName, password,
    X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

    仍然用的是“X509Certificate”,测试后仍不行。

     无意间注意到两者不是同一个类,就去找X509Certificate和X509Certificate2的不同。

    在微软文档中:https://msdn.microsoft.com/zh-cn/library/system.security.cryptography.x509certificates.x509certificate(v=vs.90).aspx

    有提到:

    "ASN.1 DER 是此类支持的唯一证书格式。

    在大多数情况下,您应该使用 X509Certificate2 类。"

    阿西八,我用的是:X509Certificate.

    最后改成:

    X509Certificate2 cer = new X509Certificate2(certFullName, password,
    X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);

    更新下程序,测试了两个证书的四次退款均正常(每证书两次)。

     
  • 相关阅读:
    想要在控件里面使用触发器,只需要将下面代码填入控件中间即可
    WPF有关控件和模板样式设计的微软官方文档
    XDG0062 XAML 与XDG0008 XAML 错误的解决办法
    在WPF中一种较好的绑定Enums数据方法
    FrameworkElementFactory中的SetBinding与SetValue
    线性表结构:栈
    关于链表的一些问题
    使用Mybatis-Plus的一个坑
    双向链表和双向循环链表
    上下文切换的确切含义了解下
  • 原文地址:https://www.cnblogs.com/runliuv/p/5651106.html
Copyright © 2011-2022 走看看