package com.walker.pay.allinpaycloud.generator; import com.allinpay.sdk.bean.OpenResponse; import com.walker.infrastructure.arguments.Variable; import com.walker.pay.Order; import com.walker.pay.PayContext; import com.walker.pay.ResponsePay; import com.walker.pay.allinpaycloud.BaseOrderGenerator; import com.walker.pay.allinpaycloud.Constants; import com.walker.pay.allinpaycloud.util.OrderUtils; import java.util.Map; /** * 快捷支付订单生成器实现。 * @author 时克英 * @date 2023-02-20 */ public class BankCardOrderGenerator extends BaseOrderGenerator { // public BankCardOrderGenerator(RestTemplate restTemplate){} @Override protected ResponsePay invoke(PayContext payContext, Order platformOrder) { this.checkSdkClient(); OpenResponse response = this.getSdkClient().consumeApply(platformOrder); if(response == null){ throw new RuntimeException("调用'通商云'订单返回空数据, orderId = " + platformOrder.getId()); } // BankCardResponsePay responseValue = new BankCardResponsePay(); OrderResponsePay responseValue = new OrderResponsePay(); if (!Constants.SUB_CODE_OK.equals(response.getSubCode())) { responseValue.setStatus(false); responseValue.setMessage(response.getSubMsg()); logger.debug("快捷支付订单返回失败:{}", response.getSubMsg()); return responseValue; } if(logger.isDebugEnabled()){ logger.debug(response.getData()); } try { responseValue = OrderUtils.getOrderResponsePay(response.getData()); if(responseValue == null){ throw new RuntimeException("orderResponsePay = null!"); } return responseValue; } catch (Exception e) { logger.error(e.getMessage(), e); throw new RuntimeException("调用'通商云'订单数据转换对象失败, orderId = " + platformOrder.getId()); } } @Deprecated @Override protected ResponsePay invoke(String providerPayType, Order platformOrder, Map configuration) { throw new UnsupportedOperationException("方法废弃!"); } }