java app后台开发实例_支付宝app-java后台

@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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值