Foxtable(狐表)用户栏目专家坐堂 → 微信支付V3中的SHA256-RSA的数字签名算法


  共有7343人关注过本帖树形打印复制链接

主题:微信支付V3中的SHA256-RSA的数字签名算法

帅哥哟,离线,有人找我吗?
tianhao0817
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1284 威望:0 精华:0 注册:2020/5/16 10:30:00
微信支付V3中的SHA256-RSA的数字签名算法  发帖心情 Post By:2022/4/11 14:25:00 [只看该作者]

请问一下有点蓝老师,论坛里有用V3版本写的例子吗?  SHA256-RSA的数字签名算法是怎么写的?
  • 遵循统一的Restful的设计风格
  • 使用JSON作为数据交互的格式,不再使用XML
  • 使用基于非对称密钥的SHA256-RSA的数字签名算法,不再使用MD5或HMAC-SHA256
  • 不再要求HTTPS客户端证书
  • 使用AES-256-GCM,对回调中的关键信息进行加密保护
接口规则中,你将了解到微信支付API v3的基础约定,如数据格式,参数兼容性,错误处理等。随后我们重点介绍了微信支付API v3新的认证机制。你可以跟随着签名指南,使用命令行或者你熟悉的编程语言,一步一步实践如何签名和验签。在最后的常见问题中,我们总结了商户接入过程中的各种常见和不常见的问题。
我们提供了API v3的Postman调试工具和某些开发语言的库。你可以通过我们的Github


[此贴子已经被作者于2022/4/11 14:25:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/11 15:02:00 [只看该作者]

没有例子。微信官方提供的代码里的加密算法仅支持.net core。Foxtable没有办法使用

 回到顶部
帅哥哟,离线,有人找我吗?
hammerlucy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:44 积分:562 威望:0 精华:0 注册:2019/3/29 13:27:00
  发帖心情 Post By:2022/5/24 12:08:00 [只看该作者]

这一块搞不定,那H5支付没办法完成了啊

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/24 13:33:00 [只看该作者]

微信支付V2现在不能使用了吗?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/25 12:41:00 [只看该作者]

v3签名用法:

Dim ts As TimeSpan = DirectCast((DateTime.Now - New DateTime(1970, 1, 1, 8, 0, 0, 0)), TimeSpan)
Dim timestamp As Long = Convert.ToInt64(ts.TotalSeconds).ToString '时间戳
Dim nonce_str As String = Guid.NewGuid.ToString.Replace("-", "").ToUpper '随机数
Dim ss As String = "GET" & Chr(10) & "/v3/certificates" & Chr(10) & timestamp & Chr(10) & nonce_str & Chr(10) & Chr(10)
'Output.Show(ss)
Dim pfxFilepath As String = "E:\微信支付\V3\cert\apiclient_cert.p12" '证书文件地址
Dim pfxpassword As String = "1500000000" '商户号
Dim privateCert As New Security.Cryptography.X509Certificates.X509Certificate2(pfxFilepath, pfxpassword, Security.Cryptography.X509Certificates.X509KeyStorageFlags.Exportable)
Dim privateKey As Security.Cryptography.RSACryptoServiceProvider = privateCert. PrivateKey
Dim privateKey1 As New Security.Cryptography.RSACryptoServiceProvider()
privateKey1.ImportParameters(privateKey.ExportParameters(True))
Dim data() As Byte = Encoding.UTF8.GetBytes(ss)
Dim signature() As Byte = privatekey1.SignData(data, "SHA256")
Dim sign As String = Convert.ToBase64string(signature)
'Output.Show(sign)
Dim htc As New HttpClient("https://api.mch.weixin.qq.com/v3/certificates")
htc.ContentType = "application/json; charset=utf-8"
htc.Accept = "application/json" '必须
htc.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36" ‘必须’
Dim s1 As String = "WECHATPAY2-SHA256-RSA2048 mchid=""" & pfxpassword & """,nonce_str=""" & nonce_str & """,signature=""" & sign & """,timestamp=""" & timestamp & """,serial_no=""这里改为自己的证书序列号"""  ‘授权验证数据
'Output.Show(s1)
htc.Headers.Add("Authorization", s1)
Dim ret As String = htc.GetData()
Output.Show(ret)
[此贴子已经被作者于2022/7/4 16:55:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
qinyilin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:45 积分:499 威望:0 精华:0 注册:2014/7/9 20:25:00
  发帖心情 Post By:2022/5/25 14:57:00 [只看该作者]

 必顶
蓝版

 回到顶部
帅哥哟,离线,有人找我吗?
hammerlucy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:44 积分:562 威望:0 精华:0 注册:2019/3/29 13:27:00
  发帖心情 Post By:2022/7/4 15:56:00 [只看该作者]

Dim s1 As String = "WECHATPAY2-SHA256-RSA2048 mchid=""" & pfxpassword & """,n & nonce_str & """,signature=""" & sign & """,timestamp=""" & timestamp & """,serial_no=""这里改为自己的证书序列号""" ‘授权验证数据
测试时跳出错误提示,signature在局部变量中声明过

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/4 16:03:00 [只看该作者]

什么错误提示?

 回到顶部
帅哥哟,离线,有人找我吗?
tianhao0817
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1284 威望:0 精华:0 注册:2020/5/16 10:30:00
  发帖心情 Post By:2022/7/4 16:31:00 [只看该作者]



[此贴子已经被作者于2022/12/12 14:24:09编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106067 积分:539428 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/4 16:43:00 [只看该作者]

serial_no后面少了一个双引号。

至于证书怎么下载,请去看微信支付的官方开发文档,有说明的

 回到顶部
总数 15 1 2 下一页