/***

* 支付回调接口*/@RequestMapping("/userpaycallback")publicString wxUserPaycallback(HttpServletRequest request) {try{

Map params =wxUserPayService.getParameter2Map(request.getParameterMap(),

request.getInputStream());if (null ==params) {throw new Exception("回调参数为空");

}//校验

if (!wxUserPayService.verify(params)) {throw new Exception("校验失败");

}

payDone(params);//支付处理return wxUserPayService.getPayOutMessage("SUCCESS", "成功").toMessage();

}catch(Exception e) {

e.printStackTrace();return wxUserPayService.getPayOutMessage("FALL", "失败").toMessage();

}

}

/**

* 支付结果处理

*/

private void payDone(Map dataMap) throwsException {

System.out.println("支付回调:" +JSON.toJSONString(dataMap));//{"transaction_id":"4200000109201805293331420304","nonce_str":"402880e963a9764b0163a979a16e0002","bank_type":"CFT","openid":"oXI6G5Jc4D44y2wixgxE3OPwpDVg","sign":"262978D36A3093ACBE4B55707D6EA7B2","fee_type":"CNY","mch_id":"1491307962","cash_fee":"10","out_trade_no":"14913079622018052909183048768217","appid":"wxa177427bc0e60aab","total_fee":"10","trade_type":"JSAPI","result_code":"SUCCESS","time_end":"20180529091834","is_subscribe":"N","return_code":"SUCCESS"}

String result_code = dataMap.get("result_code").toString();//支付结果code

String out_trade_no = dataMap.get("out_trade_no").toString();//商户交易订单id,此为支付记录id

if (!result_code.equals("SUCCESS")) {throw new Exception("支付回调失败:" +JSON.toJSONString(dataMap));

}

Pay pay= payService.getById(out_trade_no);//获取支付记录

if (pay == null || pay.getStatus() != 10) {//10=可用/待支付 20=支付成功 30=支付失败

throw new Exception("支付记录已经处理");

}

payService.pay(out_trade_no, result_code.equals("SUCCESS") ? 20 : 30);//根据回调结果更改支付结果状态//升级成会员的数据处理

if(result_code.equals("SUCCESS")) {//支付结果SUCCESS,支付成功开通会员,进行下一步操作

Document doc=newDocument();

doc.put("vipStatus", 20);//状态20开通会员

doc.put("vipCreateTime", newDate());

doc.put("expireTime", StringUtil.getMonthNextOrBeforeDate(3));//设置过期时间为3个月后

userService.updateUserVip(pay.getUserId(),doc);

}

}

微信小程序支付java视频_【原创】微信小程序支付(普通模式,公众号支付同适用)java后台案例...相关推荐

  1. 专属微信二维码python制作_如何利用Python制作简单的公众号二维码关注图

    创意配图:微信,微信公众号,微信大V 而且最近发现了一个新的图像处理方面的库-Wand,它是 ImageMagick 库的 Python 接口.于是,我就打算用这个库来实现简单的制作一个二维码关注图, ...

  2. 微信公众号支付开发(一):前期准备

    微信公众号认证(服务号认证) 说明:如果没有发布文章的需建议认证服务号,如果每个自然月每天都要发文章认证订阅号,这里是认证服务号. 准备工作: 注册一个新邮箱. 1. 注册微信公众号账号:注册一个微信 ...

  3. 一文快速实现微信公众号支付功能

    微信支付类型 微信支付实际上有很多种不同的类型,具体要使用哪一种就需要根据不同的应用场景来选择,官方给出的参考例子: 刷卡支付:用户打开微信钱包的刷卡的界面,商户扫码后提交完成支付. 公众号支付:用户 ...

  4. 第三方微信支付,WAP、H5、APP、公众号支付的区别

    你说一个微信支付被腾讯搞了N个版本出来,是技术问题还收费原因不得而知.公众号支付,H5(wap)支付,APP支付.看得小编一头雾水. 带点N个疑问? 1.公众号支付是在公众号里支付,支众号里引入的三方 ...

  5. 微信支付之公众号支付

    经过近一周的敲代码,终于把公众号支付和H5支付实现完成并测试通过,特此分享一些流程,一方面自己记录另一方面给新入门的一点思路 [本文介绍普通商户的公众号支付] 一.基本信息和配置 公众号支付的前提是要 ...

  6. 一文快速实现微信公众号支付功能(详细版,建议收藏备用)

    进阶架构精品专题 Mysql优化专题(★★★★) 网络协议专题(★★★★) 其余18大专题,请在主页菜单栏查看 后台回复[加群],获取BAT真实面经 微信支付类型 微信支付实际上有很多种不同的类型,具 ...

  7. 微信公众号支付(JSAPI)对接备忘

    0 说明 本文里说的微信公众号支付对接指的是对接第三方支付平台的微信公众号支付接口. 非微信支付官方文档里的公众号支付开发者文档那样的对接.不过,毕竟腾讯会把一部分渠道放给银行或有支付牌照的支付机构, ...

  8. 微信支付开发教程(公众号支付)

    前段时间公司电商项目需要接入微信支付,因此研究了一下如何使用微信支付.和支付宝支付相比,微信支付相对复杂一些,需要配置的东西更多,限制也更多.经过两天的研究,终于搞定微信支付,在这里对于使用微信支付的 ...

  9. 对接银联商务微信公众号支付遇到的坑

    微信公众号支付和微信扫码支付在 支付结果通知上有很大的区别,公众号支付主要是以异步通知去确定支付结果,也可以通过查询接口,而扫码支付通常调用查询接口去查询支付状态.因而,公众号支付的异步通知是一个需要 ...

  10. 微信公众号支付 流程

    1.支付参数准备(图就不上了) 公众号的APPID.商户号MchID.商户API支付秘钥(商户平台的账户中心下:需要用户自行下载证书及安装). 2.平台配置 商户平台-->产品中心-->开 ...

最新文章

  1. linux 普通用户退出vim,Linux环境下VI/VIM编辑文件时无权限保存的解决方法(普通用户)...
  2. Java用JSONObject-lib来解析json串
  3. java image 设置大小_如何在Java中调整BufferedImage的大小
  4. [人工智能]隔墙有眼,吓屎了
  5. 如何快速构建一个 Spring Boot 工程?
  6. win11扩展任务栏没东西怎么办 windows11扩展任务栏没东西的解决方法
  7. Kubernetes 使用 Ingress-nginx 实现灰度发布功能
  8. linux 编译mtk无线驱动,Linux驱动(七)----MTK驱动注册分析
  9. RxJava:concat(连接)、 concatDelayError、 concatEager的使用
  10. matlab 内存不足
  11. colab上装在谷歌网盘
  12. word文档里四级目录无法显示
  13. 一篇文章搞懂 HDFS ACLs权限管理
  14. 论颈椎病与架构师的关系
  15. 【渝粤教育】电大中专电子商务网站建设与维护答案作业 题库
  16. linux下的磁盘状态查看方式
  17. 小程序开发总结(详细)
  18. STL_空间配置器allocator
  19. 正则表达式新手入门笔记(一)
  20. 我说CMMI2.0之过程管理

热门文章

  1. mtk处理器和骁龙对比_高通正在开发全新AR/VR处理器骁龙XR2;骁龙865对比骁龙855 Plus/苹果A13:爆料称性能增加20%...
  2. Linux Shell脚本编程 --sort命令
  3. 实用脚本!Python 提取 PDF 指定内容生成新文件!
  4. 利用Conda尝鲜Python 3.10
  5. 最好用的 Python 虚拟环境,没有之一
  6. 碎碎念 | 投资理财那些事
  7. 人脸识别(一)——从零说起
  8. oracle z中rowid,oracle 10g中的ROWID
  9. python如何改颜色_python和networkx:如何更改节点的颜色
  10. oracle数据库分层,Oracle数据库的分层查询(一)