public void SetOption(IAlipayOptions options) { if (options == null) { throw new ArgumentException(nameof(options)); } //SignType私钥检查 if (string.IsNullOrEmpty(options.SignType)) { throw new Exception("您的支付宝配置未能通过检查,详细信息:签名类型未指定!"); } //RSA私钥检查 if (string.IsNullOrEmpty(options.PrivateKey)) { throw new Exception("您的支付宝配置未能通过检查,详细信息:未能获取到商户私钥!"); } //RSA私钥格式检查 RSA rsaCsp = AlipaySignature.LoadCertificateString(options.PrivateKey, options.SignType); if (rsaCsp == null) { throw new Exception("您的支付宝配置未能通过检查,详细信息:商户私钥格式错误,未能导入!"); } this.Uid = options.Uid; this.AlipayPublicKey = options.AlipayPublicKey; this.AppId = options.AppId; this.CharSet = options.CharSet; this.Gatewayurl = options.Gatewayurl; this.PrivateKey = options.PrivateKey; this.SignType = options.SignType; }
public void Test1() { try { string prikey = "MIIEpAIBAAKCAQEAqOTxQbDUUkm/CS/eVTHgARhqCfs5mWe/FImEIDyPrsExswLUbc6pIXBulqtYOJ9Nl4fljNgXJbh4CyoUtiM5U9jf5yoPthJq667rPwtRVOIDnmNWKZNHponXjFBQs/juNkUgdX4kcWx695cWGkm+SRXCQQsKcSsqubFwLgXRP9HErfPwColtfmwVZVNXWA4ZtHTrSczbVDplMS8Fg73eprwIxYvpOFxFhAAwC4+Xw753Zd+u0P05YhXrQ/76g1YqNBkiHlOpWtwLVdL+zU9Nk5PxRGgjUqvJpDUxwjEHCEDxD4fxdgS+ml5pm0SsRKyXFm2+ZyPDlu7LQdx28kgAeQIDAQABAoIBAQCZvGQa/qIWEUjSTP9dn1uew6FqWoLwr64QPKjHSzkiwnrBzradCXuMk7ImdeuFBwTzBOGfledkD4k96F0X+fIp74TH/9JzUkp/JCbAqUWsNVtD5no8t/KFln1dHJKJb/Mt9Th5mowDrtIz4xRcc3nBPwwmdq1XnAp1Ix3Q1rzFEGX4Ndce6q2YkbpAMKgl3HeIbgKrKHOxmJJ9hJ3rUzc24D+e2dR9eYCym576RrxxuHISysa4N41MSdZq5jXaaWmwIGg68v5wEVJcEkmAc91webKAfy1SVdQiAl8I1xSI3JDUXloWrUAX3ZnRcknjEmhcs7by5QrOnbTd8ZR5Mkt9AoGBAPU4QLSj5QdNz+HjoRdfxda2lK1OPy3O/jReCE6NnqTbvVygQjFdlmYnGFhwnLa1SoWYW9M9mg9lRxsQoBt6Zdh4Pu08cG+3GY1i4tILWroLekPHImz8TcqYCeU9OlAt+Yo59NWTA0EboDfr/YPx8WYeJ5g1z+yz9qG8+iz04ZMDAoGBALBRtZ7ywEYGdHW47jhNpJwTfBygFCOZzoIIpYoEuHVrtlBiKtPgMEryReOEurpl6TKgdOVZ99F0G0lIMZtyqdRKkJh8t99S5z7Y7yWRA+1ImcmHNC/r+KZig1gcAW6z26xVNPsNtjiXwixrQ5cIsQGN53mgauGCVsrzyH3yMkfTAoGAfKiQHESFFWV1HHw/VEaXqENA6akxbPQhPjXfOy+7Skt6xC+j9ryAzIVrVupIgIlAzRFa/NQAEXuG3jdhbRaX16epNajX77LBBqMSc3zaLmHPUc1VrtnEIg2QWjz5+/CjPqWf1ULbEKoelM8fHYhNE4CY2EPi443I/we2lkwWsEkCgYEAhvck5XTARVnvj6VthF+6n1Yy7N6ES/QSJWtk+889O3Sl68YZLnIvxU7KvKv/G2ujJAO7N0y06/nKYUAH6QvOgBhLss3VGfel12/LL6BftySZw6/g/MXOYd6K18koN4spnjLjCUGnuI5CLio1ZMlcZOoww+NNrS1OLrCJSg84+c0CgYAkw6xcfaKLH39+jdc2DLVrip4JYv+p4v9GuQbn1C1aqjaxVR5ZjbYuIaJXhr8Z0qIFaYENBVAA0AM75lkZUcYwVNiIfSA2WSFlymoy90ovPIQaG5jaQXRv8hrjRJ1zQ/l5JzhngERVbi4BBcz2QfC9GxsEa4CYGciI/sMH44fUvg=="; string pubkey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqOTxQbDUUkm/CS/eVTHgARhqCfs5mWe/FImEIDyPrsExswLUbc6pIXBulqtYOJ9Nl4fljNgXJbh4CyoUtiM5U9jf5yoPthJq667rPwtRVOIDnmNWKZNHponXjFBQs/juNkUgdX4kcWx695cWGkm+SRXCQQsKcSsqubFwLgXRP9HErfPwColtfmwVZVNXWA4ZtHTrSczbVDplMS8Fg73eprwIxYvpOFxFhAAwC4+Xw753Zd+u0P05YhXrQ/76g1YqNBkiHlOpWtwLVdL+zU9Nk5PxRGgjUqvJpDUxwjEHCEDxD4fxdgS+ml5pm0SsRKyXFm2+ZyPDlu7LQdx28kgAeQIDAQAB"; string abc = "abc123"; RSACryptoServiceProvider rsaCsp = AlipaySignature.LoadCertificateString(prikey, "RSA2"); string r1 = Convert.ToBase64String(AlipaySignature.RSAEncrypt(rsaCsp, Encoding.UTF8.GetBytes(abc))); string r2 = Encoding.UTF8.GetString(AlipaySignature.RSADecrypt(rsaCsp, Convert.FromBase64String(r1))); var sPublicKeyPEM = "-----BEGIN PUBLIC KEY-----\r\n"; sPublicKeyPEM += pubkey; sPublicKeyPEM += "-----END PUBLIC KEY-----\r\n\r\n"; RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.PersistKeyInCsp = false; RSACryptoServiceProviderExtension.LoadPublicKeyPEM(rsa, sPublicKeyPEM); string r11 = Convert.ToBase64String(AlipaySignature.RSAEncrypt(rsa, Encoding.UTF8.GetBytes(abc))); string r22 = Encoding.UTF8.GetString(AlipaySignature.RSADecrypt(rsaCsp, Convert.FromBase64String(r1))); } catch (Exception) { } }
public static void Check(string signType, string privateKey) { //SignType私钥检查 if (string.IsNullOrEmpty(signType)) { throw new Exception("您的支付宝配置未能通过检查,详细信息:签名类型未指定!"); } //RSA私钥检查 if (string.IsNullOrEmpty(privateKey)) { throw new Exception("您的支付宝配置未能通过检查,详细信息:未能获取到商户私钥!"); } //RSA私钥格式检查 RSA rsaCsp = AlipaySignature.LoadCertificateString(privateKey, signType); if (rsaCsp == null) { throw new Exception("您的支付宝配置未能通过检查,详细信息:商户私钥格式错误,未能导入!"); } }