查询订单支付状态接口(2) | 学习笔记

简介: 快速学习查询订单支付状态接口(2)

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

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


查询订单支付状态接口(2)


内容介绍:

一、查询支付状态接口

二、总结

三、操作过程


一、查询支付状态接口

在 service 方法中传的是 map 集合,也就是在查订单状态时返回的 map 集合,在map 集合中有很多数据,比如输出有 devago 看结果,在数据中有一个值专门返回订单id或者订单号

//从 map 获取订单号

String orderNo = map.get(“out_trade_no”);

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

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

wrapper.eq(column:”order_no”,orderNo);

Order order = orderService.getOne(wrapper);

//更新订单表订单状态

if(order.getStatus().inValue() == 1){ return;)

order.setStatus(1)://1代表已支付

orderService.updateById(order);

//向支付表添加支付记录

PayLog payLog = new PayLog();

payLog.setOrderNo(orderNo);//订单号

payLog.setPayTime(new Date());//订单完成时间

payLog.setPayType(1);//支付类型 1微信

payLog.setTotalFee(order.getTotalFee());//总金额(分)

payLog.setTradeState(map.get(“trade_state”));//支付状态

payLog.setTransactionId(map.get(“transaction_id”));//流水号

payLog.setAttr(JSONObject.toJSONString(map));

baseMapper.insert(payLog);

baseMapper.insert

}

image.png

例如 orderNo 表示订单号,payTime 表示支付完成时间,payType是支付类型,getTotalFee 是总金额,transaction_id 是订单流水号,支付状态和流水号不需要我们设置,是固定的,jsonobject 表示除了支付状态和流水号之外还有其他值,其他值也可以存到数据库中,最终存到 attr 中。


二、总结

第一部分:生成二维码,二维码在 map 中有 url,还有其他值,在页面中下载二维码能生成出来。

  1. 查询订单状态根据订单号查询,先调 queryPayStatus 方法,在这个方法中调微信固定的地址,返回的状态使用 map 进行返回。

通过 map 可以判断,如果 map 为空,则是出错了,如果不为空,去 trade_state 值,如果为 success,则是支付成功,接下来添加记录,更改状态。


三、操作过程

为了方便操作,在后面看的更明显,把值做个输出。

//生成微信支付二维码接口

//参数是订单号

@GetMapping(“creatNative/{orderNo}”)

public R createNative(@PathVariable String_orderNo)_{

//返回信息,包含二维码地址,还有其他信息

Map map = payLogService.creatNative(orderNo);

System.out.println(“****返回二维码map集合:”+map);

return R.ok(),data(map):

}

//查询订单支付状态

//参数:订单号,根据订单号查询 支付状态

@GetMapping(“queryPayStatus/{orderNo}”)

public R querPayStatus(@PathVariable String orderNo){

Map<String,String>map=payLogService.queryPayStatus(orderNo);

System.out.println(“*****订单状态map集合:{“+map};

if(map == null){

return R.error().message(“支付出错了”);

}

相关文章
|
NoSQL Java Redis
服务端如何防止订单重复支付!
如图是一个简化的下单流程,首先是提交订单,然后是支付。 支付的话,一般是走支付网关(支付中心),然后支付中心与第三方支付渠道(微信、支付宝、银联)交互。 支付成功以后,异步通知支付中心,支付中心更新自身支付订单状态,再通知业务应用,各业务再更新各自订单状态。
服务端如何防止订单重复支付!
|
4月前
|
关系型数据库 MySQL 数据库
生成订单的过程------支付系统21------支付宝支付----统一收单下单并支付页面接口----创建订单,下订单,我们要在我们数据库的订单表中,设置订单,订单表常用数据库设置格式
生成订单的过程------支付系统21------支付宝支付----统一收单下单并支付页面接口----创建订单,下订单,我们要在我们数据库的订单表中,设置订单,订单表常用数据库设置格式
支付系统42----支付宝支付-定时查单-订单已支付,如果我们在定时查单的状态中,我们明明已经支付的订单,却在本地状态中显示没有支付,这是因我们的异步通知因为种种原因没有接受到,支付宝端成功,本地失败
支付系统42----支付宝支付-定时查单-订单已支付,如果我们在定时查单的状态中,我们明明已经支付的订单,却在本地状态中显示没有支付,这是因我们的异步通知因为种种原因没有接受到,支付宝端成功,本地失败
支付系统22------统一收单下单并支付页面接口-----调用支付宝接口,创建订单后期出现异常,能够打印出来的方法
支付系统22------统一收单下单并支付页面接口-----调用支付宝接口,创建订单后期出现异常,能够打印出来的方法
|
XML JSON 缓存
Java实现订单ID获取淘宝买到的订单详情数据接口方法
Java实现订单ID获取淘宝买到的订单详情数据接口方法
|
XML JSON 缓存
Java实现订单ID获取淘宝买到的订单列表数据接口方法
Java实现订单ID获取淘宝买到的订单列表数据接口方法
|
存储 安全 API
电商平台订单接口调用注意事项
电商平台订单接口调用注意事项
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
ERP,仓储系统官方订单详情接口trade.fullinfo.get( 获取单笔交易的详细信息 )
|
前端开发 应用服务中间件 API
订单异步通知修改订单状态
订单异步通知修改订单状态
订单异步通知修改订单状态
|
消息中间件 数据库 RocketMQ
创建支付订单流程|学习笔记
快速学习创建支付订单流程
360 0
创建支付订单流程|学习笔记