当前位置: 首页 > news >正文

C#生成微信支付的Authorization签名认证

        //获取签名var Token= BuildAuthAsync("GET", body, URL);/// <summary>/// 构造签名串/// </summary>/// <param name="method">HTTP请求方式(全大写)</param>/// <param name="body">API接口请求参数的json字符串</param>/// <param name="uri">API接口的相对路径</param>/// <returns></returns>protected string BuildAuthAsync(string method, string body, string uri){var timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();string nonce = Path.GetRandomFileName();string message = $"{method}\n{uri}\n{timestamp}\n{nonce}\n{body}\n";string signature = RequestSign(message);times = timestamp.ToString();noncerodom = nonce;sign = signature;return $"mchid=\"{mchid}\",nonce_str=\"{nonce}\",timestamp=\"{timestamp}\",serial_no=\"{serial_no}\",signature=\"{signature}\"";}/// <summary>/// 生成签名/// </summary>/// <param name="message"></param>/// <returns></returns>protected string RequestSign(string message){//加载证书 _apiCertPath API证书物理路径 _certPwd API证书密码(默认是商户号)X509Certificate2 cer = new X509Certificate2("../../File/1628286360_20231122_cert/apiclient_cert.p12", mchid, X509KeyStorageFlags.Exportable);if (cer != null){RSA rsa = cer.GetRSAPrivateKey();//获取私钥//查看在不同平台上的具体类型byte[] data = Encoding.UTF8.GetBytes(message);return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));}else{return "";}}
http://www.lryc.cn/news/260323.html

相关文章:

  • 平台工程与 DevOps 和 SRE 有何不同?
  • 算法-只出现一次的数字集合
  • Linux,Web网站服务(一)
  • Monkey工具之fastbot-iOS实践
  • 我想当个程序员
  • ACM32如何保护算法、协议不被破解或者修改
  • Android Studio(Flutter)常用快捷键
  • CSS特效030:日蚀动画
  • 746.使用最小花费爬楼梯
  • 【业务功能篇132】生产环境中出现oom问题,排查思路
  • 如何将html网页免费转为excel?
  • 手撕分布式缓存---HTTP Server搭建
  • 2. PyTorch——Tensor和Numpy
  • C#随笔 | List.Sort()使用小计
  • 【WebRTC】用WebRTC做即时视频聊天应用
  • GPT-4.5 要来了!谷歌大模型 Gemini 确实给够压力
  • 美易官方:加密资产将破坏金融稳定,无法取消就要加强监管
  • 一文读懂Java中的设计模式——适配器模式,对于兼容不同系统特别适用!
  • 2023年国内外评分前十的项目管理软件推荐
  • 3.electron之vue3.0的桌面应用程序
  • 数字图像处理(实践篇)二十二 使用opencv进行人脸、眼睛、嘴的检测
  • 旺店通·企业奇门对接打通金蝶云星空查询仓库接口与仓库新增接口
  • PostgreSQL获取以前的时间
  • 逆向获取某音乐软件的加密(js逆向)
  • C语言—每日选择题—Day42
  • jsp文件引用的css修改后刷新不生效问题
  • SpringBoot运维中的高级配置
  • Centos7下OpenLDAP安装
  • 2036开关门,1109开关门
  • 最简单的pixel刷机和安装面具、lsposed