收藏
回答

V3版本调用v3/certificates,一直报401验签失败,加签是按照文档来的

加签代码:

生成Authorization: protected static string GetAuthorization(string url, string method, string jsonParame, string privateKey, string merchantId, string serialNo)

 {

     var uri = new Uri(url);

     string urlPath = uri.PathAndQuery;

     string nonce = Guid.NewGuid().ToString();

     var timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();

     //数据签名     HTTP请求方法\n接口地址的url\n请求时间戳\n请求随机串\n请求报文主体\n

     method = string.IsNullOrEmpty(method) ? "" : method;

     string message = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n", method, urlPath, timestamp, nonce, jsonParame);

     string signTxt = Sign(message, privateKey);


     //Authorization和格式

     string authorzationTxt = string.Format("WECHATPAY2-SHA256-RSA2048 mchid=\"{0}\",nonce_str=\"{1}\",timestamp=\"{2}\",serial_no=\"{3}\",signature=\"{4}\"",

         merchantId,

         nonce,

         timestamp,

         serialNo,

         signTxt

         );

     return authorzationTxt;

 }

不明白是哪里有问题,一直无法加签成功,我用生成的字符串 去证书工具加签验签,一直加签通过。GET\n/v3/certificates\n1720320424\n32581d11-7e42-4711-aa03-0ed7c08494aa\n\n,使用商户API证书密钥时我也去掉了开头和结尾以及\n和\r也显示验签失败。

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容