# com.beasys.commerce.ebusiness.payment Package

The `Payment` package enables the use of credit cards as a form of payment. A customer provides credit card information that is then processed by a payment service. This process may be completed in real time or defered and completed asynchronously. The package is accessed through the PipelineComponents that reside the `pipeline` package and InputProcessors that reside in the `webflow` package. The `PaymentTransaction` and associated classes in his package are the mechanism by which a persistent record of the Payment operations is maintained. In addition there are classes that implement the payment service provider.

## Interface Summary

PaymentTransaction | A `PaymentTransaction` is an Entity EJB that maintains the state of an individual Credit Card transaction.
PaymentTransactionHome | The home interface for the PaymentTransaction entity bean.
Result | Attribute: value Containment: By Value Multiplicity: 1:1
TransactionConstants |
TransactionEntry | Each TransactionEntry acts as a journal entry for a PaymentTransaction.
TransactionResponseConstants |

## Class Summary

CurrencyConvertor |
PaymentTransaction_creditCard_CreditCard_Address_CRUD | CRUD for Aggregate Mapping
PaymentTransaction_creditCard_CreditCard_billingAddress_AddressCRUD | CRUD for entity bean PaymentTransaction_creditCard_CreditCard_billingAddress_Address
PaymentTransaction_creditCard_CreditCardCRUD | CRUD for entity bean PaymentTransaction_creditCard_CreditCard
PaymentTransaction_CreditCard_CRUD | CRUD for Aggregate Mapping
PaymentTransaction_Price_CRUD | CRUD for Aggregate Mapping
PaymentTransaction_transactionAmount_PriceCRUD | CRUD for entity bean PaymentTransaction_transactionAmount_Price
PaymentTransaction_TransactionEntry_CRUD | CRUD for OneToMany Mapping
PaymentTransaction_transactionEntry_SmartCollectionReference | Base class for all SmartCollectionReferences for Belongings for BMP.
PaymentTransactionCRUD | CRUD for entity bean PaymentTransaction
PaymentTransactionCRUDExtension | CRUD for entity bean PaymentTransaction
PaymentTransactionImpl | This class holds data common to all the transaction types.
PaymentTransactionPk | This is the primary key class for the `PaymentTransaction` Entity EJB.
PaymentTransactionSmartBMP | Implementation of SmartBMP interface for bean PaymentTransaction.
PaymentTransactionValue | A value object for the PaymentTransaction Entity EJB.
PaymentWorkflow |
     ------------------------------------------------------
     These are the states provided by this StateMachine:
     ------------------------------------------------------
    [Authorized]
    [MarkedForSettle]
    [PendingPartialSettle]
    [PendingSettle]
    [Rejected]
    [SettleFailed]
    [Settled]
    [Retry]
    [Start]   Initial State
     ------------------------------------------------------
     These are the transitions provided by this StateMachine:
     ------------------------------------------------------
         authorize
     [Start]------------->[Authorized]
         failSettle
     [Authorized]------------->[Authorized]
         failSettle
     [MarkedForSettle]------------->[MarkedForSettle]
         markForSettle
     [Authorized]------------->[MarkedForSettle]
         partialSettle
     [Authorized]------------->[PendingPartialSettle]
         partialSettle
     [MarkedForSettle]------------->[PendingPartialSettle]
         pendingPartialSettle
     [PendingPartialSettle]------------->[PendingPartialSettle]
         pendingSettle
     [PendingSettle]------------->[PendingSettle]
         queryFail
     [PendingPartialSettle]------------->[SettleFailed]
         queryFail
     [PendingSettle]------------->[SettleFailed]
         querySuccess
     [PendingPartialSettle]------------->[Authorized]
         querySuccess
     [PendingSettle]------------->[Settled]
         reject
     [Start]------------->[Rejected]
         settle
     [Authorized]------------->[PendingSettle]
         settle
     [MarkedForSettle]------------->[PendingSettle]
         systemFailure
     [Start]------------->[Retry]
         failRetry
     [Retry]------------->[Retry]
         authorize
     [Retry]------------->[Authorized]
ResultHome | The home class for the Result belonging.
ResultImpl |
TransactionEntry_Price_CRUD | CRUD for Aggregate Mapping
TransactionEntry_transactionAmount_PriceCRUD | CRUD for entity bean TransactionEntry_transactionAmount_Price
TransactionEntryCRUD | CRUD for entity bean TransactionEntry
TransactionEntryHome | The home class for the TransactionEntry belonging.
TransactionEntryImpl | This class is the base class of all the payment instrument transaction entries.
TransactionResponse | A `TransactionResponse` is returned by the business methods of the `CreditCardService`.

## Exception Summary

AuthorizationException | Represents the condition when there is a problem with a credit card that the customer can fix and retry.
AuthorizationFailureException | Signals that an authorization attempt was made with an invalid credit card.
AuthorizationRejectedException | Signals that authorization with an otherwise valid credit card was unsuccessful.
CaptureException | The exception that is thrown when a transaction fails to be captured.
GeneralServiceException | Represents the condition when there is a service provider error.
InvalidCreditCardException | This is exception is thrown when the credit card is not valid and cannot be retried.
PaymentException | The base class of all payment related exceptions.
ServiceConfigurationException | Represents the condition when the merchant's Payment service configuration is wrong.
ServiceUnavailableException | Represents the condition when the link to the service provider is not available.
SettleException | Represents the condition when the a payment transaction does not get settled.