收藏
回答

微信支付签名401错误,c++接入openssl

自己代码签名后,base64编码后的结果如下:

HZcEQFWXZGZN1gfLW6yflO/waSfAccLNzgVeS8lr9EED7tz+u6/OjmjELoXakrfR84hKMdJOutGmBtC/l5SA4g1KF+dis760Rh5fokrlggq2bTYPrXscV54JzeEoCEqqbThLJMCNhL18Iy5n1WnljY3SDAF9jqHGRVzKj3MKjst4322S0LOuUSlhExIrfb89/Qciky3+Yr2Hv/fsVegXLzkMQbk1SIHbCI6tm5idfbdZ/KfyPbcsUwMHXQoWPLQOz86qC/ZP7QyQqqkIkJKBf9wAf1boDaQgwv2kvT44nQXYM00EyFT25Mqwf+O3jchUyj/IIRe5WYqxXG9wwUmU5w==

Request-ID: 08FCA4A0840610AD01188EAEC05520BD312881FE02-269546525

我的c++签名代码如图:

base64代码如图:

问题:我不知道那里导致的结果不一致,是算法类型写错了?

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

2 个回答

  • 北望沣渭
    北望沣渭
    2021-04-29

    从你截屏的部分代码来看,可能的原因是timestamp的问题,你的是1554208460开头的,现在的epoch timestamp在 161开头,微信支付服务端一个有一个正负300秒的偏移量,超过这个偏移量就会被拒绝(即401),你可以试试把时间戳调整一下再看看。

    2021-04-29
    有用
    回复 33
    • 恰恰
      恰恰
      2021-04-29
      大神,你好,我改成当前时间戳也不行哦。
      2021-04-29
      回复
    • 恰恰
      恰恰
      2021-04-29
      2021-04-29
      回复
    • 恰恰
      恰恰
      2021-04-29
      是小程序没有上线,调用接口无效?
      2021-04-29
      回复
    • 北望沣渭
      北望沣渭
      2021-04-29回复恰恰
      你调用的这个接口,跟小程序没有关系,验签工具通过说明签名应该没有问题了,服务端401还有俩条件,你再排查下:
      2021-04-29
      回复
    • 北望沣渭
      北望沣渭
      2021-04-29
      你的curl上,应该再加上 -H 'Accept: application/json' -H 'Content-Type: application/json'
      2021-04-29
      回复
    查看更多(28)
  • 恰恰
    恰恰
    2021-04-27

    测试用的消息摘要如下:

    GET\n/v3/certificates\n1554208460\n593BEC0C930BF1AFEB40B4A08C8FB242\n\n

    2021-04-27
    有用
    回复
登录 后发表内容