Пример #1
0
        /// <summary>
        /// 构造证书运行环境
        /// </summary>
        /// <param name="merchantCertPath">商户公钥证书路径</param>
        /// <param name="alipayCertPath">支付宝公钥证书路径</param>
        /// <param name="alipayRootCertPath">支付宝根证书路径</param>
        public CertEnvironment(string merchantCertPath, string alipayCertPath, string alipayRootCertPath)
        {
            if (string.IsNullOrEmpty(merchantCertPath) || string.IsNullOrEmpty(alipayCertPath) || string.IsNullOrEmpty(alipayCertPath))
            {
                throw new Exception("证书参数merchantCertPath、alipayCertPath或alipayRootCertPath设置不完整。");
            }

            this.RootCertContent = File.ReadAllText(alipayRootCertPath);
            this.RootCertSN      = AntCertificationUtil.GetRootCertSN(RootCertContent);

            X509Certificate merchantCert;

            if (merchantCertPath.StartsWith("cert:\\", StringComparison.OrdinalIgnoreCase))
            {
                merchantCert = GetPublicKeyFromCertificateStore(merchantCertPath);
            }
            else
            {
                merchantCert = AntCertificationUtil.ParseCert(File.ReadAllText(merchantCertPath));
            }
            this.MerchantCertSN = AntCertificationUtil.GetCertSN(merchantCert);

            X509Certificate alipayCert      = AntCertificationUtil.ParseCert(File.ReadAllText(alipayCertPath));
            string          alipayCertSN    = AntCertificationUtil.GetCertSN(alipayCert);
            string          alipayPublicKey = AntCertificationUtil.ExtractPemPublicKeyFromCert(alipayCert);

            CachedAlipayPublicKey[alipayCertSN] = alipayPublicKey;
        }
Пример #2
0
        public void should_get_correct_root_rsa_cert_sn()
        {
            string rootCertContent = File.ReadAllText(TestAccount.ProdCert.CertParams.RootCertPath);
            string sn = AntCertificationUtil.GetRootCertSN(rootCertContent, "RSA");

            Assert.AreEqual(sn, "687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6");
        }
Пример #3
0
        /// <summary>
        /// 构造证书运行环境
        /// </summary>
        /// <param name="merchantCertPath">商户公钥证书路径</param>
        /// <param name="alipayCertPath">支付宝公钥证书路径</param>
        /// <param name="alipayRootCertPath">支付宝根证书路径</param>
        public CertEnvironment(string merchantCertPath, string alipayCertPath, string alipayRootCertPath)
        {
            if (string.IsNullOrEmpty(merchantCertPath) || string.IsNullOrEmpty(alipayCertPath) || string.IsNullOrEmpty(alipayCertPath))
            {
                throw new Exception("证书参数merchantCertPath、alipayCertPath或alipayRootCertPath设置不完整。");
            }

            this.RootCertContent = File.ReadAllText(alipayRootCertPath);
            this.RootCertSN      = AntCertificationUtil.GetRootCertSN(RootCertContent);

            X509Certificate merchantCert = AntCertificationUtil.ParseCert(File.ReadAllText(merchantCertPath));

            this.MerchantCertSN = AntCertificationUtil.GetCertSN(merchantCert);

            X509Certificate alipayCert      = AntCertificationUtil.ParseCert(File.ReadAllText(alipayCertPath));
            string          alipayCertSN    = AntCertificationUtil.GetCertSN(alipayCert);
            string          alipayPublicKey = AntCertificationUtil.ExtractPemPublicKeyFromCert(alipayCert);

            CachedAlipayPublicKey[alipayCertSN] = alipayPublicKey;
        }