开始没找到微信支付的sdk。自己根据官方给的接口文档纯手写,各种xml转JSON,JSON转xml,加密解密,签名、、、、整个人都是崩溃的

开发的第三天,发现有官方的sdk。心情一下子豁然开朗,整个人都轻松了一截。

话不多说,直接上代码

首先当然是引入微信支付的依赖包啦

<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency> 大家可以进去源码里面看看,各个方法都被封装得挺好得,从原生过来的我泪流满面
下面以微信统一下单接口开发为例
  /** @description 微信统一下单接口
* @Author wenjing
* @Date 10:46 2019/5/13
* @Param [wxUnifiedorderModel]
* @return com.zyhp.utils.Result
**/
public Result wxUnifiedorder(WxUnifiedorderModel wxUnifiedorderModel)throws Exception{
    //new一个微信支付,实际开发中最好使用单例模式
MyWxConfig config = new MyWxConfig();
WXPay wxPay = new WXPay(config);
SortedMap<String, String> params = new TreeMap<String, String>();
params.put("device_info", "WEB"); //设备号
params.put("body", wxUnifiedorderModel.getBody());//商品描述
//生成商户订单号
long serialNumMax = redisUtil.incr("outTradeNo");
String outTradeNo = CommonUtil.getDateStr(new Date())+serialNumMax;
wxUnifiedorderModel.setOutTradeNo(outTradeNo);
params.put("out_trade_no", outTradeNo);
params.put("total_fee", wxUnifiedorderModel.getTotalFee().movePointRight(2).toString());
// params.put("time_start", time_start);
params.put("trade_type","JSAPI");
params.put("notify_url",Constans.SERVICE_HOST+"/payInfoBack");
params.put("spbill_create_ip",wxUnifiedorderModel.getSpbillCreateIp());
Map<String,String> resultMap = wxPay.unifiedOrder(params);
if("FAIL".equals(resultMap.get("return_code"))){
return new Result("-1","参数格式错误",null);
}
if("SUCCESS".equals(resultMap.get("result_code"))){
return new Result("-1",resultMap.get("err_code_des"),null);
}
//保存该订单记录
wxUnifiedorderModel.setTimeStart(new Date());
wxUnifiedorderModelMapper.insert(wxUnifiedorderModel);
return new Result("1","成功",resultMap.get("prepay_id"));
}

SpringBoot项目后台对接微信支付开发——微信统一下单接口开发的更多相关文章

  1. 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...

  2. C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是"模板消息"的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信 ...

  3. 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)

    本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...

  4. Android调试大法 自定义IDE默认签名文件==>微信支付、微信登录、微信分享,debug时调试通过,release时调不起微信

    转载地址:http://blog.yanzhenjie.com Android调试大法之自定义IDE默认签名文件,你是否为调试第三方SDK时debug签名和release签名发生冲突而烦恼?你是否在d ...

  5. 微信支付和微信支付通知基于sdk的说明(2)

    前期准备工作 微信商户账户/密码(获取appid等信息) 微信公众号账户/密码(获取cert证书等信息,不做线上退款不需要证书) 下载php支付demo 从商户平台进入的话是以下界面或者直接搜索公众号 ...

  6. 怎样调通微信支付及微信发货通知接口(Js API)

    怎样调通微信支付及微信发货通知接口(Js API) 微信支付提供了一个支付測试页面,微信支付正式使用须要測通支付.发货通知接口 .告警接口.维权接口.告警接口.维权接口非常easy.支付界面调通也相对 ...

  7. #PHP#微信支付 第二篇 JSAPI 调用统一下单接口获取预支付交易数据

    上一篇讲到成功获取 openid,本篇要调用微信统一接口创建预支付交易单,并获取到相关数据,以便(后边)在微信内调起H5支付 第三步,调用微信统一下单接口创建预支付交易单 微信统一下单API是微信支付 ...

  8. 微信支付之微信H5支付(坑,ajax不支持重定向跳转)

    这里讲的是  微信h5支付,    是微信以外的手机浏览器调用微信h5支付  h5支付: H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起 ...

  9. PHP九大接口视频教程( 支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套)

    PHP九大接口视频教程(  支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 PHP九大接口视频教程(  支付宝,QQ,短信接口 ...

随机推荐

  1. python的debug神器PySnooper

    同事给我推荐了这个调试神器,一直没工夫看,今天看了下. 原文链接: 史上最方便的Python Debug工具|腾讯技术说 体验了下,感觉最好的用法:1.优先逐行调试:2.一些复杂状态处理或者偶现的bu ...

  2. 未能加载文件或程序集“MySql.Data”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    未能加载文件或程序集“MySql.Data”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) 说明: 执行当前 Web 请求期间,出现未 ...

  3. Go get unrecognized import path "gopkg.in/yaml.v2"

    安装gin: go get -u github.com/gin-gonic/gin 出现错误: package gopkg.in/yaml.v2: unrecognized import path & ...

  4. .net APP接口

    编写APP接口首先要搭建测试环境,在实际开发中APP对于大多数公司来说都是选择外包,并不是公司内部人员负责,遇到事情不可能时时进行沟通和交流,也不能写每一个接口都要双方及时确认.个人经历是双方确认AP ...

  5. 19.3.8 HTML+css 课程

    form 归属于 form 通过id产生联系 ​<form id = "testform" method = "get" action = "s ...

  6. cmd 删除整个目录

    rmdir 删除整个目录好比说我要删除 222 这个目录下的所有目录和档案,这语法就是: rmdir /s/q 222 其中: /s 是代表删除所有子目录跟其中的档案. /q 是不要它在删除档案或目录 ...

  7. 4)栈和队列-->受限线性表

    栈和队列叫  受限线性表  只不过他们插入和删除的位置  相对于之前的线性表有了限制   所以叫受限线性表 1)栈-->就是先进后出 2)队列-->先进先出 3)循环链表框图: 4)队列

  8. UML-迭代3-中级主题

    初始阶段和迭代1:揭示了大量面向对象分析和设计建模的基础知识. 迭代2:特别强调对象设计模式 迭代3:涉及主题比较宽泛: 1).更多GoF设计模式及其在框架(尤其是一个持久化框架)的设计中的应用. 2 ...

  9. Java集合(一)——Collection

    集合概述 集合(Collections)是存储对象的容器.方便对多个对象的操作.存储对象,集合的作用就在这时显现了. 集合的出现就是为了持有对象.集合中可以存储任意类型的对象, 而且长度可变.在程序中 ...

  10. 将QT窗口嵌入到WinForm窗口

    要想 windows下抓取Qt进程主界面,并嵌入到自己的程序中显示,需要首先设置qt窗口的windowTitle属性,然后就可以通过 windows api 中的 FindWindow 函数查找到窗口 ...