我们从头开始:

1.首先导入依赖文件

        <!--wx-pay-sdk 目前我用的版本是 3.8.0--><dependency><groupId>com.github.binarywang</groupId><artifactId>wx-java-pay-spring-boot-starter</artifactId><version>${wx.java.version}</version></dependency>

2.Controller层

  @PostMapping("/submitTradeRecord")@ApiOperation(value = "提交订单")public BeanResult<ReturnWxMpPayVO> submitTradeRecord(@RequestBody @Valid SubmitMemberVO vo) {ReturnWxMpPayVO result = userMemberPackageService.setUserMemberPackageMapper(vo.getConsumerUserId(),vo.getMid());return BeanResult.success(result);}

3.serviceImpl层

//上面大家可以写自己的代码逻辑//调用微信统一下单接口WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = WxPayUnifiedOrderRequest.newBuilder()//用户openid.openid(userInfoMapper.selectById(consumerUserId).getOpenid()) //自己设置规则的订单号.outTradeNo(info.getTradeNo())//支付金额(微信支付要用BigDecimal格式,这里用一个方法).totalFee(WxPayUnifiedOrderRequest.yuanToFen(info.getRealAmount().toString()))//订单描述(这里的名称最好自己设置).body(info.getGoodsDescription()) //微信支付方式.tradeType(WxPayConstants.TradeType.JSAPI)//用户ip地址.spbillCreateIp(InetAddress.getLoopbackAddress().getHostAddress())//通知回调地址(这里自己需要手写的).notifyUrl(customizeProperties.getWxPayNotifyUrl()).build();log.info("微信统一下单请求参数组装完成: {}", wxPayUnifiedOrderRequest);WxPayUnifiedOrderResult wxPayUnifiedOrderResult;try {wxPayUnifiedOrderResult = wxPayService.unifiedOrder(wxPayUnifiedOrderRequest);log.info("微信统一下单接口调用完成: {}", wxPayUnifiedOrderResult);} catch (Exception e) {log.error("微信统一下单接口调用失败: {}", e.getMessage(), e);throw CustomizeServiceException.throwMsgException("微信统一下单接口调用失败");}//计算签名 给前端使用Map<String, String> paySignInfo = new HashMap<>();String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);String nonceStr = String.valueOf(System.currentTimeMillis());paySignInfo.put("appId", customizeProperties.getWxPayAppId());paySignInfo.put("nonceStr", nonceStr);paySignInfo.put("timeStamp", timeStamp);paySignInfo.put("signType", "MD5");paySignInfo.put("package", "prepay_id=" + wxPayUnifiedOrderResult.getPrepayId());String paySign = SignUtils.createSign(paySignInfo, WxPayConstants.SignType.MD5, customizeProperties.getWxPayMchKey(), new String[0]);//组装返回数据vo.setAppId(customizeProperties.getWxPayAppId());vo.setTimeStamp(timeStamp);vo.setNonceStr(nonceStr);vo.setPrepayId(wxPayUnifiedOrderResult.getPrepayId());vo.setSignType(WxPayConstants.SignType.MD5);vo.setPaySign(paySign);//下面大家可以写自己的代码逻辑return vo;

4.回调地址方法

接下来的订单成功修改订单状态的逻辑 ,关闭订单的逻辑  我就不贴出来了 就靠你们自己写辣!

超简单的对接第三方API的微信支付(jsapi)。相关推荐

  1. jsapi支付签名_PHP实现微信支付(jsapi支付)流程步骤详解

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备: 1.微信认证服务号,并且开通了微 ...

  2. php如何接入微信支付接口,PHP实现微信支付(jsapi支付)流程的方法

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备: 1.微信认证服务号,并且开通了微 ...

  3. PHP实现微信支付(jsapi支付)流程

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备:  1.微信认证服务号,并且开通了 ...

  4. php微信支付jsapi,ThinkPHP实现微信支付(jsapi支付)

    这篇文章主要介绍了ThinkPHP实现微信支付(jsapi支付)流程教程详解,需要的朋友可以参考下 之前写过一篇文章讲了PHP实现微信支付(jsapi支付)流程 ,详见文章:PHP实现微信支付(jsa ...

  5. php微信支付jsapi,ThinkPHP中实现微信支付(jsapi支付)流程

    之前写过一篇文章讲了 PHP实现微信支付(jsapi支付)流程 ,详见文章:PHP实现微信支付(jsapi支付)流程. 当时的环境是没有使用框架的,直接在一个域名指向的目录下边新建目录之后访问该目录实 ...

  6. 如何更优雅地对接第三方API

    如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...

  7. 如何更优雅的对接第三方API

    我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等.第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方服务的时候会去下 ...

  8. 企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...

    本帖最后由 商业源码网 于 2017-12-21 11:23 编辑7 h$ `. `, C  u0 R3 R+ y$ z! ] ' q( D' D$ s( Y 源码说明:) G: y; R# G0 ` ...

  9. 企业级正规php第三方api,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等...

    更新升级添加:1x - 添加登录注册页面2x - 添加环迅IPS支付方式3x - 添加易宝支付 程序详情:企业级正规php第三方api第四方支付平台程序源码完整开源全套带安装教程企业级正规php第三方 ...

最新文章

  1. 【LeetCode】230#二叉搜索树中第K小的元素
  2. ListIterator特有的方法
  3. python绘制曲线图-python怎么画曲线图
  4. 10.5做题——全排列(初赛复习)
  5. strtus2改成springboot_jdk1.6环境下struts2改spring boot方案
  6. JBox2D手机游戏引擎介绍(附jbox2d官网网址)
  7. 利用搜索引擎实现关键词爬取内容
  8. [Search Engine] 搜索引擎技术之倒排索引
  9. 命令行Terminal增加proxy开关
  10. Git 下载与安装教程
  11. JVM,DVM,JIT,AOT,ART理解
  12. iOS 10 消息推送(UserNotifications)秘籍总结(一
  13. 抖音JAVA工程师_字节跳动抖音社招后台开发工程师面经
  14. 电脑重装系统后c盘数据能恢复吗c盘重装后可以数据恢复吗
  15. “似乎不能再叫闵大荒了。”
  16. javascript - 焦点事件(onfocus ,onblur )
  17. 【报告分享】2021国民健康洞察报告-丁香(附下载)
  18. 量子退火Python实战(2):护士调度问题(NSP : Nurse Scheduling Problem)
  19. C语言数组名、数组名取地址、数组首元素地址之间的关系
  20. 微信小程序驾考驾校考试预约信息管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】

热门文章

  1. 如何去除ul小圆点的html,html里面ul那个点怎么消
  2. 数据结构与算法学习--线性
  3. 分布式锁的实现【转载】
  4. ECS运维神器 之 阿里云云助手
  5. 豆豆趣事[2016年06月]
  6. SoundPlayer 播放无声音解决方案
  7. eNSP静态路由配置及其拓展配置
  8. Quality-Estimation1 (翻译质量评价-复现 WMT2018 阿里论文结果)
  9. 记一次SPA项目打包优化的过程
  10. matlab绘图坐标轴字体_MATLAB绘图(轴文本粗体,曲线粗体),Matlab,坐标轴,文字,加粗...