@ApiOperation(value= "支付宝预支付", httpMethod= "POST")

@PostMapping(value= "/aliPayReady", produces= "application/json;charset=UTF-8")

@ResponseBody

public RespBaseDto aliPayReady(

@RequestBody AlipayVo info) throws AlipayApiException {

String out_trade_no= info.getOut_trade_no();

String total_amount= info.getTotal_amount();

RespBaseDto baseDto= new RespBaseDto<>();

String orderStr= "";

try {

FxSdCarriageOrder order= orderService.selectOrderByOrderSn(Long.parseLong(out_trade_no));

if(order!=null&&order.getStatus()==1){

BigDecimal orderTotalAccount= order.getDispatchPrice();

int i= orderTotalAccount.compareTo(new BigDecimal(total_amount));

if(i==0){

//传入订单金额正确

Map orderMap= new LinkedHashMap();            //订单实体

Map bizModel= new LinkedHashMap();            //公共实体

// 商户订单号,商户网站订单系统中唯一订单号,必填

orderMap.put("out_trade_no",out_trade_no);

// 订单名称,必填

orderMap.put("subject","手机网站支付购买游戏币");

// 付款金额,必填

orderMap.put("total_amount",total_amount);

// 商品描述,可空

orderMap.put("body","您购买游戏币"+total_amount+"元");

// 超时时间 可空

orderMap.put("timeout_express","5m");

// 销售产品码 必填

orderMap.put("product_code","QUICK_MSECURITY_PAY");

/****** 2.商品参数封装结束 *****/

/******--------------- 3.公共参数封装 开始 ------------------------*****/        //支付宝用

//1.商户appid

bizModel.put("app_id",AlipayConfig.APPID);

//2.请求网关地址

bizModel.put("method",AlipayConfig.URL);

//3.请求格式

bizModel.put("format",AlipayConfig.FORMAT);

//4.回调地址

bizModel.put("return_url",AlipayConfig.return_url);

//5.私钥

bizModel.put("private_key",AlipayConfig.ALIPAY_PRIVATE_KEY);

//6.商家id

bizModel.put("seller_id","2088102170411333");

//7.加密格式

bizModel.put("sign_type",AlipayConfig.SIGNTYPE+"");

//8.回调地址

bizModel.put("notify_url",AlipayConfig.notify_url);

/******--------------- 3.公共参数封装 结束 ------------------------*****/

//实例化客户端

AlipayClient alipayClient= new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",

AlipayConfig.APPID, AlipayConfig.ALIPAY_PRIVATE_KEY, "json", AlipayConfig.CHARSET, AlipayConfig.ALIPAY_KEY, "RSA2");

//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay

AlipayTradeAppPayRequest request= new AlipayTradeAppPayRequest();

//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。

AlipayTradeAppPayModel model= new AlipayTradeAppPayModel();

model.setBody("帮我买-帮我取-帮我送");

model.setSubject("成都小短腿");

model.setOutTradeNo(out_trade_no);//更换为自己的订单编号

model.setTimeoutExpress("5m");

model.setTotalAmount(total_amount);//订单价格

model.setProductCode("QUICK_MSECURITY_PAY");

request.setBizModel(model);

request.setNotifyUrl("");//回调地址不可以带参数,这里的设置有效使用

//String orderStr = "";

try {

//这里和普通的接口调用不同,使用的是sdkExecute

AlipayTradeAppPayResponse response= alipayClient.sdkExecute(request);

orderStr= response.getBody();

System.out.println(orderStr);//就是orderString 可以直接给客户端请求,无需再做处理。

} catch (AlipayApiException e) {

e.printStackTrace();

}

baseDto.setMessage("订单生成成功");

baseDto.setState(200);

baseDto.setData(orderStr);

//订单号不存在

}else{

baseDto.setMessage(EWarning.OrderAccountError.getName());

baseDto.setState(EWarning.OrderAccountError.getValue());

baseDto.setData(orderStr);

}

}else{

baseDto.setMessage(EWarning.NoOrderInfo.getName());

baseDto.setState(EWarning.NoOrderInfo.getValue());

baseDto.setData(orderStr);

}

} catch (Exception e) {

baseDto.setMessage("订单生成失败");

baseDto.setState(400);

baseDto.setData(orderStr);

}

return baseDto;

}

java app后台开发实例_支付宝app-java后台相关推荐

  1. java web应用开发技术_第一章 Java Web应用开发技术

    Java Web应用开发是基于JavaEE(JavaEnterprise Edition)框架的,而JavaEE是建立在Java平台上的企业级应用解决方案.JavaEES框架提供的Web开发技术主要支 ...

  2. java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口

    写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...

  3. Java小程序开发实例!字节跳动Java岗经典面试真题,实战解析

    前言 总有一天你会明白,你的努力终究没有白费 年前辞职,人算不如天算,突如其来的疫情完全把自己的计划给打碎了,面试难度简直不亚于一场江苏高考题,后悔.焦虑不安.失眠成了我的生活状态. 从三月底开始投递 ...

  4. java应用的开发步骤_简述一下Java应用程序的开发步骤

    [单选题]在受轴向变载荷作用的紧螺栓连接中,为提高螺栓的疲劳强度,可采用的措施是(). [填空题]五味指().().().().(). [判断题]苦味 有收敛固涩.增进食欲,用于治疗虚汗.泄泻等症状. ...

  5. android打印doc文件,安卓系统APP打印开发实例.doc

    S&PS Solution Tips PAGE 5 | Page 主题 安卓系统APP打印开发实例 适用范围 带网口Honeywell系列 intermec系列 解决方案 当你想要在安卓DPA ...

  6. 后台开发(1)---app后台开发入门

    app后台开发入门 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_36571185/article/details/70269448 ...

  7. 安卓app开发工具_手机APP是怎么开发的,需要学习哪些知识?

    目前主流的手机APP分两类,一类是基于苹果(IOS)系统的APP,另一类是基于安卓(Android)系统的APP,两种不同系统的APP所使用的开发工具及编程语言完全不一样. (1)基于苹果(IOS)系 ...

  8. c++后台开发项目_[c/c++后台开发面经系列]4 Zoom面经(含答案)

    嘻嘻,祝小仙女们女神节快乐! 看完别忘点个在看哦 此系列内容以及观点仅个人感受,不妥之处直接私我!目的为了大家能更好的知道面试题难度以及如何准备,希望能让大家少浪费时间寻找资料,多点时间学点干货!因为 ...

  9. python后台开发知识点_面试总结:鹅厂Linux后台开发面试笔试C++知识点参考笔记...

    文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 文章是由自己笔试面试腾讯的笔记整理而来,整理的时候又回顾了一遍,中间工 ...

最新文章

  1. 【JavaEE】WebService到底是什么?
  2. sql参数化还是被注入了_SQL注入是什么?
  3. C++ 深复制与浅复制 RVO问题
  4. C# 2.0对现有语法的改进
  5. vc访问远程mysql_利用vc远程连接mysql一例
  6. 通达信c语言接口,通达信数据接口及日线数据格式
  7. 模型计算机微指令总表,基于微程序控制器的模型计算机设计
  8. 打印101-150之间的质数
  9. 计算机网络设计——企业网络规划与搭建
  10. 教育专家妙论生命法则
  11. 计算机日历教案,《认识日历》的教案
  12. 1360: 最大公约与最小公倍
  13. 百度接口根据关键字生成文章
  14. Shopee本土店如何做,各国家站点市场分析及热销产品
  15. Web3.0峰会上IPFS最新消息利好不断
  16. Doris(一)-简介、架构、编译、安装和数据表的基本使用
  17. Simulink —— 三相交流控制系统中的坐标变换
  18. elasticsearch(ES)的安装部署及其插件安装
  19. python爬取csdn上的包含整人关键词的阅读量并且存入表格里
  20. auto怎么用 思域android_十代思域安卓手机互联步骤是什么

热门文章

  1. emwin汉字显示 无Unicode怎么办
  2. 电容笔和触控笔有什么区别?电容笔十大品牌排行
  3. 移动互联网实战--社交游戏的排行榜设计和实现(1)
  4. mysql倒库操作遇到的问题
  5. 海洋陆地算法_了解网络的陆地和海洋
  6. Photoshop临摹 icon
  7. 旧计算机无法识别usb3.,U盘插入电脑没反应?教你3个修复方法,解决USB无法识别问题...
  8. 分析Ajax爬取今日头条,下载图片
  9. spyder打不开的解决办法
  10. P2675 《瞿葩的数字游戏》T3-三角圣地