微信小程序(微信支付回调函数)
/*** 微信支付回调函数** @param body* @param request* @return 所有逻辑完成, 返回true, 完成支付, 并将订单状态改变*/@Override@Transactionalpublic boolean wxpayNotify(Map body, HttpServletRequest request) {try {//从消息头获取微信支付回调的获取签名信息String timestamp = request.getHeader("Wechatpay-Timestamp");String nonce = request.getHeader("Wechatpay-Nonce");//从消息头获取应答签名String sign = request.getHeader("Wechatpay-Signature");//从消息头获取平台对应的证书String serialNo = request.getHeader("Wechatpay-Serial");//解析报文体ObjectMapper objectMapper = new ObjectMapper();String data = objectMapper.writeValueAsString(body);String message = timestamp + "\n" + nonce + "\n" + data + "\n";//判断微信平台证书公钥与初始化时取得的是否相同if (!WxpayStaticParameter.certificateMap.containsKey(serialNo))WxpayStaticParameter.certificateMap = WechatPayUtils.refreshCertificate();//获取微信平台证书公钥X509Certificate x509Certificate = WxpayStaticParameter.certificateMap.get(serialNo);//验签(使用获取的微信平台公匙和应答签名以及)if (!WechatPayUtils.verify(x509Certificate, message.getBytes(), sign))throw new IllegalArgumentException("微信支付签名验证失败:" + message);Map<String, String> resource = (Map) body.get("resource");AesUtil aesUtil = new AesUtil(WxpayStaticParameter.v3Key.getBytes());//获取解密后的jsonString resourceDataToString = aesUtil.decryptToString(resource.get("associated_data").getBytes(),resource.get("nonce").getBytes(),resource.get("ciphertext"));//将json转换成mapMap<String, Object> resourceData = objectMapper.readValue(resourceDataToString, Map.class);//获取支付的交易单号String orderNo = resourceData.get("out_trade_no").toString();//支付状态的判断 如果是success就代表支付成功if ("SUCCESS".equals(resourceData.get("trade_state"))) {//业务逻辑return true;} else {return false;}} catch (Exception e) {e.printStackTrace();}return false;}
微信小程序(微信支付回调函数)相关推荐
- 微信小程序微信支付《JSAPI支付》APIV3详细教程
文章目录 前提 整体介绍 我的maven依赖 1.整体流程 2.openid 的获取 3.统一下单Controller(预支付订单) 4.配置类和配置文件 5.工具类 6.前端接收到必要的参数,进行调 ...
- 微信小程序篇(微信小程序的支付)
微信小程序的支付和微信公众号的支付是类似的,对比起来还比公众号支付简单了一些,我们只需要调用微信的统一下单接口获取prepay_id之后我们在调用微信的支付即可. 今天我们来封装一般node的支付接口 ...
- 微信小程序调用支付接口支付(tp5、小程序)
微信小程序调用支付接口支付 今天记录一下学习的小程序调用微信支付接口 一.先理清一下调起微信支付的整个流程. 1.就是先调用微信的支付统一下单api获取到prepay_id 2.然后后端再将这个pre ...
- 微信小程序支付返回签名错误_java 微信小程序微信支付统一下订单及数字签名错误问题(后端)...
今天来分享一下之前做微信小程序微信支付遇到的一些坑,博主这里是微信小程序支付功能,因此选择的微信支付方式是JSAPI支付方式(温馨提示左下角有音乐哦). 首先我们肯定是要在小程序后台绑定一个商户号的, ...
- 微信小程序配置支付(附完整代码)
微信小程序配置支付 1. 微信支付官网配置项 2. 代码配置(登录.获取openId.拉起支付等) 3. 云开发示例 1. 微信支付官网配置项 初次接入,商户号管理是没有数据的,需要申请接入. 如果是 ...
- 微信小程序 iOS支付
微信小程序运营支付规范 微信官方针对有虚拟支付功能的小程序下发了整改通知.截至5月8号,平台将对账号屏蔽iOS系统的支付接口调用.我去查了<<微信小程序运营规则>>,如上图.发 ...
- 微信小程序服务器支付sdk,微信小程序之支付后如何调用SDK的异步通知
微信小程序之支付后如何调用SDK的异步通知 发布时间:2021-07-05 10:47:33 来源:亿速云 阅读:57 作者:小新 这篇文章主要介绍微信小程序之支付后如何调用SDK的异步通知,文中介绍 ...
- ios微信小程序虚拟支付解决办法
ios微信小程序虚拟支付整理介绍 目前iOS端暂不支持虚拟支付,微信小程序虚拟支付仅涉及到ios端,安卓端不受影响. 小程序支付规范 https://developers.weixin.qq.com/ ...
- [微信小程序] 微信小程+ts中 箭头函数和this的问题
今天想体验一把微信小程序里使用ts的感觉,结果尴尬了-- 一个基本的点击事件居然卡了半天,太尴尬了,本来我的想法是:在界面上定义一个button点击一下,随机渲染一个数字,写完狂报错, 在微信小程序里 ...
- 微信小程序 微信支付代码实现流程
微信小程序 微信支付是一个很简单的流程 微信开发文档 地址:wx.requestPayment(Object object) | 微信开放文档 微信公众平台申请支付功能 百度一大堆例举代码 官方文档 ...
最新文章
- AttributeError: module ‘os‘ has no attribute ‘mknod‘
- Spring 通过工厂方法(Factory Method)来配置bean
- Android 监听ScrollView的滑动
- CentOS6.7 安装git
- Bzoj 3343: 教主的魔法(分块+二分答案)
- Oracle数据库用法汇总
- 谷歌修复十多个安卓高危漏洞
- vba获取通达信光标的坐标数据_如何把缠论分笔公式在移动端手机版通达信缠论画笔公式安装...
- 易语言 使用精易皮肤模块的 方法
- 经济应用文写作【6】
- Flask的jinjia2语句最详细容易理解教程
- 鸿鹄元数正式加入openGauss社区
- 图像算法工程师面试汇总
- U盘写保护,终极解决办法,
- 【马红“名师+”】:【名师引路】聆听薛法根《语文学习任务设计》讲座学习活动(一)
- InstallShield自定义对话框浅谈(转)
- 替换掉mysql数据库指定字段的所有数据的中指定字符串
- 如何更新R以及RStudio
- IIS7.5服务器上发布视频,不能在浏览器显示
- proto3字段值为空时被忽略问题