收藏
回答

商家支付到零钱问题,提示http status = 401 UNAUTHORIZED?

问题描述:调用商家支付到零钱接口,总是提示 http status = 401 UNAUTHORIZED

我们商家这边,现在使用的是 api v2 key , 同时也申请了 api v3 key,一直使用商家支付证书是 apiclient_cert.p12

已经从 apiclient_cert.p12 中通过命令行提取出 证书私钥 文件 rsa_private_pkcs8.pem

商家支付到零钱接口地址: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_1.shtml

按文档上的参数要求,生成签名字符串,以下代码

使用证书私钥 rsa_private_pkcs8.pem 生成 privateKey对象,并base64生成加密后的签名字符串,代码如下:

代码写法,来源于接口文档

按文档上的要求,生成 auth字符串,代码如下

代码原型,来源于在线文档,其中mchMPId 是商家号,servicelNo是商

按文档上的要求,生成head头里的 authorization ,代码如下

开始调用商家支付到零钱接口,采用restTemplae调用方式,代码如下

总是提示,http status = 401 UNAUTHORIZED

使用postman,导入技术客服给的postman 脚本,测试私钥的正确性,也是没有问题的,如下图

使用postman ,直接调用商家支付到零钱,还是提示http status = 401 UNAUTHORIZED

跟技术客服沟通了一个星期了,也找不出问题来,

以前那个个【企业支付到零钱接口】,一直用得很好,最近得知,这个接口取消掉了,改成了现在的 【商家支付到零钱的接口】,说是 api v3接口,还专门去申请了一个api v3 key,但我从接口文档中发现, 这个api v3 key一直没有用上,

从私钥文件,生成出来的 private Key代码,是技术客服人员提供的一个专门jar包,maven配置如下

<dependency>

<groupId>com.github.wechatpay-apiv3</groupId>

<artifactId>wechatpay-apache-httpclient</artifactId>

<version>0.4.8</version>

</dependency>


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

2 个回答

  • jimmy
    jimmy
    2023-04-28

    你好,请问解决了吗?

    我也遇到一样的问题,死活都是返回401

    2023-04-28
    有用
    回复
  • 豆豆
    豆豆
    2022-11-04

    这个版本,比我引用的还要低。


    重点不在这里,

    重点是,我想知道问题在哪里?


    为什么我按文档上所做的,最后是这样的错误的结果

    2022-11-04
    有用
    回复
登录 后发表内容