课程支付功能(查询订单接口) | 学习笔记

简介: 简介:快速学习课程支付功能(查询订单接口)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程支付功能(查询订单接口)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11490


课程支付功能(查询订单接口)

 

内容介绍:

一、 需求分析:根据订单 id 查询订单信息

二、生成微信支付二维码

 

一、需求分析:根据订单 id 查询订单信息

代码示例:

//根据订单id查询订单信息

RGetMapping{"getOrderInfo/ {orderId}"}

public R getOrderInfo(@PathVariable String orderId){

QueryWrapper<Order> wrapper = new QueryWrapper<>() ;

wrapper.eq( column: " order_no" , orderId);

Order order = orderService. getOne(wrapper) ;

return R. ok() . data("item" , order) ;

}

其中 order_no 的 id,不是订单号。

 

二 、生成微信支付二维码

1、 编写 controller

代码示例:

@RestController

@RequestMapping("" / orderservice/log")

@CrossOrigin

public class PayLogController {

@Autawired

private PayLogService payService;

/**

*生成二维码

*@return*/

@GetMapping(" IcreateNative/{orderNo}”)

public R createNative(@PathVariable String orderNo) {

public R createNative (@PathVariable String orderNo){

Map map = payService.createNative (orderNo);

return R.ok ().data(map) ;

}

}

}

2.编写 service

@Service

public class PayLogServiceImpl extends ServiceImpl PayLogMlapper,PayLog) implements PayLogservice {

@Autavired

private TOrderService orderService;

@Override

public ap createNative (String orderNo){

try {

//根据订单id获取订单信息

Queryr apper<TOrder> wrapper=new Querywrapper<>();

wrapper.eq("" order_no" , orderNo);

TOrder order = orderService.getOne(wrapper );

Map m = new HashMap ();

根据订单参数把订单编号查出来

//1.设置支付参数

m.put (" appid" ,“wx74862e0dfcf69954”);m.put ("mch_id","1558950191"");

m.put ("nonce_str", wXPayUtil.generateNonceStr());

m.put ("body" , order.getCourseTitle());

m.put(" out_trade_no" ,orderNo);m.put("total_fee",order.getTotalFee().multiply(newBigDecimal("100" )).longValue()+"");

m.put("spbill_create_ip","127.0.0.1");m.put("notify_url"","http://guli.shop/api/order/weixinPay/seixinNotifyin");

m.put("trade_type",“NATIVE");

//2、HTTPClient来根据URL访问第三方接口并且传递参数

HttpClientclient=new HttpClient

("https://api.mch.weixin.qq.cam/pay/unifiedorder" );

/ /client设置参数

client.setXmlParam(viKPayUJtil.generateSignedXml(m,“T6m91K73b0kn9g5v426MNKfHQH7X8rKwub"));

client.setHttps(true);

client.post();

l//3、返回第三方的数据

String xml = client.getContent();

Mlap<String,String> resultMap = wXPayUtil.xmlToMlap(xml);

//4、封装返回结果集

Map map = new HashMap<>();

map.put ("out_trade_no" , orderNo);

map .put (" course_id", order. getCourseId());

map.put ("total_fee" , order.getTotalFee());

map.put (result_code" , resultMap.get("result_code" ));

map.put (" code_url",resultMap. get (" code_url"));

//信支付二维码2小时过期,可采取2小时未支付取消订单

//redisTemplate.opsForValue().set(orderNo,map,120,TimeUnit.MINUTES);

return map;

} catch (Exception e) {

e.printStackTrace();

return new HashMap<>();

}

}

}

相关文章
|
XML JSON 缓存
Java实现根据商品ID请求西域商城商品详情数据方法
Java实现根据商品ID请求西域商城商品详情数据方法
|
XML JSON 缓存
Java实现订单ID获取淘宝买到的订单详情数据接口方法
Java实现订单ID获取淘宝买到的订单详情数据接口方法
|
XML JSON 缓存
Java实现订单ID获取淘宝买到的订单列表数据接口方法
Java实现订单ID获取淘宝买到的订单列表数据接口方法
|
XML JSON Java
课程支付功能(生成订单接口1) | 学习笔记
简介:快速学习课程支付功能(生成订单接口1)
174 0
课程支付功能(生成订单接口1) | 学习笔记
|
开发者 微服务
课程支付功能(生成订单接口2) | 学习笔记
简介:快速学习课程支付功能(生成订单接口2)
课程支付功能(生成订单接口2) | 学习笔记
|
消息中间件 数据库 RocketMQ
创建支付订单流程|学习笔记
快速学习创建支付订单流程
340 0
创建支付订单流程|学习笔记
|
消息中间件 算法 Java
创建支付订单实现|学习笔记
快速学习创建支付订单实现
121 0
创建支付订单实现|学习笔记
|
数据库 开发者 微服务
查询订单支付状态接口(2) | 学习笔记
快速学习查询订单支付状态接口(2)
查询订单支付状态接口(2) | 学习笔记
|
开发者
订单催付运行结果| 学习笔记
快速学习订单催付运行结果。
订单催付运行结果| 学习笔记
|
前端开发 JavaScript 开发者
课程支付流程总结 | 学习笔记
简介:快速学习课程支付流程总结
109 0
课程支付流程总结 | 学习笔记