详细代码:PayService.java
/**
* @author 光州大少爷
* @version 1.0
*/
public interface PayService {
/**
* 支付方法
*
* @param payModel
* @return
*/
DataModel pay(DataModel payModel);
/**
* 支付标识
*
* @return
*/
String channelId();
}
WeChat支付服务实现
详细代码:WeChatPayServiceImpl.java
/**
* @author 光州大少爷
* @version 1.0
*/
@Service("weChatPayServiceImpl")
public class WeChatPayServiceImpl implements PayService {
@Override
public DataModel pay(DataModel payModel) {
DataModel payResult = new DataModel();
payResult.setFieldValue("payStatus", "微信支付成功");
return payResult;
}
@Override
public String channelId() {
return "WeChatPay";
}
}
AliPay支付服务实现
详细代码:AliPayServiceImpl.java
/**
* @author 光州大少爷
* @version 1.0
*/
@Service("aliPayServiceImpl")
public class AliPayServiceImpl implements PayService {
@Override
public DataModel pay(DataModel payModel) {
DataModel payResult = new DataModel();
payResult.setFieldValue("payStatus", "支付宝支付成功");
return payResult;
}
@Override
public String channelId() {
return "AliPay";
}
}
Bank支付服务实现
详细代码:PayService.java
/**
* @author 光州大少爷
* @version 1.0
*/
@Service("bankCardPayServiceImpl")
public class BankCardPayServiceImpl implements PayService {
@Override
public DataModel pay(DataModel payModel) {
DataModel payResult = new DataModel();
payResult.setFieldValue("payStatus", "银行卡支付成功");
return payResult;
}
@Override
public String channelId() {
return "BankCardPay";
}
}
支付路由服务PayRouteService.java
详细代码:PayRouteService.java
/**
* @author 光州大少爷
* @version 1.0
*/
@Service
public class PayRouteService {
public Set payServiceSet;
public Map payServiceMap = new HashMap<>();
public PayRouteService(Set payServiceSet) {
this.payServiceSet = payServiceSet;
for (PayService payService : payServiceSet) {
payServiceMap.put(payService.channelId(), payService);
}
}
/**
* 支付方法,统一路由
*
* @param payModel
* @return
*/
public DataModel pay(DataModel payModel) {
PayService payService = payServiceMap.get(payModel.getStringValue("channelId"));
return payService.pay(payModel);
}
}
详细代码:PayController.java
/**
* @author 光州大少爷
* @version 1.0
*/
@RestController
@RequestMapping("/api/pay")
public class PayServiceController extends AbstractBaseController {
@Autowired
private PayRouteService payRouteService;
@RequestMapping(method = RequestMethod.POST, value = "/send")
@ResponseBody
public Map pay(HttpServletRequest request, @RequestBody Map requestMap) {
DataModel resultModel = new DataModel();
try {
DataModel payModel = this.getInputData(requestMap);
DataModel payResult = payRouteService.pay(payModel);
this.handleSuccess(resultModel, payResult);
} catch (ValidationException ve) {
this.handleValidationException(resultModel, ve);
} catch (Exception e) {
this.handleException(resultModel, e);
}
return resultModel;
}
}
页面更新:2024-04-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号