| | |
| | | import com.ks.vip.pojo.DTO.PayWayInfoDTO; |
| | | import com.ks.vip.pojo.DTO.VipOrderDTO; |
| | | import com.ks.vip.pojo.Enums.OrderTypeEnum; |
| | | import com.ks.vip.pojo.Enums.PayWayEnum; |
| | | import com.ks.vip.query.VipOrderQuery; |
| | | import com.ks.vip.service.VipCenterService; |
| | | import com.ks.vip.service.VipComboService; |
| | | import com.ks.vip.service.VipOrederPayService; |
| | | import com.ks.vip.service.VipOrederService; |
| | | import com.ks.vip.service.manager.RedisManager; |
| | | import com.ks.vip.util.Constant; |
| | | import com.ks.vip.util.PayUtil; |
| | | import org.apache.dubbo.config.annotation.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.yeshi.utils.StringUtil; |
| | |
| | | @Resource |
| | | private VipCenterService vipCenterService; |
| | | |
| | | @Resource |
| | | private RedisManager redisManager; |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public PayWayInfoDTO payOrder(VipOrder order) { |
| | | String title = Constant.ORDER_PAY_TITLE; |
| | | String orderId = order.getId() + ""; |
| | | switch (order.getPayWay()) { |
| | | case "alipay": |
| | | String formAlipay = PayUtil.getVipChargeAlipayForm(orderId, title, orderId, order.getPayMoney()); |
| | | //暂存2分钟 |
| | | String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis()); |
| | | redisManager.cacheCommonString(id, formAlipay, 120); |
| | | String payUrl = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id; |
| | | return new PayWayInfoDTO(PayWayEnum.alipay.getWay(), payUrl); |
| | | case "weChat": |
| | | try{ |
| | | String formWX = PayUtil.createWXOrder(orderId, null, orderId,order.getPayMoney() ,title); |
| | | //暂存2分钟 |
| | | String idwx = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis()); |
| | | redisManager.cacheCommonString(idwx, formWX, 120); |
| | | String payUrlwx = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + idwx; |
| | | return new PayWayInfoDTO(PayWayEnum.weChat.getWay(), payUrlwx); |
| | | } catch (Exception e) { |
| | | |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public VipOrder checkOrderPayState(String id) { |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public VipOrder checkOrderPayState(Long id) { |
| | | VipOrder vipOrder = vipOrderMapper.selectByPrimaryKey(id); |
| | | if (vipOrder == null || vipOrder.getState() == VipOrder.STATE_PAY) { |
| | | return vipOrder; |
| | | } |
| | | |
| | | |
| | | |
| | | // OrderRecord record = vipOrderRecordDao.find(OrderRecord.class, id); |
| | | // if (record.getState() == OrderRecord.STATE_PAY) |
| | | // return record; |
| | | // |
| | | // switch (record.getPayWay()) { |
| | | // case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN: |
| | | // case OrderRecord.PAY_WAY_ALIPAY: { |
| | | // //支付宝 |
| | | // AlipayTradeQueryResponse res = null; |
| | | // try { |
| | | // res = AlipayH5PayUtil.queryOrder(VipUtil.getAlipayApp(), VIPOrderUtil.getOutOrderNo(record.getOrderType(), id), null); |
| | | // //支付成功 |
| | | // if (res.isSuccess() && "TRADE_SUCCESS".equalsIgnoreCase(res.getTradeStatus())) { |
| | | // try { |
| | | // return paySuccess(id, OrderRecord.PAY_WAY_ALIPAY, new BigDecimal(res.getTotalAmount()), new Date()); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // } catch (AlipayApiException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // |
| | | // break; |
| | | // case OrderRecord.PAY_WAY_WX_GOLDCORN: |
| | | // case OrderRecord.PAY_WAY_WX: { |
| | | // //微信 |
| | | // try { |
| | | // WXPayOrderInfoV3 info = WXPayV3Util.getPayOrderInfo(VIPOrderUtil.getOutOrderNo(record.getOrderType(), id), VipUtil.getWXAPP()); |
| | | // if (info != null && info.getTrade_state().equalsIgnoreCase("SUCCESS")) { |
| | | // paySuccess(id, record.getPayWay(), new BigDecimal(info.getAmount().getPayer_total()).divide(new BigDecimal(100), 2, RoundingMode.FLOOR), new Date()); |
| | | // return record; |
| | | // } |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | |
| | | |
| | | |
| | | return null; |
| | | } |
| | | |