最近对接微信认证,使用到了wechatpay api v3

相较于之前微信支付API,主要区别是:

  • 遵循统一的Restful的设计风格
  • 使用JSON作为数据交互的格式,不再使用XML
  • 使用基于非对称密钥的SHA256-RSA的数字签名算法,不再使用MD5或HMAC-SHA256
  • 涉及资金回滚的接口,不再要求HTTPS客户端证书
  • 使用AES-256-GCM,对回调中的关键信息进行加密保护

坑1.请求报400

  • 解决办法:仔细看微信的文档,即使是业务错误也会返回400:bad request
    使用restTemplate发起的请求,捕获RestClientResponseException打印responseBody即可看到具体错误原因

坑2.提示缺少平台证书序列号

  • 这个提示让我一直在找head里的Authorization里面的serial_no,实际是不对的,因为设计敏感字段加密,所以需要在head里面设置Wechatpay-Serial
  • 关于Wechatpay-Serial:声明加密使用的平台证书
    某些情况下,微信支付会更新平台证书。这时,商户有多个微信支付平台证书可以用于加密。为了保证解密顺利,商户发起请求的HTTP头部中应包括证书序列号,以声明加密所用的密钥对和证书。
    商户上送敏感信息时使用微信支付平台公钥加密,证书序列号包含在请求HTTP头部的Wechatpay-Serial

坑3:上传图片

  • 上传图片一直返回失败详情看另外一篇博文

微信API v3踏坑记录相关推荐

  1. 微信支付v3版本对接记录

    微信支付v3版本对接记录 1.申请公众号和商户号 2.配置商户API_V3_key和商户证书 3.导入依赖 4.构建调用接口httpclient 5.调用jsapi下单示例 6.签名解释 7.回调示例 ...

  2. node 对接微信支付的踩坑记录(服务端)

    因项目需要,对接了微信支付,微信支付对于网页来说没有什么工作量,申请了商户号后,直接将收款码放到网页上就可以,但是小程序需要调起微信支付直接付款,于是认真翻阅了官网要针对小程序做微信支付的对接. 准备 ...

  3. 微信小游戏踩坑记录(二)

    2019独角兽企业重金招聘Python工程师标准>>> 微信视频组件 这次是关于视频组件的,creator的视频组件在小游戏中是没有用的,只能使用小游戏自带的组件.使用小游戏Vide ...

  4. Cocos Creator 微信小游戏 填坑记录

    环境:(ccc-v1.9.1, wx-v1.02.1804251) 微信小游戏禁止了动态生成并执行代码的功能,window.eval(). new Function() ,这些都不能用了. 微信小游戏 ...

  5. 微信小程序踩坑记录 ------- canvas 生成带小程序码的微信朋友圈分享图

    最近做了一个问卷类的小程序,其中的结果页想让用户进行朋友圈分享转发,网上搜索资料,得出解决思路,用 canvas 将页面绘制生成图片,然后保存到手机相册,最终效果如下: 在这里我只写页面里关于 can ...

  6. 2022微信支付V3避坑指南-paySign签名

    新版的微信SDK直接通过maven引用 <dependency><groupId>com.github.wechatpay-apiv3</groupId><a ...

  7. 微信开放标签踩坑记录

    先上微信官方文档 微信文档 以下要注意的点: 微信版本要求为:7.0.12及以上. 系统版本要求为:iOS 10.3及以上.Android 5.0及以上. 微信sdk版本需要在1.6.0以上,版本过低 ...

  8. 腾讯云IM服务端API集成踩坑记录(一)账号管理调试

    1.新增用户要注意大小写: 2.除体验版外,其他版本都无法删除账号: 3.连接失败问题报错,需要增加pom依赖 问题截取:Caused by: java.lang.NoSuchMethodError: ...

  9. Java中的微信支付(2):API V3 微信平台证书的获取与刷新

    1. 前言 在Java 中的微信支付(1):API V3 版本签名详解一文中胖哥讲解了微信支付 V3 版本 API 的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API 证书对参数 ...

最新文章

  1. caffeImagenet相关
  2. PyInstaller库的安装、使用
  3. C#只用属性来解决兔子,不用方法和循环
  4. case when then else_每天一个常用MySQL函数-[case_when_then_end]
  5. LeetCode(908)——最小差值 I(JavaScript)
  6. Thinkphp学习笔记——友情链接的添加和验证
  7. 2022java面试总结
  8. Unity资源加载简析(二)AssetsBundle
  9. QMH、AMC和STM之间的关系
  10. 天马行空的刷脸支付方式将是未来
  11. 网络编程三剑客之sed
  12. 无限城app为什么服务器繁忙,无限城决战中上弦鬼为何一点忙都帮不上?无惨:全是混子...
  13. excel表格生成图片的方式
  14. 嘉和生物药业(开曼)控股有限公司于香港联交所主板成功上市
  15. 办公技巧:常用的100个Word快捷键
  16. Python全量字段校验
  17. 【Zynq UltraScale+ MPSoC解密学习4】Zynq UltraScale+的APU
  18. Docker -- Harbor介绍
  19. vue使用腾讯地图(拾取坐标)
  20. 一段php代码,求一段php代码

热门文章

  1. 【日常实用篇】解决罗技蓝牙键盘start键alt键功能互换了的问题
  2. iPhone开机键坏了如何开机
  3. 中宏涌晟适合工薪族的五种个人投资理财方式
  4. AndroidStudio制作欢迎界面与应用图标
  5. 使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【十一】部署前的准备 3
  6. BZOJ 4197 NOI 2015 寿司晚宴
  7. Pipeline aggregations管道聚合-Sibling-1
  8. SVG入门-嵌入XML和转Base64
  9. 对抗生成网络GAN系列——GAN原理及手写数字生成小案例
  10. 九联_UNT400G_S905L2_(联通)_线刷固件包