Add an "extra_info" text area for PayPal

This commit is contained in:
walkerp07 2024-07-06 20:01:54 -04:00 committed by woodser
parent 31ce183c83
commit 8bf8144709
9 changed files with 79 additions and 6 deletions

View file

@ -410,6 +410,8 @@ public class Offer implements NetworkPayload, PersistablePayload {
return getExtraDataMap().get(OfferPayload.PAY_BY_MAIL_EXTRA_INFO);
else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.AUSTRALIA_PAYID_EXTRA_INFO))
return getExtraDataMap().get(OfferPayload.AUSTRALIA_PAYID_EXTRA_INFO);
else if (getExtraDataMap() != null && getExtraDataMap().containsKey(OfferPayload.PAYPAL_EXTRA_INFO))
return getExtraDataMap().get(OfferPayload.PAYPAL_EXTRA_INFO);
else
return "";
}

View file

@ -100,6 +100,7 @@ public final class OfferPayload implements ProtectedStoragePayload, ExpirablePay
public static final String F2F_EXTRA_INFO = "f2fExtraInfo";
public static final String PAY_BY_MAIL_EXTRA_INFO = "payByMailExtraInfo";
public static final String AUSTRALIA_PAYID_EXTRA_INFO = "australiaPayidExtraInfo";
public static final String PAYPAL_EXTRA_INFO = "paypalExtraInfo";
// Comma separated list of ordinal of a haveno.common.app.Capability. E.g. ordinal of
// Capability.SIGNED_ACCOUNT_AGE_WITNESS is 11 and Capability.MEDIATION is 12 so if we want to signal that maker

View file

@ -40,6 +40,7 @@ import static haveno.core.offer.OfferPayload.CAPABILITIES;
import static haveno.core.offer.OfferPayload.F2F_CITY;
import static haveno.core.offer.OfferPayload.F2F_EXTRA_INFO;
import static haveno.core.offer.OfferPayload.PAY_BY_MAIL_EXTRA_INFO;
import static haveno.core.offer.OfferPayload.PAYPAL_EXTRA_INFO;
import static haveno.core.offer.OfferPayload.REFERRAL_ID;
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF;
import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF_ENABLED_VALUE;
@ -47,6 +48,7 @@ import static haveno.core.offer.OfferPayload.XMR_AUTO_CONF_ENABLED_VALUE;
import haveno.core.payment.AustraliaPayidAccount;
import haveno.core.payment.F2FAccount;
import haveno.core.payment.PayByMailAccount;
import haveno.core.payment.PayPalAccount;
import haveno.core.payment.PaymentAccount;
import haveno.core.provider.price.MarketPrice;
import haveno.core.provider.price.PriceFeedService;
@ -200,6 +202,10 @@ public class OfferUtil {
extraDataMap.put(PAY_BY_MAIL_EXTRA_INFO, ((PayByMailAccount) paymentAccount).getExtraInfo());
}
if (paymentAccount instanceof PayPalAccount) {
extraDataMap.put(PAYPAL_EXTRA_INFO, ((PayPalAccount) paymentAccount).getExtraInfo());
}
if (paymentAccount instanceof AustraliaPayidAccount) {
extraDataMap.put(AUSTRALIA_PAYID_EXTRA_INFO, ((AustraliaPayidAccount) paymentAccount).getExtraInfo());
}

View file

@ -62,6 +62,7 @@ public final class PayPalAccount extends PaymentAccount {
PaymentAccountFormField.FieldId.EMAIL_OR_MOBILE_NR_OR_USERNAME,
PaymentAccountFormField.FieldId.TRADE_CURRENCIES,
PaymentAccountFormField.FieldId.ACCOUNT_NAME,
PaymentAccountFormField.FieldId.EXTRA_INFO,
PaymentAccountFormField.FieldId.SALT);
public PayPalAccount() {
@ -91,4 +92,12 @@ public final class PayPalAccount extends PaymentAccount {
public String getEmailOrMobileNrOrUsername() {
return ((PayPalAccountPayload) paymentAccountPayload).getEmailOrMobileNrOrUsername();
}
public void setExtraInfo(String extraInfo) {
((PayPalAccountPayload) paymentAccountPayload).setExtraInfo(extraInfo);
}
public String getExtraInfo() {
return ((PayPalAccountPayload) paymentAccountPayload).getExtraInfo();
}
}

View file

@ -36,6 +36,7 @@ import java.util.Map;
@Slf4j
public final class PayPalAccountPayload extends PaymentAccountPayload {
private String emailOrMobileNrOrUsername = "";
private String extraInfo = "";
public PayPalAccountPayload(String paymentMethod, String id) {
super(paymentMethod, id);
@ -48,6 +49,7 @@ public final class PayPalAccountPayload extends PaymentAccountPayload {
private PayPalAccountPayload(String paymentMethod,
String id,
String emailOrMobileNrOrUsername,
String extraInfo,
long maxTradePeriod,
Map<String, String> excludeFromJsonDataMap) {
super(paymentMethod,
@ -56,13 +58,15 @@ public final class PayPalAccountPayload extends PaymentAccountPayload {
excludeFromJsonDataMap);
this.emailOrMobileNrOrUsername = emailOrMobileNrOrUsername;
this.extraInfo = extraInfo;
}
@Override
public Message toProtoMessage() {
return getPaymentAccountPayloadBuilder()
.setPaypalAccountPayload(protobuf.PayPalAccountPayload.newBuilder()
.setEmailOrMobileNrOrUsername(emailOrMobileNrOrUsername))
.setExtraInfo(extraInfo)
.setEmailOrMobileNrOrUsername(emailOrMobileNrOrUsername))
.build();
}
@ -70,6 +74,7 @@ public final class PayPalAccountPayload extends PaymentAccountPayload {
return new PayPalAccountPayload(proto.getPaymentMethodId(),
proto.getId(),
proto.getPaypalAccountPayload().getEmailOrMobileNrOrUsername(),
proto.getPaypalAccountPayload().getExtraInfo(),
proto.getMaxTradePeriod(),
new HashMap<>(proto.getExcludeFromJsonDataMap()));
}
@ -80,8 +85,8 @@ public final class PayPalAccountPayload extends PaymentAccountPayload {
@Override
public String getPaymentDetails() {
return Res.getWithCol("payment.email.mobile.username") + " "
+ emailOrMobileNrOrUsername;
return Res.getWithCol("payment.email.mobile.username") + " "+ emailOrMobileNrOrUsername + "\n" +
Res.getWithCol("payment.shared.extraInfo") + " " + extraInfo+ "\n";
}
@Override