| | |
| | | private VipCenterService vipCenterService; |
| | | |
| | | |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException, VIPException, PPTVException, VideoBuyRecordException { |
| | | String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); |
| | | switch (record.getPayWay()) { |
| | | case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN: |
| | | try { |
| | | goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); |
| | | } catch (Exception e) { |
| | | throw new GoldCornException(1, "影视豆扣除出错"); |
| | | } |
| | | paySuccess(record.getId(), OrderRecord.PAY_WAY_GOLDCORN, null, new Date()); |
| | | |
| | | orderLogger.info("订单影视豆支付成功:id-{}", record.getId()); |
| | | case OrderRecord.PAY_WAY_ALIPAY: { |
| | | if (record.getMoney() != null && record.getMoney().compareTo(new BigDecimal(0)) == 0) { |
| | | return new PayWayInfoDTO(0, VipUtil.getPaySuccessUrl(record.getId())); |
| | | } |
| | | //生成支付宝支付订单 |
| | | String form = VipUtil.getVipChargeAlipayForm(record.getId(), record.getOrderType(), orderNo, record.getMoney()); |
| | | //暂存2分钟 |
| | | String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis()); |
| | | redisManager.cacheCommonString(id, form, 120); |
| | | String payUrl = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id; |
| | | orderLogger.info("订单创建支付宝支付链接成功:id-{} 链接-{}", record.getId(), payUrl); |
| | | return new PayWayInfoDTO(OrderRecord |
| | | .PAY_WAY_ALIPAY, payUrl); |
| | | } |
| | | case OrderRecord.PAY_WAY_WX_GOLDCORN: |
| | | try { |
| | | goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); |
| | | } catch (){ |
| | | } |
| | | public PayWayInfoDTO payOrder(VipOrder order) { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public OrderRecord checkOrderPayState(String id) { |
| | | 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(); |
| | | } |
| | | public VipOrder checkOrderPayState(String id) { |
| | | return null; |
| | | } |
| | | |
| | | 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 record; |
| | | |
| | | } |
| | | // @Transactional(rollbackFor = Exception.class) |
| | | // @Override |
| | | // public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException, VIPException, PPTVException, VideoBuyRecordException { |
| | | // String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); |
| | | // switch (record.getPayWay()) { |
| | | // case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN: |
| | | // try { |
| | | // goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); |
| | | // } catch (Exception e) { |
| | | // throw new GoldCornException(1, "影视豆扣除出错"); |
| | | // } |
| | | // paySuccess(record.getId(), OrderRecord.PAY_WAY_GOLDCORN, null, new Date()); |
| | | // |
| | | // case OrderRecord.PAY_WAY_ALIPAY: { |
| | | // if (record.getMoney() != null && record.getMoney().compareTo(new BigDecimal(0)) == 0) { |
| | | // return new PayWayInfoDTO(0, VipUtil.getPaySuccessUrl(record.getId())); |
| | | // } |
| | | // //生成支付宝支付订单 |
| | | // String form = VipUtil.getVipChargeAlipayForm(record.getId(), record.getOrderType(), orderNo, record.getMoney()); |
| | | // //暂存2分钟 |
| | | // String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis()); |
| | | // redisManager.cacheCommonString(id, form, 120); |
| | | // String payUrl = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id; |
| | | // orderLogger.info("订单创建支付宝支付链接成功:id-{} 链接-{}", record.getId(), payUrl); |
| | | // return new PayWayInfoDTO(OrderRecord |
| | | // .PAY_WAY_ALIPAY, payUrl); |
| | | // } |
| | | // case OrderRecord.PAY_WAY_WX_GOLDCORN: |
| | | // try { |
| | | // goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); |
| | | // } catch (){ |
| | | // } |
| | | // } |
| | | |
| | | |
| | | |
| | | // @Transactional(rollbackFor = Exception.class) |
| | | // @Override |
| | | // public OrderRecord checkOrderPayState(String id) { |
| | | // 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 record; |
| | | // |
| | | // } |
| | | } |