最近公司对接微信支付,用到了wechatpay-api-v3接口规则,遇到SHA256-RSA加密问题,搞了很久才弄好,接下来分享SHA256-RSA加密:
获取签名证书私钥
/// <summary>
/// 获取签名证书私钥
/// </summary>
/// <param name="certPath">证书文件路径</param>
/// <param name="mchIdPwd">密码(默认服务商ID)</param>
/// <returns></returns>
private static RSA GetCertPrivateKey(string certPath, string mchIdPwd)
{
var pc = new X509Certificate2(certPath, mchIdPwd, X509KeyStorageFlags.Exportable);
return (RSA)pc.PrivateKey;
}
根据私钥对请求微信数据进行签名
/// <summary>
/// 根据证书签名数据
/// </summary>
/// <param name="message">要签名的数据</param>
/// <param name="certPath">证书路径</param>