文章目录

  • 1. 回调失败问题(沙箱环境)
  • 2. 解决方案
  • 3. 退款回调的解密代码

1. 回调失败问题(沙箱环境)

问题始末: 最近再弄微信退款回调发现设置的回调的url根本就没有被调用,但是微信支付的回调是成功的.
于是开始做各种尝试 1. 代码没问题 2. 防火墙并没有限制微信IP的访问
网上有的说微信退款回调被取消了,这真的是误人子弟...
微信的官方以及公众号都写得是沙箱环境的退款是可以用的,但是都没说在沙箱环境下退款回调的url不起作用,毕竟沙箱环境下支付成功的回调是成功的
再此真的想吐槽下微信官方,希望能把这个说明加到官方文档上,省的好多童鞋做无用功

2. 解决方案

将微信支付切换到生产环境,支付成功一笔再退款就会发现退款的回调已经成功执行了

3. 退款回调的解密代码

在此放上微信回调的解密代码(python版),防止在生产环境下的key还没申请下来的童鞋的调试
微信退款回调的内容都是放在body中的, 我们假设现在已经获取到了body中的内容

def md5_trans(decode_str):"""md5加密"""return hashlib.md5(decode_str.encode("utf-8")).hexdigest()def aes_ecb_pkcs7(body, key):"""AES-ECB模式解密PKCS7Padding"""unpad = lambda s: s[:-ord(s[len(s) - 1:])]cipher = AES.new(key, AES.MODE_ECB)return unpad(cipher.decrypt(body)).decode('utf8')def base64_decode(body):"""base64解码"""return base64.b64decode(body)def decode_refund_response(body, key):"""微信服务器通知退款通知结果的时候使用,解密加密字符串"""# 一: 进行base64解码body = base64_decode(body)# 二: key做md5,得到32位小写key*key = md5_trans(key)# 三: key*对加密串B做AES-256-ECB解密(PKCS7Padding)info = aes_ecb_pkcs7(body, key)return info

微信支付退款回调踩坑及解决方案(附解密代码)相关推荐

  1. 【原创】微信支付遇到的各种坑及解决方案随笔记录,invalid signature, “errMsg“:“chooseWXPay:fail“

    [原创]微信支付遇到的各种坑及解决方案随笔记录,invalid signature, "errMsg":"chooseWXPay:fail" 参考文章: (1) ...

  2. 微信支付退款回调处理 php

    //退款回调xml $xml = '<xml><return_code>SUCCESS</return_code><appid><![CDATA[ ...

  3. (微信支付签名失败)微信支付v2版本踩坑-二次签名不同类型签名参数key不同

    小伙伴们在做微信支付对接的时候会遇到各种各样的坑,特别是微信支付v2版本,微信支付的二次签名官方文档没有给出明显的签名参数,导致在开发中很容易碰到微信支付的这个坑(微信支付签名失败),app签名key ...

  4. 微信支付遇到的各种坑及解决方案

    按照官方文档配置 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 微信支付需要得到以下字段 /** 商家向财付通申请的商家 ...

  5. 微信支付的回调函数实现验签以及解密

    当我使用的微信的依赖版本大于0.4.2的时候,就可以使用一下方法进行验签和解密 现在我是用的版本是0.4.8 <dependency><groupId>com.github.w ...

  6. java 微信转账 ca_error_java,微信支付退款_微信支付退款接口调用证书出现错误,java,微信支付退款,ssl - phpStudy...

    微信支付退款接口调用证书出现错误 PS:代码是copy腾讯提供的demo,但运行有问题,望大拿能够帮忙解决 加载证书时间出现如下错误: java.io.IOException: DER input, ...

  7. php接入微信支付,扫码支付和H5支付(非微信浏览器),基于thinkPHP框架 WeChatDeveloper支付类包 踩坑指南

    此文章入选<PHP领域内容榜>第4名 文章介绍 本文主要介绍通过thinkPHP5和第三方支付类包(WeChatDeveloper)实现快速接入微信扫码支付和微信H5手机网站支付(非微信浏 ...

  8. 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录

    需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分离模式(vue工程仅作为客户端),用户通过域名访问的是客户端,但是微信授权中 ...

  9. vue在微信里面的兼容问题_详解Vue微信公众号开发踩坑全记录

    本文介绍了Vue微信公众号开发踩坑全记录,分享给大家,也给自己留个笔记. 需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分 ...

最新文章

  1. python数据可视化利用_利用pyecharts实现python数据可视化
  2. 有助于改善性能的技巧(1)
  3. HDOJ 1905 Pseudoprime numbers(模运算)
  4. 改动Androidproject的名称(非Eclipse重命名)
  5. 台式计算机由哪些硬件组成,台式电脑硬件是由哪些组成的 - 卡饭网
  6. 利用SQL Server 2005特性删除表中重复数据
  7. 实心和空心哪个抗弯能力强_为什么轮胎不设计成实心的?不怕爆胎 480阅读
  8. Python实现好友信息管理系统 添加、删除、修改、备注、查询好友信息
  9. HTML+CSS大学生个人网站作业模板~黑色的html5个人博客网站模板整站下载
  10. Vue看板娘教程详细版
  11. asp.net配置web.config发电子邮件详解
  12. metro样式开机启动菜单_如何在Windows 8中获取Metro风格的开始菜单和开始按钮
  13. JDK的多版本安装 及 切换
  14. 信息系统分析与设计-信息、管理与信息系统
  15. Android Binder设计与实现 - 设计篇
  16. Ionic开发入门教程_3
  17. 机器学习实践系列之13 - OpenCV之图像去雾
  18. 计网——17差错检测和纠正技术
  19. akka学习教程(十四) akka分布式实战
  20. 删除win7右键菜单intel的图形属性和图形选项

热门文章

  1. html签到表格,签到问题_html/css_WEB-ITnose
  2. 计算机辅助教育相关论文,小学计算机辅助教学的相关论文
  3. 服装设计师必备的时尚资讯网站
  4. 新版BIOS设置U盘启动
  5. layer弹出层示例
  6. core sync是什么软件_怎么不下载别的软件删掉adobe cc里的coresync_x64.dll?
  7. 【注意】js 里面 removeChild 使用的坑
  8. Java 对象转JSON串首字母变成小写的问题
  9. Nacos注册中心AP架构剖析流程图
  10. c# 序列化 简单试验 soap