diff --git a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderContactData.java b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderContactData.java
index a16ab37..7be9908 100644
--- a/api/src/main/java/com/ning/billing/payment/api/PaymentProviderContactData.java
+++ b/api/src/main/java/com/ning/billing/payment/api/PaymentProviderContactData.java
@@ -19,6 +19,7 @@ package com.ning.billing.payment.api;
import org.apache.commons.lang.StringUtils;
import com.google.common.base.Objects;
+import com.ning.billing.catalog.api.Currency;
public class PaymentProviderContactData {
private final String firstName;
@@ -26,17 +27,23 @@ public class PaymentProviderContactData {
private final String email;
private final String phoneNumber;
private final String externalKey;
+ private final String locale;
+ private final Currency currency;
public PaymentProviderContactData(String firstName,
String lastName,
String email,
String phoneNumber,
- String externalKey) {
+ String externalKey,
+ String locale,
+ Currency currency) {
this.firstName = StringUtils.substring(firstName, 0, 100);
this.lastName = StringUtils.substring(lastName, 0, 100);
this.email = StringUtils.substring(email, 0, 80);
this.phoneNumber = phoneNumber;
this.externalKey = externalKey;
+ this.locale = locale;
+ this.currency = currency;
}
public String getFirstName() {
@@ -59,12 +66,22 @@ public class PaymentProviderContactData {
return externalKey;
}
+ public String getLocale() {
+ return locale;
+ }
+
+ public Currency getCurrency() {
+ return currency;
+ }
+
public static class Builder {
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
private String externalKey;
+ private String locale;
+ private Currency currency;
public Builder setExternalKey(String externalKey) {
this.externalKey = externalKey;
@@ -91,8 +108,18 @@ public class PaymentProviderContactData {
return this;
}
+ public Builder setLocale(String locale) {
+ this.locale = locale;
+ return this;
+ }
+
+ public Builder setCurrency(Currency currency) {
+ this.currency = currency;
+ return this;
+ }
+
public PaymentProviderContactData build() {
- return new PaymentProviderContactData(firstName, lastName, email, phoneNumber, externalKey);
+ return new PaymentProviderContactData(firstName, lastName, email, phoneNumber, externalKey, locale, currency);
}
}
@@ -102,7 +129,9 @@ public class PaymentProviderContactData {
lastName,
email,
phoneNumber,
- externalKey);
+ externalKey,
+ locale,
+ currency);
}
@Override
@@ -117,7 +146,9 @@ public class PaymentProviderContactData {
Objects.equal(lastName, other.lastName) &&
Objects.equal(email, other.email) &&
Objects.equal(phoneNumber, other.phoneNumber) &&
- Objects.equal(externalKey, other.externalKey);
+ Objects.equal(externalKey, other.externalKey) &&
+ Objects.equal(locale, other.locale) &&
+ Objects.equal(currency, other.currency);
}
}
return false;
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 d396c8e..33e963d 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
@@ -116,8 +116,8 @@ public class DefaultPaymentApi implements PaymentApi {
@Override
public Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account) {
- // TODO Auto-generated method stub
- return null;
+ final PaymentProviderPlugin plugin = getPaymentProviderPlugin(null);
+ return plugin.createPaymentProviderAccount(account);
}
@Override
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
index 62557f1..4f19eb7 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPlugin.java
@@ -29,7 +29,7 @@ import com.ning.billing.payment.api.PaypalPaymentMethodInfo;
public interface PaymentProviderPlugin {
Either<PaymentError, PaymentInfo> processInvoice(Account account, Invoice invoice);
- Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(Account account);
+ Either<PaymentError, PaymentProviderAccount> createPaymentProviderAccount(PaymentProviderAccount account);
Either<PaymentError, String> addPaypalPaymentMethod(String accountId, PaypalPaymentMethodInfo paypalPaymentMethod);
Either<PaymentError, PaymentInfo> getPaymentInfo(String paymentId);