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

今天在做项目时, 需要用到微信支付的对账接口, 看了好多人的反馈, 加上自己的测试, 在用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;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28204.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信支付异常(“应答的微信支付签名验证失败“)记录

原因是: 配置错了“微信支付平台证书”; 如何解决: 1.下载 微信支付平台证书下载工具(Certificate Downloader)https://github.com/wechatpay-apiv3/CertificateDownloader 得到 CertificateDownloader-1.1.jar 2.执行命令 java -jar Cer…

postman-模拟上传图片

一、Chrome打开layui : 图片上传 右键打开检查,选择network,上传图片查看到: 二、postman测试 打开postman先设置post,并将url填好 : https://httpbin.org/post 选择form-data:添加key/value : key为与后台约定字段(一…

【苹果群发iMessage推送位置推】软件安装将会按照 Developer Program License Agreement

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

风辞远的科技茶屋:可怖的AI

大家好,我是脑极体的风辞远。一直以来我们都在写大块文章,很少有机会跟大家聊天。时间长了,总觉得这种方式有一点冷漠感,不够轻松,加上往往每篇文章只聚焦一个话题,而我们产能有限,就会有很多值…

千万别再乱点黄色APP了!

上一篇:文心一言员工跳槽工资翻倍,猎头:百万年薪很正常 网络诈骗千千万,涉黄APP占一半。 小伙来自山东菏泽,失手在手机上下载了非法的涉黄APP,当他准备观看视频时发现,需要充值成为会员或完成任…

如何分析系统平均负载过高?

文章目录 前言uptime命令平均负载平均负载到底是多少才合理平均负载和CPU的关系CPU与进程1比1,CPU使用率高导致负载变高I/O高,导致负载高进程数超过CPU数,导致负载高 前言 我相信你应该用过uptime命令查询系统负载的情况,或者在各…

线上负载过高排查(top/vmstat/ifstat/free/df)

目录 一、五大命令 二、故障排查步骤 1、top命令找出CPU占比最高的 2、ps -ef 或者 jps -l进一步定位 3、ps -mp位到具体线程或者代码 4、jstack精准定位到错误的地方 本文通过学习:周阳老师-尚硅谷Java大厂面试题第二季 总结的LinuxJDK命令操作相关的笔记 一…

解决Linux 负载过高问题过程记录

解决问题的思路 1.top命令查看该机器的负载状况 2.cd /proc/pid 查看对应高占用程序的位置 3.进入对应程序中查看日志,根据CPU和内存这两个因素分析 4.ps -ajxf 查看进程及其之下的线程,通过stat查看是否存在D僵尸进程 1.什么是负载过高 1.1load A…

假如ChatGPT 去面试前端工程师,结果会怎么样?

近日,有个叫 ChatGPT 的同学来我司面试前端,考考他面试八股文。先来问问闭包。 第一问,说说 JS 闭包 追问,详细讲讲闭包 由于篇幅太长,转成文字,以下皆为 ChatGPT 回答 闭包是一个非常重要的 JavaScript 概…

青椒肉丝饭

今天第一次来华德吃饭,为了吃这顿饭跑遍了半个上海。 先是去长乐路上的大铁门排挡吃自助,结果人家收摊了,估计都回家过年了吧。 然后又去新华路上的粮仓饭湘,结果人满为患,连个站的地方都没有。 最后回到北新泾这里…

五花青椒包菜

[猪头]每次做完菜,第一口一定要找块好肉尝尝。肉好吃😋,这道菜就差不了,下饭。 ​[调皮]肉不好吃的菜,没有灵魂。 ​[愉快]今天的菜,五花肉青椒土豆包菜。

青椒肉丝

青椒肉丝 材料 15元的肉丝 一根葱 两个辣椒 生粉,盐,油 步骤 1.开煤气,将锅烧热,小火炖下肥肉得到猪油,将残渣捞出 2.切好的肉丝撒上生粉,摔摔肉,弄匀 3.倒入油(满锅底&#xff…

java设计模式之一(工厂模式)

何为工厂模式? 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑&#xff…

Java 设计模式之迭代器模式

一、了解迭代器模式 1.1 什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 迭代器模式把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也可以让责任各得其所。 …

【菜谱】青椒肉丝

【菜谱】青椒肉丝 食材配料步骤准备工作开始制作 成果展示 下周一上班,今天回家收拾东西。虽然是个程序员,但是也想炒一手好菜,就先在家里练习了,意外的发现还不错! 食材 猪里脊肉 175g (老妈就给我拿了这…

Java设计模式实现烹饪助手程序

Java设计模式实现烹饪助手程序 一. 程序设计目标和使用说明 1、程序设计目标 该程序在eclipse4.6.3版本中完成,用的是jdk1.7。     该程序的设计目的是为了学习java设计模式,应用其中的几个模式编写一个程序,在编写程序的过…

博士毕业,高校青椒还是30万年薪私企?

来源 | 知乎 网址 | https://www.zhihu.com/question/58594731 编辑 | 深度学习与计算机视觉 声明:仅做学术分享,侵删 年龄不占优势,高校稳定,企业收入高,如何选择? 作者:光子https://www.zhihu…

java设计模式-迭代器模式

java设计模式-迭代器模式 一、了解迭代器模式 1.1 什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 迭代器模式把游走的任务放在迭代器上,而不是聚合上。这样简化了聚合的接口和实现,也…

3D设计云桌面

青椒云3D设计桌面云方案,为使用GPU高负载应用的设计师们提供强大支持,如3D建模、光线追踪、渲染计算等领域,带来极致流畅的3D设计桌面体验,同时提升工作效率、可管理性和安全性。3D设计桌面云方案满足了工业客户在专业设计场景中的以下需求 1、强大的图形计算引擎保证专业…

设计模式-建造者模式

设计模式-建造者模式 传统模式类JDK8的Builder 别名:创建者模式 建造者模式针对复杂对象,分离它们的构建与表示,达到同样构建过程创建不同表示的目的。 建造者模式封装了复杂对象的构建过程,通过子类继承或者重载的方式&#xff0…