收藏
回答

小程序支付,第一次返回了prepay_id,结果应答的微信支付签名验证失败,再次提交订单订单号重?

private CloseableHttpResponse executeWithSignature(HttpRoute route, HttpRequestWrapper request,
                                                   HttpClientContext context, HttpExecutionAware execAware) throws IOException, HttpException {
  // 上传类不需要消耗两次故不做转换
  if (!(request.getOriginal() instanceof WechatPayUploadHttpPost)) {
    convertToRepeatableRequestEntity(request);
  }
  // 添加认证信息
  request.addHeader("Authorization",
      credentials.getSchema() + " " + credentials.getToken(request));

  // 执行
  CloseableHttpResponse response = mainExec.execute(route, request, context, execAware);

  // 对成功应答验签
  StatusLine statusLine = response.getStatusLine();
  if (statusLine.getStatusCode() >= 200 && statusLine.getStatusCode() < 300) {
    convertToRepeatableResponseEntity(response);
    if (!validator.validate(response)) {
      throw new HttpException("应答的微信支付签名验证失败");
    }
  }
  return response;
}
抛出:应答的微信支付签名验证失败,{"prepay_id":"wx23172422680548bac3a6955a0104660000"}已返回,但在提交提示订单重复
最后一次编辑于  2021-09-23
回答关注问题邀请回答
收藏

2 个回答

  • Memory
    Memory
    2021-09-23

    商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|* 且在同一个商户号下唯一,同一笔交易不能多次提交,换个商户订单号请求就可以了

    微信支付API v3使用微信支付 的平台私钥(不是商户私钥 )进行应答签名,检查你使用的证书是不是正确

    2021-09-23
    有用 1
    回复
  • 枫
    2022-05-31

    您好,这个工具类怎么用呢?

    2022-05-31
    有用
    回复
登录 后发表内容