Skip to content

initApiV3HttpClient() 方法中对privateKeyString处理会导致异常 #3443

@jackytse

Description

@jackytse

提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,尤其是常见问题部分。完成内容后,请务必移除包括本句在内的无用内容,以免影响阅读,否则直接关闭,谢谢合作~

另外如果确认属于bug,而且已明确如何修复,请参考贡献指南直接提交PR,省的浪费时间在这里描述问题,非常感谢配合

简要描述

执行查询投诉单列表(complaintsService.queryComplaints())的方法时会出现异常

模块版本情况

  • WxJava 模块名: weixin-java-pay
  • WxJava 版本号:4.6.9.B

详细描述

以下两段代码来自WxPayConfig.java 文件的第298行~305行,出现异常的代码正是来自这里。

if (StringUtils.isNotBlank(this.getPrivateKeyString())) {
    this.setPrivateKeyString(Base64.getEncoder().encodeToString(this.getPrivateKeyString().getBytes()));
} 
try (InputStream keyInputStream = this.loadConfigInputStream(this.getPrivateKeyString(), this.getPrivateKeyPath(),
    this.privateKeyContent, "privateKeyPath")) {
    merchantPrivateKey = PemUtils.loadPrivateKey(keyInputStream);
}

我在config中配置了privateKeyString 和证书序列号,未配置证书路径,在执行查询投诉单列表(complaintsService.queryComplaints())的方法时会出现异常(WxRuntimeException("无效的密钥格式")),我在测试中发现绕过代码片段一部分,直接执行代码片段二部分,能成功执行并正常查询到数据,我不清楚代码片段一的用意,不敢随意提交merge,请帮忙排查一下这个问题是否是一个BUG?

日志

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions