/// <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; }
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"); }
/// <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; }