Class PaymentValidationRequest
- java.lang.Object
-
- com.broadleafcommerce.paymentgateway.domain.PaymentValidationRequest
-
- All Implemented Interfaces:
Serializable
public class PaymentValidationRequest extends Object implements Serializable
This entity is designed to store payment methods associated to a Cart, the
getAmount()
the user is to be charged via that payment method, and the history of attempted transactions (authorizations, charges, refunds, etc.) against that payment method for the owning Cart. Every payment gateway interaction should have its results stored in thetransactions
collection.- Author:
- Chad Harchar (charchar), Chris Kittrell (ckittrell)
- See Also:
PaymentTransaction
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description PaymentValidationRequest()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Address<PaymentValidationRequest>
addAddress(String addressType, Address<PaymentValidationRequest> address)
Adds anAddress
to the map, identified by the provided addressType.Address<PaymentValidationRequest>
addressByType(String addressType)
protected boolean
canEqual(Object other)
boolean
equals(Object o)
Address<PaymentValidationRequest>
getAddress(String addressType)
Gathers one of the payment's relatedaddresses
by typeMap<String,Address<PaymentValidationRequest>>
getAddressByType()
The collection of related addresses that may include billing or shipping addressesjavax.money.MonetaryAmount
getAdjustmentsTotal()
The payment's adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.javax.money.MonetaryAmount
getAmount()
The amount for which this payment is allotted.Map<String,String>
getAttributes()
General use map to capture any additional attributes needed for this PaymentValidationRequestjavax.money.CurrencyUnit
getCurrency()
The currency gathered from thegetAmount()
javax.money.MonetaryAmount
getFulfillmentTotal()
The payment's total fulfillment costString
getGatewayType()
The gateway used to process this payment.String
getId()
The id of this payment.String
getName()
The name of this payment.String
getOwnerId()
The id of the entity that owns this payment.String
getOwnerType()
Describes the owner of the payment.Map<String,String>
getPaymentMethodProperties()
Map to capture any information about the payment method needed to perform gateway transactionsboolean
getShouldSavePaymentToCustomer()
Deprecated, for removal: This API element is subject to removal in a future version.since 1.0.2, in favor ofshouldSavePaymentForFutureUse()
to support owning user types other than a customer (i.e.javax.money.MonetaryAmount
getSubtotal()
The payment's total usually excluding adjustments, tax, and shipping.javax.money.MonetaryAmount
getTaxTotal()
The payment's total tax costList<PaymentTransaction>
getTransactions()
Transaction data representing each payment gateway interaction related to this payment.String
getType()
The type of this payment like Credit Card or Gift Card.Integer
getVersion()
The version of this payment.int
hashCode()
boolean
isSingleUsePaymentMethod()
Whether or not the underlying payment method can only be used once.void
setAddressByType(Map<String,Address<PaymentValidationRequest>> addressByType)
The collection of related addresses that may include billing or shipping addressesvoid
setAdjustmentsTotal(javax.money.MonetaryAmount adjustmentsTotal)
The payment's adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.void
setAmount(javax.money.MonetaryAmount amount)
The amount for which this payment is allotted.void
setAttributes(Map<String,String> attributes)
General use map to capture any additional attributes needed for this PaymentValidationRequestvoid
setFulfillmentTotal(javax.money.MonetaryAmount fulfillmentTotal)
The payment's total fulfillment costvoid
setGatewayType(String gatewayType)
The gateway used to process this payment.void
setId(String id)
The id of this payment.void
setName(String name)
The name of this payment.void
setOwnerId(String ownerId)
The id of the entity that owns this payment.void
setOwnerType(String ownerType)
Describes the owner of the payment.void
setPaymentMethodProperties(Map<String,String> paymentMethodProperties)
Map to capture any information about the payment method needed to perform gateway transactionsvoid
setShouldSavePaymentForFutureUse(boolean shouldSavePaymentForFutureUse)
Should the payment method be saved to the owning user.void
setShouldSavePaymentToCustomer(boolean shouldSavePaymentToCustomer)
Deprecated.since 1.0.2, in favor ofshouldSavePaymentForFutureUse
to support owning user types other than a customer (i.e.void
setSingleUsePaymentMethod(boolean singleUsePaymentMethod)
Whether or not the underlying payment method can only be used once.void
setSubtotal(javax.money.MonetaryAmount subtotal)
The payment's total usually excluding adjustments, tax, and shipping.void
setTaxTotal(javax.money.MonetaryAmount taxTotal)
The payment's total tax costvoid
setTransactions(List<PaymentTransaction> transactions)
Transaction data representing each payment gateway interaction related to this payment.void
setType(String type)
The type of this payment like Credit Card or Gift Card.void
setVersion(Integer version)
The version of this payment.boolean
shouldSavePaymentForFutureUse()
Should the payment method be saved to the owning userString
toString()
-
-
-
Method Detail
-
getCurrency
@Nullable public javax.money.CurrencyUnit getCurrency()
The currency gathered from thegetAmount()
- Returns:
- The currency gathered from the payment amount
-
addressByType
public Address<PaymentValidationRequest> addressByType(String addressType)
-
addAddress
public Address<PaymentValidationRequest> addAddress(String addressType, Address<PaymentValidationRequest> address)
Adds anAddress
to the map, identified by the provided addressType.- Parameters:
addressType
- The type of address that is to be addedaddress
- The address that is to be added- Returns:
- The address that was added to the map.
-
getAddress
@Nullable public Address<PaymentValidationRequest> getAddress(String addressType)
Gathers one of the payment's relatedaddresses
by type- Returns:
- The payment's related address identified by type
-
getShouldSavePaymentToCustomer
@Deprecated(since="1.0.2", forRemoval=true) public boolean getShouldSavePaymentToCustomer()
Deprecated, for removal: This API element is subject to removal in a future version.since 1.0.2, in favor ofshouldSavePaymentForFutureUse()
to support owning user types other than a customer (i.e. account).
-
shouldSavePaymentForFutureUse
public boolean shouldSavePaymentForFutureUse()
Should the payment method be saved to the owning user- Returns:
- Should the payment method be saved to the owning user
-
getId
public String getId()
The id of this payment.- Returns:
- The id of this payment.
-
getName
public String getName()
The name of this payment. This name is typically something like "Visa ending in 1234".- Returns:
- The name of this payment.
-
getOwnerType
public String getOwnerType()
Describes the owner of the payment. For example, the payment could have originated with a cart or a subscription, therefore this value might be CART or SUBSCRIPTION.- Returns:
- The type describing the owner of the payment
-
getOwnerId
public String getOwnerId()
The id of the entity that owns this payment. For example, this may be a cart id, or a subscription billing cycle id.- Returns:
- The id of the entity that owns this payment.
-
getType
public String getType()
The type of this payment like Credit Card or Gift Card.- Returns:
- The type of this payment like Credit Card or Gift Card.
-
getGatewayType
public String getGatewayType()
The gateway used to process this payment. Only a SINGLE payment gateway can modify transactions on a particular payment.- Returns:
- The gateway used to process this payment.
-
getAmount
public javax.money.MonetaryAmount getAmount()
The amount for which this payment is allotted. The summation of all of thepayments
for a particular cart should equal the cart's total. If specified, the amount details (subtotal
,adjustmentsTotal
,fulfillmentTotal
, &taxTotal
) should sum together to equal this amount.- Returns:
- The amount for which this payment is allotted.
-
getSubtotal
public javax.money.MonetaryAmount getSubtotal()
The payment's total usually excluding adjustments, tax, and shipping.- Returns:
- The payment's total usually excluding adjustments, tax, and shipping.
-
getAdjustmentsTotal
public javax.money.MonetaryAmount getAdjustmentsTotal()
The payment's adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.- Returns:
- The payment's adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.
-
getFulfillmentTotal
public javax.money.MonetaryAmount getFulfillmentTotal()
The payment's total fulfillment cost- Returns:
- The payment's total fulfillment cost
-
getTaxTotal
public javax.money.MonetaryAmount getTaxTotal()
The payment's total tax cost- Returns:
- The payment's total tax cost
-
getAddressByType
public Map<String,Address<PaymentValidationRequest>> getAddressByType()
The collection of related addresses that may include billing or shipping addresses- Returns:
- The collection of related addresses
-
getPaymentMethodProperties
public Map<String,String> getPaymentMethodProperties()
Map to capture any information about the payment method needed to perform gateway transactions- Returns:
- Map to capture any information about the payment method needed to perform gateway transactions
-
getAttributes
public Map<String,String> getAttributes()
General use map to capture any additional attributes needed for this PaymentValidationRequest- Returns:
- General use map to capture any additional attributes needed for this PaymentValidationRequest
-
getTransactions
public List<PaymentTransaction> getTransactions()
Transaction data representing each payment gateway interaction related to this payment.- Returns:
- Transactions related to this payment.
-
isSingleUsePaymentMethod
public boolean isSingleUsePaymentMethod()
Whether or not the underlying payment method can only be used once. In most cases, we're managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment's amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token. Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you'll need to seek an alternative form of payment.- Returns:
- Whether or not the underlying payment method can only be used once
-
getVersion
public Integer getVersion()
The version of this payment. Used for checking that the requested version of the payment is up-to-date before saving changes. Required for any request which results in an update being made to the payment. This should never be manually incremented/decremented.
-
setId
public void setId(String id)
The id of this payment.- Parameters:
id
- The id of this payment.
-
setName
public void setName(String name)
The name of this payment. This name is typically something like "Visa ending in 1234".- Parameters:
name
- The name of this payment.
-
setOwnerType
public void setOwnerType(String ownerType)
Describes the owner of the payment. For example, the payment could have originated with a cart or a subscription, therefore this value might be CART or SUBSCRIPTION.- Parameters:
ownerType
- The type describing the owner of the payment
-
setOwnerId
public void setOwnerId(String ownerId)
The id of the entity that owns this payment. For example, this may be a cart id, or a subscription billing cycle id.- Parameters:
ownerId
- The id of the entity that owns this payment.
-
setType
public void setType(String type)
The type of this payment like Credit Card or Gift Card.- Parameters:
type
- The type of this payment like Credit Card or Gift Card.
-
setGatewayType
public void setGatewayType(String gatewayType)
The gateway used to process this payment. Only a SINGLE payment gateway can modify transactions on a particular payment.- Parameters:
gatewayType
- The gateway used to process this payment.
-
setAmount
public void setAmount(javax.money.MonetaryAmount amount)
The amount for which this payment is allotted. The summation of all of thepayments
for a particular cart should equal the cart's total. If specified, the amount details (subtotal
,adjustmentsTotal
,fulfillmentTotal
, &taxTotal
) should sum together to equal this amount.- Parameters:
amount
- The amount for which this payment is allotted.
-
setSubtotal
public void setSubtotal(javax.money.MonetaryAmount subtotal)
The payment's total usually excluding adjustments, tax, and shipping.
-
setAdjustmentsTotal
public void setAdjustmentsTotal(javax.money.MonetaryAmount adjustmentsTotal)
The payment's adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.
-
setFulfillmentTotal
public void setFulfillmentTotal(javax.money.MonetaryAmount fulfillmentTotal)
The payment's total fulfillment cost
-
setTaxTotal
public void setTaxTotal(javax.money.MonetaryAmount taxTotal)
The payment's total tax cost
-
setAddressByType
public void setAddressByType(Map<String,Address<PaymentValidationRequest>> addressByType)
The collection of related addresses that may include billing or shipping addresses- Parameters:
addressByType
- The collection of related addresses
-
setPaymentMethodProperties
public void setPaymentMethodProperties(Map<String,String> paymentMethodProperties)
Map to capture any information about the payment method needed to perform gateway transactions- Parameters:
paymentMethodProperties
- Map to capture any information about the payment method needed to perform gateway transactions
-
setAttributes
public void setAttributes(Map<String,String> attributes)
General use map to capture any additional attributes needed for this PaymentValidationRequest- Parameters:
attributes
- General use map to capture any additional attributes needed for this PaymentValidationRequest
-
setTransactions
public void setTransactions(List<PaymentTransaction> transactions)
Transaction data representing each payment gateway interaction related to this payment.- Parameters:
transactions
- Transactions related to this payment.
-
setSingleUsePaymentMethod
public void setSingleUsePaymentMethod(boolean singleUsePaymentMethod)
Whether or not the underlying payment method can only be used once. In most cases, we're managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment's amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token. Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you'll need to seek an alternative form of payment.- Parameters:
singleUsePaymentMethod
- Whether or not the underlying payment method can only be used once
-
setShouldSavePaymentToCustomer
@Deprecated public void setShouldSavePaymentToCustomer(boolean shouldSavePaymentToCustomer)
Deprecated.since 1.0.2, in favor ofshouldSavePaymentForFutureUse
to support owning user types other than a customer (i.e. account).
-
setShouldSavePaymentForFutureUse
public void setShouldSavePaymentForFutureUse(boolean shouldSavePaymentForFutureUse)
Should the payment method be saved to the owning user.- Parameters:
shouldSavePaymentForFutureUse
- Should the payment method be saved to the owning user
-
setVersion
public void setVersion(Integer version)
The version of this payment. Used for checking that the requested version of the payment is up-to-date before saving changes. Required for any request which results in an update being made to the payment. This should never be manually incremented/decremented.
-
canEqual
protected boolean canEqual(Object other)
-
-