1:下面是简单生成订单和支付的流程
后端实现
1: 首先开发 生成订单接口,根据订单查询接口,
生成微信支付的二维码的接口,查询订单支付的状态的接口
@Api(tags="订单接口")
@RestController
@RequestMapping("/orderservice/order")
@CrossOrigin
public class EduOrderController {
@Autowired
private EduOrderService eduOrderService;
/**
* 创建订单
* @param courseId
* @param request
* @return
*/
@ApiOperation(value = "创建订单接口")
@PostMapping("createdOrder/{courseId}")
public R createdOrder(
@ApiParam(name="courseId" , value = "课程id",defaultValue = "")
@PathVariable(value = "courseId") String courseId,HttpServletRequest request){
String orderNo = eduOrderService.createdOrder(courseId,request);
return R.ok().data("orderId",orderNo);
}
/**
* 根据订单号查询订单信息
* @param orderNo
* @return
*/
@ApiOperation("根据订单id获取订单信息")
@GetMapping("getOrder/{orderNo}")
public R getOrder(
@ApiParam(value = "orderNo", name="订单号" ,defaultValue = "")
@PathVariable(value = "orderNo") String orderNo){
QueryWrapper<EduOrder> queryWrapper = new QueryWrapper<EduOrder>();
queryWrapper.eq("order_no",orderNo);
EduOrder one = eduOrderService.getOne(queryWrapper);
return R.ok().data("data",one);
}
}
@Api(tags = "支付日志接口")
@RestController
@RequestMapping("/orderservice/paylog")
@CrossOrigin
public class EduPayLogController {
@Autowired
private EduPayLogService eduPayLogService;
//生成微信支付二维码接口
//参数是订单号
@GetMapping("createNative/{orderNo}")
public R createNative(@PathVariable String orderNo) {
//返回信息,包含二维码地址,还有其他需要的信息
Map map = eduPayLogService.createNatvie(orderNo);
System.out.println("****返回二维码map集合:"+map);
return R.ok().data(map);
}
//查询订单支付状态
//参数:订单号,根据订单号查询 支付状态
@GetMapping("queryPayStatus/{orderNo}")
public R queryPayStatus(@PathVariable String orderNo) {
Map<String,String> map = eduPayLogService.queryPayStatus(orderNo);
System.out.println("*****查询订单状态map集合:"+map);
if(map == null) {
return R.error().message("支付出错了");
}
//如果返回map里面不为空,通过map获取订单状态
if(map.get("trade_state").equals("SUCCESS")) {//支付成功
//添加记录到支付表,更新订单表订单状态
eduPayLogService.updateOrdersStatus(map);
return R.ok().message("支付成功");
}
return R.ok().code(25000).message("支付中");
}
}
前台实现:
参考pages/orders和pay下面的文件