package com.iplatform.pay.support; import com.iplatform.model.po.S_pay_order; import com.iplatform.pay.service.PlatformOrderServiceImpl; import com.walker.infrastructure.utils.DateUtils; import com.walker.pay.CallBackException; import com.walker.pay.NotifyValue; import com.walker.pay.Order; import com.walker.pay.PayChannel; import com.walker.pay.PayStatus; import com.walker.pay.PayType; import com.walker.pay.payunk.PayUnkOrderCallback; import com.walker.pay.payunk.Trans2AlipayResponsePay; public class PayUnkPlatformOrderCallback extends PayUnkOrderCallback { @Override public void onOrderNotify(NotifyValue notifyValue) throws CallBackException { throw new UnsupportedOperationException("未写代码,支付宝转账同步操作,不需要通知,其他根据情况定。"); } @Override protected void doPrepareOrder(Order platformOrder, Trans2AlipayResponsePay responsePay){ logger.info("默认实现: 执行保存'Trans2AlipayResponsePay'订单操作,order={}", platformOrder); S_pay_order s_pay_order = null; PayType payType = platformOrder.getPayType(); if(payType == PayType.PayUnk_BEHALF_ALIPAY_ONE){ // 支付宝个人转账,不需要回调,直接返回同步结果,此时订单支付是确认的。 s_pay_order = this.acquirePlatformOrderAlipaySuccess(platformOrder, responsePay); } else { throw new UnsupportedOperationException("其他支付类型暂未实现保存订单方法:" + payType); } this.orderService.insert(s_pay_order); } private S_pay_order acquirePlatformOrderAlipaySuccess(Order order, Trans2AlipayResponsePay responsePay){ S_pay_order s_pay_order = new S_pay_order(); s_pay_order.setId(order.getId()); s_pay_order.setCreate_time(DateUtils.getDateTimeNumber()); s_pay_order.setOrg_id(0L); s_pay_order.setPay_definition_id(order.getPayDefinitionId()); s_pay_order.setService_provider(order.getServiceProvider().getIndex()); s_pay_order.setVersion(order.getVersion()); s_pay_order.setPay_type(order.getPayType().getIndex()); s_pay_order.setPay_status(PayStatus.INDEX_SUCCESS); s_pay_order.setPay_success_time(s_pay_order.getCreate_time()); s_pay_order.setThird_notify_id("none"); // s_pay_order.setTrade_no(orderResponsePay.getOrderNo()); s_pay_order.setTrade_no(order.getTradeNo()); s_pay_order.setPay_channel(PayChannel.INDEX_PROVIDER_DIRECT); s_pay_order.setTitle(order.getTitle()); s_pay_order.setAttach(order.getAttach()); s_pay_order.setTotal_money(order.getTotalMoney()); s_pay_order.setFee(order.getFee()); s_pay_order.setNonce(order.getNonce()); s_pay_order.setIp(order.getIp()); s_pay_order.setDevice_info(order.getDeviceInfo()); s_pay_order.setBuyer_id(order.getBuyerId()); s_pay_order.setReceiver_id(order.getReceiverId()); // s_pay_order.setThird_pay_info(orderResponsePay.getPayInfo()); s_pay_order.setThird_pay_info(responsePay.getUrl()); return s_pay_order; } public void setOrderService(PlatformOrderServiceImpl orderService) { this.orderService = orderService; } protected PlatformOrderServiceImpl orderService; }