微信支付退款回调踩坑及解决方案(附解密代码)
文章目录
- 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
微信支付退款回调踩坑及解决方案(附解密代码)相关推荐
- 【原创】微信支付遇到的各种坑及解决方案随笔记录,invalid signature, “errMsg“:“chooseWXPay:fail“
[原创]微信支付遇到的各种坑及解决方案随笔记录,invalid signature, "errMsg":"chooseWXPay:fail" 参考文章: (1) ...
- 微信支付退款回调处理 php
//退款回调xml $xml = '<xml><return_code>SUCCESS</return_code><appid><![CDATA[ ...
- (微信支付签名失败)微信支付v2版本踩坑-二次签名不同类型签名参数key不同
小伙伴们在做微信支付对接的时候会遇到各种各样的坑,特别是微信支付v2版本,微信支付的二次签名官方文档没有给出明显的签名参数,导致在开发中很容易碰到微信支付的这个坑(微信支付签名失败),app签名key ...
- 微信支付遇到的各种坑及解决方案
按照官方文档配置 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1 微信支付需要得到以下字段 /** 商家向财付通申请的商家 ...
- 微信支付的回调函数实现验签以及解密
当我使用的微信的依赖版本大于0.4.2的时候,就可以使用一下方法进行验签和解密 现在我是用的版本是0.4.8 <dependency><groupId>com.github.w ...
- java 微信转账 ca_error_java,微信支付退款_微信支付退款接口调用证书出现错误,java,微信支付退款,ssl - phpStudy...
微信支付退款接口调用证书出现错误 PS:代码是copy腾讯提供的demo,但运行有问题,望大拿能够帮忙解决 加载证书时间出现如下错误: java.io.IOException: DER input, ...
- php接入微信支付,扫码支付和H5支付(非微信浏览器),基于thinkPHP框架 WeChatDeveloper支付类包 踩坑指南
此文章入选<PHP领域内容榜>第4名 文章介绍 本文主要介绍通过thinkPHP5和第三方支付类包(WeChatDeveloper)实现快速接入微信扫码支付和微信H5手机网站支付(非微信浏 ...
- 微信vue路由跳转兼容_Vue微信公众号开发踩坑记录
需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分离模式(vue工程仅作为客户端),用户通过域名访问的是客户端,但是微信授权中 ...
- vue在微信里面的兼容问题_详解Vue微信公众号开发踩坑全记录
本文介绍了Vue微信公众号开发踩坑全记录,分享给大家,也给自己留个笔记. 需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架,前后端分 ...
最新文章
- python数据可视化利用_利用pyecharts实现python数据可视化
- 有助于改善性能的技巧(1)
- HDOJ 1905 Pseudoprime numbers(模运算)
- 改动Androidproject的名称(非Eclipse重命名)
- 台式计算机由哪些硬件组成,台式电脑硬件是由哪些组成的 - 卡饭网
- 利用SQL Server 2005特性删除表中重复数据
- 实心和空心哪个抗弯能力强_为什么轮胎不设计成实心的?不怕爆胎 480阅读
- Python实现好友信息管理系统 添加、删除、修改、备注、查询好友信息
- HTML+CSS大学生个人网站作业模板~黑色的html5个人博客网站模板整站下载
- Vue看板娘教程详细版
- asp.net配置web.config发电子邮件详解
- metro样式开机启动菜单_如何在Windows 8中获取Metro风格的开始菜单和开始按钮
- JDK的多版本安装 及 切换
- 信息系统分析与设计-信息、管理与信息系统
- Android Binder设计与实现 - 设计篇
- Ionic开发入门教程_3
- 机器学习实践系列之13 - OpenCV之图像去雾
- 计网——17差错检测和纠正技术
- akka学习教程(十四) akka分布式实战
- 删除win7右键菜单intel的图形属性和图形选项