All Packages Index
Payment Extension for the Transfer Layer
Author: N. Asokan (ZRL) (until Oct 31, 1997)
Editor: N. Asokan (ZRL) (until Oct 31, 1997), J.Brauckmann (SRB)
Reviewer: T. Beiler (SRB)
@version [CVS] @(#) $Id: index.html,v 1.1 1997/07/29 07:32:02 semper Exp
$
This package implements a "payment item" and related classes. Payment
items implement the
Transferable
interface. Therefore, they can be
transferred as described in the txlayer set of packages.
Changes
Compared to the initial version of this extension, the following issues
are solved:
-
- Original issue:
- How can the caller (e.g. commerce layer) pass certain relevant
pieces of information to the payment block on the receiver
side. Examples of such pieces of information are:
- security attributes for the transfer,
- identity of the payer,
- limitations on the set of purses and payment systems to
be used for the particular transaction,
- limitations on currency for the particular transaction,
These pieces are not always needed. But they might be;
therefore, we must have a mechanism to pass them down when
needed.
- Solution:
-
The attributes that were given by the caller are present
in a _offeredAttributes variable. In addition,
a
PaymentAttribute was defined, which can be put into the attribute
set and which may contain the information requested in the above
paragraph.
-
- Original issue:
- The transfer consists of two phases:
- negotiation and parameter selection
- the actual transfer
If something goes wrong during the transfer, it must be possible
to give specific feedback to the caller. For this, appropriate
exception or error hierarchy must be defined.
- Solution:
-
There is now one exception
TXContextCommException that may be thrown by a transfer. Later, the
payment extension of the txlayer may define a subclass of this to provide
different exceptions for negotiation and transfer errors.
TODO
Various things are missing in this implementation because it is not
clear how to support them. Throughout the code, places that need
updates are marked by the string "TODO".
Here is a list of known issues:
- There are places when the
PaymentTransfer
object
must be written to stable storage. Since this is not payment
specific, a method to write itself to stable storage must be
provided by TransferTransaction