diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index 77eeadc..8bb7692 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -17,7 +17,6 @@
package com.ning.billing.payment.api;
import java.math.BigDecimal;
-import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
diff --git a/payment/src/main/java/com/ning/billing/payment/RequestProcessor.java b/payment/src/main/java/com/ning/billing/payment/RequestProcessor.java
index 200eb74..e19b92d 100644
--- a/payment/src/main/java/com/ning/billing/payment/RequestProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/RequestProcessor.java
@@ -55,10 +55,11 @@ public class RequestProcessor {
public static final String PAYMENT_PROVIDER_KEY = "paymentProvider";
+ /*
private final static int NB_PAYMENT_THREADS = 3; // STEPH
private final static String PAYMENT_GROUP_NAME = "payment-grp";
private final static String PAYMENT_TH_NAME = "payment-th";
-
+*/
private final AccountUserApi accountUserApi;
private final PaymentApi paymentApi;
diff --git a/payment/src/main/java/com/ning/billing/payment/retry/FailedPaymentRetryService.java b/payment/src/main/java/com/ning/billing/payment/retry/FailedPaymentRetryService.java
index 405be41..37b4632 100644
--- a/payment/src/main/java/com/ning/billing/payment/retry/FailedPaymentRetryService.java
+++ b/payment/src/main/java/com/ning/billing/payment/retry/FailedPaymentRetryService.java
@@ -28,6 +28,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
+import com.ning.billing.account.api.Account;
+import com.ning.billing.account.api.AccountApiException;
+import com.ning.billing.account.api.AccountUserApi;
import com.ning.billing.config.PaymentConfig;
import com.ning.billing.payment.api.PaymentApi;
import com.ning.billing.payment.api.PaymentApiException;
@@ -52,14 +55,17 @@ public class FailedPaymentRetryService implements RetryService {
private final NotificationQueueService notificationQueueService;
private final PaymentConfig config;
private final PaymentApi paymentApi;
+ private final AccountUserApi accountUserApi;
private NotificationQueue retryQueue;
@Inject
- public FailedPaymentRetryService(Clock clock,
- NotificationQueueService notificationQueueService,
- PaymentConfig config,
- PaymentApi paymentApi) {
+ public FailedPaymentRetryService(final AccountUserApi accountUserApi,
+ final Clock clock,
+ final NotificationQueueService notificationQueueService,
+ final PaymentConfig config,
+ final PaymentApi paymentApi) {
+ this.accountUserApi = accountUserApi;
this.clock = clock;
this.notificationQueueService = notificationQueueService;
this.paymentApi = paymentApi;
@@ -109,13 +115,20 @@ public class FailedPaymentRetryService implements RetryService {
private void retry(UUID paymentAttemptId, CallContext context) {
try {
PaymentInfoEvent paymentInfo = paymentApi.getPaymentInfoForPaymentAttemptId(paymentAttemptId);
+ if (paymentInfo == null) {
+ log.error(String.format("Failed to retry payment for paymentId %s: no such PaymentInfo", paymentAttemptId));
+ return;
+ }
if (paymentInfo != null && PaymentStatus.Processed.equals(PaymentStatus.valueOf(paymentInfo.getStatus()))) {
return;
}
- // STEPH
- paymentApi.createPaymentForPaymentAttempt(null, paymentAttemptId, context);
+
+ Account account = accountUserApi.getAccountById(paymentInfo.getAccountId());
+ paymentApi.createPaymentForPaymentAttempt(account.getExternalKey(), paymentAttemptId, context);
} catch (PaymentApiException e) {
log.error(String.format("Failed to retry payment for %s", paymentAttemptId), e);
+ } catch (AccountApiException e) {
+ log.error(String.format("Failed to retry payment for %s", paymentAttemptId), e);
}
}
}
diff --git a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
index 70ace94..e614c74 100644
--- a/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
+++ b/payment/src/test/java/com/ning/billing/payment/provider/MockPaymentProviderPlugin.java
@@ -173,7 +173,6 @@ public class MockPaymentProviderPlugin implements PaymentProviderPlugin {
accounts.put(account.getAccountKey(),
new PaymentProviderAccount.Builder()
.copyFrom(account)
- // STEPH
.setDefaultPaymentMethod("paypal")
.build());
List<PaymentMethodInfo> paymentMethodsToUpdate = new ArrayList<PaymentMethodInfo>();