今天在做项目时, 需要用到微信支付的对账接口, 看了好多人的反馈, 加上自己的测试, 在用API V3生成了Sign后,对download_url进行Get请求访问时, 依然会出现问题, 就是Nginx报错400 Bad Request
看了好多人的文章, 基本上都是用的调用sdk生成的httpClient再次进行调用, 如下图

经过测试后发现, 如果是使用普通的httpClient进行访问, 比如hutool的HttpUtil进行访问header中加上Authorization参数的话, 就可以正常访问到对账单了,详细例子如下

另附微信支付API V3版本 获取签名的方法

 public String getToken(String method, HttpUrl url, String body) {Long timestamp = System.currentTimeMillis() / 1000;String nonceStr = UUID.randomUUID().toString().replace("-", "");String message = buildMessage(method, url, timestamp, nonceStr, body);String signature = message;try {signature = sign(message.getBytes("utf-8"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}// 商户号return "mchid=\"" + WechatPayConfig.MCH_ID + "\","+ "timestamp=\"" + timestamp + "\","+ "nonce_str=\"" + nonceStr + "\","//商户证书序列号+ "serial_no=\"" + WechatPayConfig.MCH_SERIAL_NO + "\","+ "signature=\"" + signature + "\"";}public String sign(byte[] message) {try {Signature sign = Signature.getInstance("SHA256withRSA");//私钥文件地址sign.initSign(PemUtil.loadPrivateKey(new FileInputStream(privateKeyPath)));sign.update(message);return Base64.getEncoder().encodeToString(sign.sign());} catch (SignatureException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (InvalidKeyException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();}return null;}

微信支付下载对账单400Bad Request问题解决方式相关推荐

  1. 微信支付转账到银行卡 加密问题解决方法

    @[TOC]微信支付转账到银行卡 加密问题解决方法 java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastle ...

  2. php微信商户下载对账单,浅析微信支付:下载对账单和资金账单

    本文是[浅析微信支付]系列文章的第九篇,主要讲解商户下载对账单接口和资金账单接口的实现和一些注意事项. 浅析微信支付系列已经更新九篇了哟-,没有看过的朋友们可以看一下哦. 在商户平台中,商家也可以下载 ...

  3. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...

  4. 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...

  5. 微信接口java解密_java使用AES-256-ECB(PKCS7Padding)解密——微信支付退款通知接口指定解密方式...

    1.场景 在做微信支付退款通知接口时,微信对通知的内容做了加密,并且指定用 AES256 解密,官方指定的解密方式如下: 2.导包 org.bouncycastle bcprov-jdk15on 1. ...

  6. java下载微信支付账单_java微信支付,对账单下载

    2020年1月9日17:22:41 官方文档和sdk https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 官方也是也有一个0.0 ...

  7. 微信对账单 java_微信支付对账,你是如何处理的?

    支付对账,即检查第三方支付与数据库中账单是否一一对应,涉及到微信对账单的处理,成功时,微信账单接口返回数据以文本表格的方式返回,第一行为表头,后面各行为对应的字段内容,字段内容跟查询订单或退款结果一致 ...

  8. 微信支付开发流程_清晰_易懂_有源码

    转自 https://blog.csdn.net/weixin_41497737/article/details/80547243 最近因为公司需求开始开始做微信支付的开发,在网上参考来了很多文章,大 ...

  9. 尚医通 (三十六) --------- 微信支付

    目录 一.微信支付介绍 二.微信支付开发 1. api 接口 2. 前端 3. 处理支付结果 三.取消预约 1. 需求描述 2. 开发微信退款接口 3. 前端 一.微信支付介绍 A.微信扫码支付申请 ...

最新文章

  1. Java中使用Jedis操作Redis
  2. pycharm支持python3.8_PyCharm 2019.2 发布,Python 3.8功能的支持
  3. Win7 Tensorflow 安装
  4. Nginx服务的命令行控制
  5. Tomcat输出catalina.out的大小控制
  6. 检查 Linux 服务器性能
  7. poj3061 尺取法 挑战程序设计竞赛
  8. CI/CD——适合你吗?
  9. 【Python3】待解决的疑问
  10. expdp导出表结构_Oracle用exp导出部分表和expdp
  11. RemoteDesktopManager和微软远程桌面管理器RDCman
  12. 大一java实训报告1500字_java实训报告两篇
  13. matlab单项pwm整流电流内环pr控制仿真,基于PR的单相PWM整流器电流控制研究
  14. 伺服舵机基础知识汇总
  15. 计算机乘法函数公式word,Word表格怎么用公式乘法
  16. 第8章——DMA控制器
  17. Win11系统Windows.old怎么删?Windows.old删不了怎么办?
  18. Java中static、this、super、final用法
  19. 苹果手机如何换行打字_苹果手机备忘录如何导入到新手机?备忘录误删如何恢复?...
  20. hadoop集群基本配置

热门文章

  1. Winsdows黑客技术入门---简介
  2. vue-element-admin手把手搭建后台系统03
  3. w ndows系统开机时黑屏,win7旗舰版系统开机后黑屏的解决方法【图】
  4. 统计代码php,求简易php流量统计代码?
  5. 健康知识-健康四大基石(维多利亚宣言)
  6. 解决AD16元件焊盘间距报错 Clearance Constraint Between Pad
  7. 非常全的javascript控制MediaPlayer的属性集合与realplayer对象使用
  8. 初次学习ligerui
  9. anaconda无法打开显示there is an instance of anaconda navigator already running ——如何解决
  10. requestLayout()和invalidate()的区别