收藏
回答

签名问题,一直找不到微信技术人员,谁来搭理一下?

技术您好,我在调试“获取微信支付平台证书”接口,返回一直是:远程服务器返回错误: (401) 未经授权,我正在排查签名问题,我服务器是Windows server 2019,请问怎么安装商户API证书?官方文档说是可以直接双击安装,有人说是需要MMC控制台导入,这些我都试过了,请问究竟怎么安装才对?我就一个商户号,生怕API证书有错,前后生成了3个证书,都在服务器上双击了,也导入了。文档看了几百次也看糊涂了,好像又说是安装后要“设置”?请问需要设置吗?怎么设置

官方文档中说请求签名串为5行:

GET\n

/v3/certificates\n

1554208460\n

593BEC0C930BF1AFEB40B4A08C8FB242\n

\n

我纠结的是,在后台签名请求中也需要加“\n”这个字符吗?因为我只会用Vb.net,我加了有错,去掉也有错,Vb.net中表示换行的所有符号都试了个遍还是有错!


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

2 个回答

  • 蒹葭
    蒹葭
    2023-12-20

    参考一下这个:http://t.csdnimg.cn/KhWUx

    1,证书在服务器上双击安装即可,会提示你输入密码,安装完成会有提示;

    2,先保证签名正确;

    3,提交内容需要放置到httpclient的请求头

    PS:能返回签名串,不代表签名一定正确,最好用官方的验签工具校验一下

    2023-12-20
    有用
    回复 1
    • 赢
      2023-12-21
      谢谢您的指点,签名方面已经解决了。我用的是VB.Net,走了很多弯路,最后发现是签名串结尾不能照搬用“\n”
      2023-12-21
      回复
  • 雨星星
    雨星星
    2023-12-19

    你这个是放在请求头的吧 Authorization

    2023-12-19
    有用
    回复 49
    • 赢
      2023-12-19
      谢谢你的答复。我知道签名结果最终是要放在请求头Authorization中的。现在我的疑问是,这个签名串中的“\n”,不管用户用的任何语言都要用这个“\n”吗?我用的是VB.NET,我使用了该语言的所有、所有、所有表示“换行”“回车”的各种表达式,当然也使用了“\n”,结果都是返回401错误。我问这个问题只是在排查我的401错误是不是和这个“\n”的用法有关
      2023-12-19
      回复
    • 雨星星
      雨星星
      2023-12-19回复
      \n是换行符号 只要在vb也是那就没错
      2023-12-19
      回复
    • 雨星星
      雨星星
      2023-12-19回复
      微信的返回结果你确定是这样的? :远程服务器返回错误: (401) 未经授权
      2023-12-19
      回复
    • 赢
      2023-12-19
      我不知道你说的“\n是换行符号 只要在vb也是那就没错”是什么意思。可能你还是没听懂我的问题。我的意思是,并不是所有语言的换行符都能用\n表示吧。以下是我在VB.net(VS 2019环境中)的代码(见下图)。因为VB.net的换行不是\n,我用了VB.net语言的所有表示回车、换行的表达式,也用过\n,结果都是401错误
      2023-12-19
      回复
    • 赢
      2023-12-19
      上面的签名过程可以返回结果,是很长的一串字符串,但只能说明签名的方式是正确的,代码是没错的。但不能保证参数是正确的,你知道,只要代码正确,即使把请求串参数设置为“中华人民共和国”七个汉字,也能返回一串结果。但在后续的“请求(我在测试“下载平台证书列表”)”结果是:
      2023-12-19
      回复
    查看更多(44)
登录 后发表内容