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;
|
}
|