我正在致力于将Braintree支付集成到基于Spring-MVC的应用程序中。我们的应用程序中有订阅,按月收费,除非用户取消。但是,在某些情况下,下一个结算周期可能无法付款,因此我们想取消所提供的服务。
我采用的方法是获取当前处于活动状态的所有订阅的列表,并跟踪其状态。基于此,我们要么让该服务存在,要么运行取消代码。 这种方法足以满足下面提到的方法吗?
代码:
@Override
@Scheduled(cron = "0 4 5 * * ?")
public void checkIfSubscriptionIsActive() {
List<Payment> paymentList = this.paymentDAO.getAllPayments();
for(Payment payment : paymentList){
Subscription subscription = gateway.subscription().find(payment.getPaypalId());
if(subscription!=null){
Subscription.Status status = subscription.getStatus();
if(status!=null){
if(status.toString().equals("Canceled")||(status.toString().equals("Expired"))||
(status.toString().equals("Past Due"))||(status.toString().equals("Pending"))||
(status.toString().equals("Unrecognized"))){
//Cancel service code
}
}
}
}
}