/*** 微信支付回调函数** @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;}

微信小程序(微信支付回调函数)相关推荐

  1. 微信小程序微信支付《JSAPI支付》APIV3详细教程

    文章目录 前提 整体介绍 我的maven依赖 1.整体流程 2.openid 的获取 3.统一下单Controller(预支付订单) 4.配置类和配置文件 5.工具类 6.前端接收到必要的参数,进行调 ...

  2. 微信小程序篇(微信小程序的支付)

    微信小程序的支付和微信公众号的支付是类似的,对比起来还比公众号支付简单了一些,我们只需要调用微信的统一下单接口获取prepay_id之后我们在调用微信的支付即可. 今天我们来封装一般node的支付接口 ...

  3. 微信小程序调用支付接口支付(tp5、小程序)

    微信小程序调用支付接口支付 今天记录一下学习的小程序调用微信支付接口 一.先理清一下调起微信支付的整个流程. 1.就是先调用微信的支付统一下单api获取到prepay_id 2.然后后端再将这个pre ...

  4. 微信小程序支付返回签名错误_java 微信小程序微信支付统一下订单及数字签名错误问题(后端)...

    今天来分享一下之前做微信小程序微信支付遇到的一些坑,博主这里是微信小程序支付功能,因此选择的微信支付方式是JSAPI支付方式(温馨提示左下角有音乐哦). 首先我们肯定是要在小程序后台绑定一个商户号的, ...

  5. 微信小程序配置支付(附完整代码)

    微信小程序配置支付 1. 微信支付官网配置项 2. 代码配置(登录.获取openId.拉起支付等) 3. 云开发示例 1. 微信支付官网配置项 初次接入,商户号管理是没有数据的,需要申请接入. 如果是 ...

  6. 微信小程序 iOS支付

    微信小程序运营支付规范 微信官方针对有虚拟支付功能的小程序下发了整改通知.截至5月8号,平台将对账号屏蔽iOS系统的支付接口调用.我去查了<<微信小程序运营规则>>,如上图.发 ...

  7. 微信小程序服务器支付sdk,微信小程序之支付后如何调用SDK的异步通知

    微信小程序之支付后如何调用SDK的异步通知 发布时间:2021-07-05 10:47:33 来源:亿速云 阅读:57 作者:小新 这篇文章主要介绍微信小程序之支付后如何调用SDK的异步通知,文中介绍 ...

  8. ios微信小程序虚拟支付解决办法

    ios微信小程序虚拟支付整理介绍 目前iOS端暂不支持虚拟支付,微信小程序虚拟支付仅涉及到ios端,安卓端不受影响. 小程序支付规范 https://developers.weixin.qq.com/ ...

  9. [微信小程序] 微信小程+ts中 箭头函数和this的问题

    今天想体验一把微信小程序里使用ts的感觉,结果尴尬了-- 一个基本的点击事件居然卡了半天,太尴尬了,本来我的想法是:在界面上定义一个button点击一下,随机渲染一个数字,写完狂报错, 在微信小程序里 ...

  10. 微信小程序 微信支付代码实现流程

    微信小程序 微信支付是一个很简单的流程  微信开发文档 地址:wx.requestPayment(Object object) | 微信开放文档 微信公众平台申请支付功能 百度一大堆例举代码 官方文档 ...

最新文章

  1. AttributeError: module ‘os‘ has no attribute ‘mknod‘
  2. Spring 通过工厂方法(Factory Method)来配置bean
  3. Android 监听ScrollView的滑动
  4. CentOS6.7 安装git
  5. Bzoj 3343: 教主的魔法(分块+二分答案)
  6. Oracle数据库用法汇总
  7. 谷歌修复十多个安卓高危漏洞
  8. vba获取通达信光标的坐标数据_如何把缠论分笔公式在移动端手机版通达信缠论画笔公式安装...
  9. 易语言 使用精易皮肤模块的 方法
  10. 经济应用文写作【6】
  11. Flask的jinjia2语句最详细容易理解教程
  12. 鸿鹄元数正式加入openGauss社区
  13. 图像算法工程师面试汇总
  14. U盘写保护,终极解决办法,
  15. 【马红“名师+”】:【名师引路】聆听薛法根《语文学习任务设计》讲座学习活动(一)
  16. InstallShield自定义对话框浅谈(转)
  17. 替换掉mysql数据库指定字段的所有数据的中指定字符串
  18. 如何更新R以及RStudio
  19. IIS7.5服务器上发布视频,不能在浏览器显示
  20. proto3字段值为空时被忽略问题

热门文章

  1. android对象内存泄漏,Android内存泄漏和检查——结合项目实例解析
  2. 人民币小写转换为大写函数
  3. 电商用户价值分析——基于RFM模型、KMeans聚类
  4. 导入excel,excel中带有图片,记录一下
  5. 520情人节送什么礼物合适、送给女生礼物推荐
  6. 鲁大师2022年度硬件榜单即将出炉,多维度看谁能夺奖?
  7. 金蝶云苍穹Java笔试题_金蝶云苍穹基本操作及常见问题总结
  8. bilibili level up
  9. FME cad中地块图形与图形标注信息的连接(空间关系连接)
  10. APICloud 原生模块、H5模块、多端组件使用教程