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)