shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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;
}