收藏
回答

在根据商户订单号查询订单,一直显示是坏请求,签名不匹配,但是我的签名检查好像没有出现问题?

private static String buildHeaderMessage(String httpMethod, String absoluteUrl, long timeStamp, String nonceStr, String body) {
//        StringBuilder sb = new StringBuilder();
//        sb.append(httpMethod).append("\n")
//                .append(absoluteUrl).append("\n")
//                .append(timeStamp).append("\n")
//                .append(nonceStr).append("\n")
//                .append(body==null ? "" : body).append("\n");
//        return sb.toString();
        String s = httpMethod + "\n" + absoluteUrl +"\n" +timeStamp +"\n" + nonceStr +"\n" + "\n";
        return s;
    }

下面是出现的错误:

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

1 个回答

  • 支付社区运营
    支付社区运营
    2024-12-25

    签名错误问题可以按照以下几点进行排查:

    1、使用签名检查工具校验签名算法是否有误

    2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)

    3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)

    4、确认参数的大小写,参数名与接口文档一致

    5、签名原串的参数值使用原始值,不需要encode

    6、接口需要使用UTF-8编码

    如果还不能解决你的问题,请前往请前往微信支付V3文档 点击右下角“技术咨询”实时寻求技术帮助。


    2024-12-25
    有用
    回复
登录 后发表内容