| | |
| | | baseWarpper.setId(orderCrossCity.getId()); |
| | | return ResultUtil.success(baseWarpper); |
| | | } |
| | | |
| | | @Override |
| | | public ResultUtil orderOnBehalfPay(int crossCityOrderId, int type, Integer driverId) throws Exception { |
| | | OrderCrossCity order = orderCrossCityMapper.selectById(crossCityOrderId); |
| | | if (order == null) { |
| | | return ResultUtil.error("订单不存在"); |
| | | } |
| | | if (!order.getDriverId().equals(driverId)) { |
| | | return ResultUtil.error("您没有权限支付此订单"); |
| | | } |
| | | if (order.getState() != 7) { |
| | | return ResultUtil.error("订单不在待支付,无法完成订单"); |
| | | } |
| | | if (type == 1) { |
| | | UserInfo userInfo = userInfoMapper.selectById(order.getUserId()); |
| | | if (userInfo == null) { |
| | | return ResultUtil.error("乘客不存在"); |
| | | } |
| | | if (ToolUtil.isEmpty(userInfo.getAppletsOpenId())) { |
| | | return ResultUtil.errorOpenId("乘客未绑定微信小程序openid,无法发起微信支付"); |
| | | } |
| | | String outTradeNo = buildCbyzxOnBehalfOutTradeNo(crossCityOrderId); |
| | | JSONObject response = cbyzxOrderPayHelper.createOrder( |
| | | order.getUserId(), |
| | | userInfo.getAppletsOpenId(), |
| | | outTradeNo, |
| | | order.getOrderMoney() |
| | | ); |
| | | if (!cbyzxOrderPayHelper.isCreateSuccess(response)) { |
| | | return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response); |
| | | } |
| | | paymentRecordService.saveData(1, order.getDriverId(), 2, crossCityOrderId, 3, 1, order.getOrderMoney(), outTradeNo, 1); |
| | | return ResultUtil.success(response); |
| | | } else if (type == 3) { |
| | | order.setState(2); |
| | | orderCrossCityMapper.updateById(order); |
| | | |
| | | |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(driverId, "跨城出行订单", order.getOrderMoney(), 2, 1, 2, 3, order.getId()); |
| | | return ResultUtil.success(); |
| | | } |
| | | return ResultUtil.error("支付失败"); |
| | | } |
| | | |
| | | /** |
| | | * 创博优代客支付单号,增加业务前缀便于统一回调路由。 |
| | | */ |
| | | private String buildCbyzxOnBehalfOutTradeNo(Integer orderId) throws Exception { |
| | | return "onBehalf_" + orderId + "_3_" + UUIDUtil.getRandomCode(5); |
| | | } |
| | | } |