diff --git a/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java b/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java index ef00a807..c250d8a6 100644 --- a/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java +++ b/bubble-server/src/main/java/bubble/cloud/payment/PaymentDriverBase.java @@ -60,7 +60,7 @@ public abstract class PaymentDriverBase extends CloudServiceDriverBase imp return bill; } - @Override public boolean authorize(BubblePlan plan, AccountPlan accountPlan, AccountPaymentMethod paymentMethod) { + @Override public boolean authorize(BubblePlan plan, AccountPaymentMethod paymentMethod) { return true; } diff --git a/bubble-server/src/main/java/bubble/cloud/payment/PaymentServiceDriver.java b/bubble-server/src/main/java/bubble/cloud/payment/PaymentServiceDriver.java index dc83eff5..553dc52b 100644 --- a/bubble-server/src/main/java/bubble/cloud/payment/PaymentServiceDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/payment/PaymentServiceDriver.java @@ -17,7 +17,7 @@ public interface PaymentServiceDriver { default PaymentValidationResult claim(AccountPaymentMethod paymentMethod) { return notSupported("claim"); } default PaymentValidationResult claim(AccountPlanPaymentMethod planPaymentMethod) { return notSupported("claim"); } - boolean authorize(BubblePlan plan, AccountPlan accountPlan, AccountPaymentMethod paymentMethod); + boolean authorize(BubblePlan plan, AccountPaymentMethod paymentMethod); boolean purchase(String accountPlanUuid, String paymentMethodUuid, String billUuid); diff --git a/bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java b/bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java index 9c79fac7..2a7c29b1 100644 --- a/bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java @@ -52,12 +52,12 @@ public class DelegatedPaymentDriver extends DelegatedCloudServiceDriverBase impl new PaymentMethodClaimNotification(cloud.getName(), planPaymentMethod)); } - @Override public boolean authorize(BubblePlan plan, AccountPlan accountPlan, AccountPaymentMethod paymentMethod) { + @Override public boolean authorize(BubblePlan plan, AccountPaymentMethod paymentMethod) { final BubbleNode delegate = getDelegateNode(); final PaymentResult result = notificationService.notifySync(delegate, payment_driver_authorize, new PaymentNotification() .setCloud(cloud.getName()) - .setAccountPlanUuid(accountPlan.getUuid()) + .setPlanUuid(plan.getUuid()) .setPaymentMethodUuid(paymentMethod.getUuid())); return processResult(result); } diff --git a/bubble-server/src/main/java/bubble/cloud/payment/stripe/StripePaymentDriver.java b/bubble-server/src/main/java/bubble/cloud/payment/stripe/StripePaymentDriver.java index b08a3233..54095116 100644 --- a/bubble-server/src/main/java/bubble/cloud/payment/stripe/StripePaymentDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/payment/stripe/StripePaymentDriver.java @@ -14,6 +14,7 @@ import com.stripe.model.Customer; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.cobbzilla.wizard.cache.redis.RedisService; +import org.cobbzilla.wizard.validation.SimpleViolationException; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; @@ -123,9 +124,8 @@ public class StripePaymentDriver extends PaymentDriverBase { final PaymentServiceDriver paymentDriver = paymentService.getPaymentDriver(configuration); if (paymentDriver.getPaymentMethodType().requiresAuth()) { final BubblePlan plan = planDAO.findByUuid(accountPlan.getPlan()); - paymentDriver.authorize(plan, accountPlan, accountPlan.getPaymentMethod()); + paymentDriver.authorize(plan, accountPlan.getPaymentMethod()); } return super.preCreate(accountPlan); diff --git a/bubble-server/src/main/java/bubble/notify/payment/NotificationHandler_payment_driver_authorize.java b/bubble-server/src/main/java/bubble/notify/payment/NotificationHandler_payment_driver_authorize.java index 19eb96ca..636f8f53 100644 --- a/bubble-server/src/main/java/bubble/notify/payment/NotificationHandler_payment_driver_authorize.java +++ b/bubble-server/src/main/java/bubble/notify/payment/NotificationHandler_payment_driver_authorize.java @@ -4,7 +4,6 @@ import bubble.dao.bill.AccountPaymentMethodDAO; import bubble.dao.bill.AccountPlanDAO; import bubble.dao.bill.BubblePlanDAO; import bubble.model.bill.AccountPaymentMethod; -import bubble.model.bill.AccountPlan; import bubble.model.bill.BubblePlan; import bubble.model.cloud.CloudService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,11 +15,9 @@ public class NotificationHandler_payment_driver_authorize extends NotificationHa @Autowired private AccountPlanDAO accountPlanDAO; @Override public boolean handlePaymentRequest(PaymentNotification paymentNotification, CloudService paymentService) { - // todo: this returns null because the AccountPlan has not yet been created.... - final AccountPlan accountPlan = accountPlanDAO.findByUuid(paymentNotification.getAccountPlanUuid()); - final BubblePlan plan = planDAO.findByUuid(accountPlan.getPlan()); + final BubblePlan plan = planDAO.findByUuid(paymentNotification.getPlanUuid()); final AccountPaymentMethod paymentMethod = paymentMethodDAO.findByUuid(paymentNotification.getPaymentMethodUuid()); - return paymentService.getPaymentDriver(configuration).authorize(plan, accountPlan, paymentMethod); + return paymentService.getPaymentDriver(configuration).authorize(plan, paymentMethod); } } diff --git a/bubble-server/src/main/java/bubble/notify/payment/PaymentNotification.java b/bubble-server/src/main/java/bubble/notify/payment/PaymentNotification.java index e36f3001..039e2066 100644 --- a/bubble-server/src/main/java/bubble/notify/payment/PaymentNotification.java +++ b/bubble-server/src/main/java/bubble/notify/payment/PaymentNotification.java @@ -10,6 +10,7 @@ import lombok.experimental.Accessors; public class PaymentNotification extends SynchronousNotification { @Getter @Setter private String cloud; + @Getter @Setter private String planUuid; @Getter @Setter private String accountPlanUuid; @Getter @Setter private String paymentMethodUuid; @Getter @Setter private String billUuid; diff --git a/bubble-server/src/test/resources/models/tests/payment/pay_credit.json b/bubble-server/src/test/resources/models/tests/payment/pay_credit.json index 5776771e..55c28456 100644 --- a/bubble-server/src/test/resources/models/tests/payment/pay_credit.json +++ b/bubble-server/src/test/resources/models/tests/payment/pay_credit.json @@ -161,7 +161,7 @@ }, { - "before": "sleep 5s", + "before": "sleep 15s", "comment": "verify account plans, should be one", "request": { "uri": "me/plans" }, "response": {