C# 微信支付V3 签名示例

本文档详细介绍了使用C#进行微信支付V3签名的步骤,包括通过X509Certificate2获取证书秘钥、使用RSACryptoServiceProvider进行SHA256加密,以及在签名验证时需要注意的明文换行问题。提供了一段适用于.NET Framework 4.5及更高版本的代码示例。
摘要由CSDN通过智能技术生成

概要

微信小程序支付已经到了V3阶段,在V2阶段因为自己对文档的不仔细研读就踩过一个坑(ASCII排序),到了V3版本,又是折磨了2天时间,看了一下目前网上关于C#的示例代码,要么是做了高封装,要么是借用三方库,而且在版本上基本都是.net core的版本居多,向下兼容性较差。特此记录一下,也为同僚们提供一点点帮助;
因此,写了一个最干净简单的示例!

签名思路

官方提供的文档(如何签名)已经把思路基本写的比较清楚了,我们需要解决的问题其实就是1个,如何加密!!!
找了一下前行者的解决思路,.netCore 的示例较多,在向下兼容上,部分兄弟提出了.net 与java的秘钥不一致的问题,并使用了Org.BouncyCastle工具进行转换,其实大可不必。
本文的解决思路如下:
1、通过X509Certificate2对象读取证书直接获取秘钥(直接省略秘钥明文、引入三方库、跨平台等问题)
2、通过RSACryptoServiceProvider对象进行SHA256加密
3,、返回签名串

代码示例

以下代码为FrameWork4.5+以上均可使用。

        /// <summary>
        /// V3加密算法
        /// </summary>
        /// <param name="meth">POST、GET</param>
        /// <param name="url">接口地址</param>
        /// <param name="body">参数正文</param>
        /// <param name="priKeyFile">证书地址</param>
        /// <param name="keyPwd">证书密码</param>
        /// <returns></returns>
        public static string wx3Sign(string meth,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值