home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_d_h / draft-eastlake-universal-payment-03.txt < prev    next >
Text File  |  1996-10-29  |  32KB  |  1,045 lines

  1.  
  2.  
  3. INTERNET-DRAFT                                    Donald E. Eastlake 3rd
  4. Expires: 30 April 1997                                         CyberCash
  5.                                                          31 October 1996
  6.  
  7.  
  8.  
  9.                        Universal Payment Preamble
  10.                        --------- ------- --------
  11.  
  12.  
  13.  
  14.  
  15.  
  16. Status of This Document
  17.  
  18.    This draft, file name draft-eastlake-universal-payment-03.txt, is
  19.    intended to be become a Proposed Standard RFC.  Distribution of this
  20.    document is unlimited. Comments should be sent to the author or to
  21.    the <ietf-pay@imc.com> and <jepi@commerce.net> mailing lists.
  22.  
  23.    This document is an Internet-Draft.  Internet-Drafts are working
  24.    documents of the Internet Engineering Task Force (IETF), its areas,
  25.    and its working groups.  Note that other groups may also distribute
  26.    working documents as Internet-Drafts.
  27.  
  28.    Internet-Drafts are draft documents valid for a maximum of six
  29.    months.  Internet-Drafts may be updated, replaced, or obsoleted by
  30.    other documents at any time.  It is not appropriate to use Internet-
  31.    Drafts as reference material or to cite them other than as a
  32.    ``working draft'' or ``work in progress.''
  33.  
  34.    To learn the current status of any Internet-Draft, please check the
  35.    1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  36.    Directories on ds.internic.net (East USA), ftp.isi.edu (West USA),
  37.    nic.nordu.net (North Europe), ftp.nis.garr.it (South Europe),
  38.    munnari.oz.au (Pacific Rim), or ftp.is.co.za (Africa).
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Donald Eastlake 3rd                                             [Page 1]
  59.  
  60.  
  61. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  62.  
  63.  
  64. Abstract
  65.  
  66.    The Internet is becoming an increasingly commercial arena in which
  67.    payments are rendered for goods, information, and services. To
  68.    support such commerce, various incompatible Internet payment
  69.    protocols have been proposed or adopted by a variety of
  70.    organizations.  There appears to be little prospect of merger of all
  71.    or abandonment of most of these protocols.
  72.  
  73.    A header syntax, the Universal Payment Preamble (UPP), is presented
  74.    for parties to negotiate payment alternatives at any point in
  75.    shopping, until a final hand-off to a particular chosen payment
  76.    system.  The chosen payment system, not UPP, is responsible for the
  77.    security of any actual transmission of funds.
  78.  
  79.  
  80.  
  81. Acknowledgements
  82.  
  83.    The contributions of the following persons to this draft are
  84.    gratefully acknowledged:
  85.  
  86.       Ali Bahreman <ali@eit.com>
  87.       Brian Boesch <boesch@cybercash.com>
  88.       Randy Bush <randy@psg.com>
  89.       Steve Crocker <crocker@cybercash.com>
  90.       Rohit Khare <khare@w3.org>
  91.       Mark Linehan <linehan@watson.ibm.com>
  92.       Pieter van der Linden <vdl@GCTech.fr>
  93.       Bill Melton <melton@cybercash.com>
  94.       Jim Miller <jmiller@w3.org>
  95.       Paul-Andre Pays <pays@gctech.edelweb.fr>
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. Donald Eastlake 3rd                                             [Page 2]
  117.  
  118.  
  119. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  120.  
  121.  
  122. Table of Contents
  123.  
  124.       Status of This Document....................................1
  125.  
  126.       Abstract...................................................2
  127.       Acknowledgements...........................................2
  128.  
  129.       Table of Contents..........................................3
  130.  
  131.       1. Introduction............................................4
  132.       1.1 The Universal Payment Preamble Solution................4
  133.  
  134.       2. The Universal Payment Preamble..........................6
  135.       2.1. The Universal Payment PEP Headers.....................6
  136.       2.2  The UPP Protocol......................................7
  137.       2.2.1 Protocol-Query:......................................7
  138.       2.2.2 Protocol-Info:.......................................7
  139.       2.2.3 Protocol-Request:....................................7
  140.       2.2.4 Protocol:............................................8
  141.       2.3  UPP Defined Payment Negotiation Parameters............8
  142.       2.4 The Initiation Message.................................9
  143.       2.5 UPP Header and Message Integrity......................10
  144.  
  145.       3. Examples...............................................12
  146.       3.1 Minimal UPP Example...................................12
  147.       3.2 More Extensive UPP Example............................13
  148.       3.3 Final UPP Example.....................................14
  149.  
  150.       4. Anticipated Effects of Universal Payment Preamble......16
  151.  
  152.       5. Security Considerations................................17
  153.       References................................................17
  154.  
  155.       Author's Address..........................................18
  156.       Expiration and File Name..................................18
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174. Donald Eastlake 3rd                                             [Page 3]
  175.  
  176.  
  177. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  178.  
  179.  
  180. 1. Introduction
  181.  
  182.    The Internet is becoming an increasingly commercial arena in which
  183.    payments are rendered for goods, information, and services.  This
  184.    commerce can take a variety of forms from interacting with a vendor
  185.    via a World Wide Web browser to ordering by email from a CD-ROM
  186.    catalog.  Typically the shopping or selection phase is followed by a
  187.    payment phase and then usually by a fulfillment or delivery phase.
  188.  
  189.    To provide general privacy and security to all three phases, there
  190.    are a variety of protocols, such as MOSS, IPSEC, S-HTTP, PGP, and
  191.    SSL.  Some people use such general secure channel or secure message
  192.    systems for payments. However, while such protocols help protect
  193.    privacy, they do not meet all the needs of payment.
  194.  
  195.    The payments phase is especially sensitive because it deals with
  196.    "real money", thus providing a strong incentive to crackers, and is
  197.    also complex.  Frequently payment involves three or more parties such
  198.    as a customer, merchant, and bank or payment system, with structured
  199.    and interlocking messages that incorporate fields best encrypted for
  200.    parties other than their initial recipient.  For these reasons a
  201.    number of specialized payment protocols have been adopted.
  202.  
  203.    As examples of payment protocols, there is the SET standard being
  204.    developed by MasterCard and VISA [SET], the CyberCash system [RFC
  205.    1898], GCtech's GlodeID, CMU's NetBill, First Virtual [FV] and many
  206.    more.
  207.  
  208.    The Universal Payment Preamble provides two capabilities: payment
  209.    service negotiation and initiation of the specific payment system.
  210.    The payment service and initiation information are sufficient to
  211.    smoothly bridge from shopping to payment and, if appropriate, from
  212.    payment back to other customer - vendor interaction.  It is the
  213.    specific payment system invoked, and not UPP, that is responsible for
  214.    the secure transmission of funds.
  215.  
  216.    UPP is built on PEP, the Protocol Extension Protocol.  The reader is
  217.    assumed to understand PEP as documented in draft-ietf-http-pep-*.txt.
  218.  
  219.  
  220.  
  221. 1.1 The Universal Payment Preamble Solution
  222.  
  223.    A high level overview of the Universal Payment Preamble solution to
  224.    this problem is as follows:
  225.  
  226.    Shopping proceeds in a free-form way constrained only by the desires
  227.    of the customer and vendor.
  228.  
  229.    UPP information may be exchanged before or during the shopping
  230.  
  231.  
  232. Donald Eastlake 3rd                                             [Page 4]
  233.  
  234.  
  235. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  236.  
  237.  
  238.    process as well as at the end.  This might be done so the customer is
  239.    assured they can pay by a means they want to use or so that a
  240.    merchant can condition their offer based on information about the
  241.    payment system(s) installed at the customer.
  242.  
  243.    After the order has been decided, the definitive order and remaining
  244.    payment options are transmitted from the party knowing them to the
  245.    other in a initiation message.  The party receiving this message
  246.    chooses the payment option (in general choosing transport, payment
  247.    protocol, payment instrument, etc. to the extent these have not been
  248.    decided by earlier negotiation) and proceeds using the selected
  249.    payment system if any of those presented are acceptable.
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290. Donald Eastlake 3rd                                             [Page 5]
  291.  
  292.  
  293. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  294.  
  295.  
  296. 2. The Universal Payment Preamble
  297.  
  298.    The Universal Payment Preamble is so called because it exchanges
  299.    information that needs to be resolved before a particular payment
  300.    system is entered and provides an initiation message to enter the
  301.    payment protocol.
  302.  
  303.    Information is exchanged using the Protocol Extension Protocol
  304.    [draft-ietf-http-pep-*.txt] headers.  Familiarity with PEP is assumed
  305.    in this draft.
  306.  
  307.  
  308.  
  309. 2.1. The Universal Payment PEP Headers
  310.  
  311.    UPP views the world as consisting of some set of payment protocols
  312.    installed with the consumer software and a possibly different set of
  313.    payment protocols installed at the vendor.  Some payment protocols
  314.    provide only one kind of payment but most provide for various payment
  315.    instruments (such as bank cards or accounts) and/or various
  316.    currencies including the possibility of specialized currencies such
  317.    as "frequent flyer miles".
  318.  
  319.    Each payment system is considered to be a PEP protocol extension,
  320.    identified by a URL, and in addition there exists the
  321.    http://w3.org/UPP protocol and a module implementing it. Each payment
  322.    system installed at a customer or vendor site must register itself
  323.    with the UPP module at that site.  The UPP module registers with the
  324.    PEP level to handle the umbrella UPP protocol and also registers to
  325.    handle any payment protocol that registers with it.  (This may
  326.    actually be implemented by a combined PEP/UPP level of software.)
  327.  
  328.    UPP headers can be exchanged before or during shopping to narrow the
  329.    field of payment methods.  This could help gain some assurance that
  330.    there is some acceptable method available or to provide special
  331.    offers or otherwise condition the shopping experience based on
  332.    available payment methods.  This will occur via PEP headers using the
  333.    payment system and UPP protocols.
  334.  
  335.    Each individual payment service will have a proprietary protocol
  336.    compatible with the "generic" UPP Protocol.  Compatibility is largely
  337.    defined by the parameters defined in section 2.3 below that lists the
  338.    names of common parameters and the encoding to be used for their
  339.    values.  In addition, it implies an agreement about a "style" of
  340.    negotiation: the payee agrees not to take irrevocable action based
  341.    solely on the use of the UPP and specific payment protocol
  342.    negotiation headers.  Rather, it takes place in the specific payment
  343.    protocol that starts at the end of the negotiation phase.  Payment
  344.    security is attained to the extent it is provided by this payment
  345.    protocol.
  346.  
  347.  
  348. Donald Eastlake 3rd                                             [Page 6]
  349.  
  350.  
  351. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  352.  
  353.  
  354. 2.2  The UPP Protocol
  355.  
  356.    As with any PEP based protocol, UPP negotiations occur via exchange
  357.    of the four PEP headers as described below.
  358.  
  359.  
  360.  
  361. 2.2.1 Protocol-Query:
  362.  
  363.    A Protocol-Query header for the UPP protocol is used to determine if
  364.    the other party has UPP available and what payment systems are
  365.    installed.  If UPP is available, then a Protocol-Info response MUST
  366.    be generated.  If any particular payment system is installed, it MAY
  367.    generate a Protocol-Info response.
  368.  
  369.    Example:
  370.         Protocol-query: {http://w3.org/UPP {for /*}}
  371.  
  372.  
  373.  
  374. 2.2.2 Protocol-Info:
  375.  
  376.    The Protocol-Info request is used to reply to Protocol-Query's and to
  377.    volunteer information.  In a message replying to a Protocol-Query for
  378.    protocol UPP, the UPP will appear in a Protocol-Info header.  Other
  379.    Protocol-Info header content for payment negotiation will specify
  380.    particular payment protocols and can either be information being
  381.    spontaneously sent by the payment system or information replying to a
  382.    Protocol-Query for the UPP protocol or for that payment protocol.
  383.  
  384.    Example, spontaneous offer of payment system info:
  385.         Protocol-info: {http://payment.com/psys {for /*} {params
  386.    {proprietary value}}}
  387.  
  388.    Example, response to UPP protocol query:
  389.         Protocol-info: {http://w3.org/UPP  {via
  390.    http://payment.com/psys}}, {http://payment.com/psys {for /*} {params
  391.    {proprietary value}}}
  392.  
  393.  
  394.  
  395. 2.2.3 Protocol-Request:
  396.  
  397.    The server demands payment by requesting 'UPP, strength=required.'
  398.    This forces the client to respond with a complete payment initiator
  399.    (i.e. with all known required parameters for chosen payment system(s)
  400.    filled in).  If the negotiation process has not narrowed down to a
  401.    single payment system, the browser/UPP module may pop up a
  402.    notification toolbar or automatically choose, possibly based on a
  403.    profile or rules established by the user.
  404.  
  405.  
  406. Donald Eastlake 3rd                                             [Page 7]
  407.  
  408.  
  409. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  410.  
  411.  
  412.    Example:
  413.         Protocol-request: {http://w3.org/UPP {str req} {for /pay-
  414.    button}}
  415.  
  416.  
  417.  
  418. 2.2.4 Protocol:
  419.  
  420.    A Protocol header with a payment protocol specified occurs only in
  421.    the initiation message that transitions to that payment system.
  422.    There MUST also be a Protocol header entry for the UPP protocol with
  423.    a {via ...} bag specifying the specific protocol actually used.  This
  424.    message also has a MIME type (such as application/cybercash)
  425.    specified to select the desired payment system.
  426.  
  427.    Example:
  428.         Protocol: {http://payment.com/psys {params {transport
  429.    http://paymentserver.com} {proprietary value}}}
  430.  
  431.  
  432.  
  433. 2.3  UPP Defined Payment Negotiation Parameters
  434.  
  435.    The following PEP parameters, if they appear in a params bag for a
  436.    payment system, have the form and meaning indicated.  They are listed
  437.    in alphabetic order.
  438.  
  439.    account:  This parameter is used to provide information about the
  440.       account number to be used at the customer or merchant.  Usually
  441.       this number is meaningful only for the particular payment system
  442.  
  443.    amount:  This is the cost of the order as one payment.  It consists
  444.       of a list of bags with the ISO 4217 currency code as the first
  445.       item and optionally an amount as the second.  Each amount is an
  446.       alternative for the entire order.  For example "{params ...
  447.       {amount {usd} {gbp}} ...}" to indicate that US dollars and pounds
  448.       Sterling are acceptable (vendor) or providable (customer) or
  449.       "{params {amount {frf 1234}}}" to indicate a precise amount in
  450.       French francs.
  451.  
  452.    brand:  The BrandID field format from SET will be used for cards.
  453.       This consists of either a simple brand, such as "MasterCard" or a
  454.       brand, a colon, and a product type, such as "Visa:Gold".
  455.  
  456.    cancel:  This is the URL to continue at if the payment protocol is
  457.       cancelled.  Normally this field occurs only in the headers on the
  458.       initiation message.
  459.  
  460.    failure:  This is the URL to continue at after failure of the payment
  461.       protocol.  Normally this field occurs only in the headers on the
  462.  
  463.  
  464. Donald Eastlake 3rd                                             [Page 8]
  465.  
  466.  
  467. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  468.  
  469.  
  470.       initiation message.
  471.  
  472.    success:  This is the URL to continue at after successful execution
  473.       of the payment protocol.  Normally this field occurs only in the
  474.       headers on the initiation message.
  475.  
  476.    transport:  This is the URL to which the initial payment service
  477.       specific message should be sent.  Normally this field occurs only
  478.       in the headers on the initiation message.  For example
  479.       "{http://paycompany.com/paysys {params ... {transport
  480.       http://merchant.com:8000/buy}} ...}" or {http://cashco.com/cash
  481.       {params {transport mailto://mailorder@merchant.com}}}".
  482.  
  483.  
  484.  
  485. 2.4 The Initiation Message
  486.  
  487.    There is a sharp transition from the shopping phase, which may
  488.    include payment system negotiation as above.  This is signalled by
  489.    the MIME type of a message, typically "application/paysys" where
  490.    "paysys" is the name of the payment system being invoked.  The exact
  491.    form and body content of the initiation message depend on the payment
  492.    system and the transport medium that it is sent over.
  493.  
  494.    In almost all cases, the shopping dialog between the customer and the
  495.    merchant will have resulted in the creation of an "order" and pricing
  496.    information.  This order and pricing information is frequently only
  497.    present and understood at the merchant or at the customer as of the
  498.    end of the shopping dialog.  For example, if the customer has been
  499.    interacting via a browser with a merchant's web service, the order
  500.    (or shopping basket or whatever other term you like) and price has
  501.    been accumulated at the merchant.  If the customer has been
  502.    interacting with a local CD-ROM catalog or the like, then the order
  503.    and pricing will have been accumulated at the customer.  The
  504.    initiation message is sent from the party with knowledge of the
  505.    ordering information to the part without that knowledge.  In
  506.    addition, through UPP, the message can announce the remaining
  507.    available combinations of payment services, payment types (credit,
  508.    cash, etc.), and the like if this has not been previously determined
  509.    by UPP header exchange.
  510.  
  511.    The headers of the initiation message should contain an instance of
  512.    the selected payment protocol requiring the other party to follow
  513.    that payment protocol or indicate an error.  The body of the
  514.    initiation message will normally include the "order".  This is the
  515.    accumulated description of the good and services that have been
  516.    ordered.
  517.  
  518.    In addition, the order description must ultimately be
  519.    cryptographically signed and compared for security in most payment
  520.  
  521.  
  522. Donald Eastlake 3rd                                             [Page 9]
  523.  
  524.  
  525. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  526.  
  527.  
  528.    protocols. To this end, it is essential that the OD be conveyed
  529.    exactly because the hash and signatures will not work if there is any
  530.    change.  Some payment systems have their own out of band solution to
  531.    this problem.
  532.  
  533.    In email and World Wide Web transmissions, the content-transfer-
  534.    encoding field defines the encoding of the body of the message and
  535.    the content-type field defines the type. If the type of the body/OD
  536.    is text/plain with sufficiently short lines, then the encoding may be
  537.    omitted.  (It is recommended that any hashes calculated be on the
  538.    text with all whitespace ignored, but this is the realm of individual
  539.    payment protocols.) If the body/OD is anything other than text/plain
  540.    or there is any question of it being corrupted by a gateway, then the
  541.    content-transfer-encoding should be be base64 to preserve the
  542.    integrity of the message.
  543.  
  544.    However transmitted, the OD need not be machine parsable and in fact
  545.    is simply a representation of the order for the records of the
  546.    customer and the vendor.  It would normally contain a description of
  547.    the goods, information, and/or services ordered and some information
  548.    on delivery.  Except perhaps if the customer were some automated
  549.    process, the order should be easy for a person to understand.  It
  550.    might also include an order number, dates, prices, and the like but
  551.    these would not generally be extractable from the order.  For
  552.    example, although text would be more common, the order might be a
  553.    synthesized digitized voice reciting the information (this might be
  554.    particularly useful for a blind customer) or an image of a completed
  555.    illustrated order form.
  556.  
  557.    WARNING: Since the order description is what the customer is buying
  558.    as a matter of record, it is important that it be complete unto
  559.    itself. External references are invalid in the sense that they can
  560.    not be depended on later in showing what the order was.  Thus an
  561.    external MIME reference is prohibited as the order (or as part of the
  562.    order if it is multipart), external references to images or otherwise
  563.    are prohibited if the order or part of a multipart order is type
  564.    text/HTML, etc.
  565.  
  566.  
  567.  
  568. 2.5 UPP Header and Message Integrity
  569.  
  570.    Since one of the purposes of the UPP is to negotiate between payment
  571.    protocols, most of which have very different security and signature
  572.    schemes, no explicit security is provided in the UPP.  If security of
  573.    the UPP is desired, the customer and merchant need to communicate
  574.    inside some security enveloping, such as IPSEC, MOSS, SHTTP, PGP, or
  575.    SSL from the start.  If such security is not used, a UPP relevant
  576.    field or message could be modified in flight or spoofed; however,
  577.    later steps within the payment protocol chosen will normally catch
  578.  
  579.  
  580. Donald Eastlake 3rd                                            [Page 10]
  581.  
  582.  
  583. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  584.  
  585.  
  586.    such a problem, reducing it to an interference or denial of service
  587.    threat rather than an actual compromise of funds.
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638. Donald Eastlake 3rd                                            [Page 11]
  639.  
  640.  
  641. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  642.  
  643.  
  644. 3. Examples
  645.  
  646.    Three examples are given below.  The first is a minimum UPP example
  647.    where neither party reveals much, the second is an example of a
  648.    richer basic UPP example including some use of the Profile protocol,
  649.    and the third is a relatively complex example illustrating the
  650.    effects of policy at the customer and vendor ends.
  651.  
  652.  
  653.  
  654. 3.1 Minimal UPP Example
  655.  
  656.    This is a web example with a minimum of negotiation.
  657.  
  658.    1) Merchant sends payment options with pay page.
  659.    2) Customer hits RpayS button and sends payment details.
  660.    3) Merchant initiates proprietary portion of selected system.
  661.  
  662.    ====================================
  663.    220 Uses Protocol Extensions
  664.    Content-Type: text/html
  665.     Protocol-Request: {http://w3.org/UPP {str req} {for /PayButton}}
  666.     Protocol-Info: {http://www.cybercash.com/UPP {for /*} {params
  667.       {accepts coin}}}, {http://gctech.com/globeid {for /*}},
  668.    =catalog
  669.  
  670.    The merchant's server indicates that it accepts: 1. CyberCoin for all
  671.    URLs 2. GlobeID protocol for all URLs.
  672.    The body of this message would be the HTML catalog and the customer
  673.    would proceed to shop and the customer knows they can pay by either
  674.    Globe ID or CyberCash.
  675.  
  676.    ====================================
  677.    POST /PayButton HTTP/1.1
  678.    Protocol: {http://w3.org/UPP {params {via
  679.       http://www.cybercash.com/coin} }}, {http://www.cybercash.com/UPP
  680.       {params {persona RAnonymousS}}}
  681.    = posted form data
  682.  
  683.    ====================================
  684.    200 OK
  685.    Content-Type:  application/cybercash
  686.    Protocol: {http://www.cybercash.com/UPP {params {success /worked}
  687.       {failure /didnt} {cancel /incomplete}}}
  688.    =message body probably containing order description
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696. Donald Eastlake 3rd                                            [Page 12]
  697.  
  698.  
  699. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  700.  
  701.  
  702. 3.2 More Extensive UPP Example
  703.  
  704.    1) Customer asks vendor for payment options and mentions a payment
  705.    system the customer has.
  706.    2) Vendor responds with payment options and refuses the one mentioned
  707.    by customer.
  708.    3) ...shopping...
  709.    4) Customer asks for shopping cart display.
  710.    5) Merchant extends shopping cart message with payment systems,
  711.    costs, and demand for payment if RpayS button hit.
  712.    6) Customer hits RpayS button and sends payment details.
  713.    7) Merchant initiates proprietary portion of selected system.
  714.  
  715.    ====================================
  716.    GET /Catalog HTTP/1.1
  717.    Protocol-Query: {http://w3.org/UPP {for /*} },
  718.    Protocol-Info: {http://LocalBank.com/DebitCard2.1}
  719.  
  720.    ====================================
  721.    220 Uses Protocol Extensions
  722.    Content-Type: text/html
  723.    Protocol-Info: {http://www.CreditCentral.com/TypeF {for /*}},
  724.       {http://pep.CashMach.com/e$ {params {cost {usd} {jpy}}} {for /*}},
  725.       {http://LocalBank.com/DebitCard2.1{str ref}{for /*}}
  726.    =catalog=
  727.  
  728.    Shopping proceeds and the customer eventually gets their shopping
  729.    card / invoice.
  730.  
  731.    ====================================
  732.    220 Uses Protocol Extensions
  733.    Content-Type: text/html
  734.    Protocol-Request: {http://w3.org/UPP {str req} {for /PayButton}}
  735.    Protocol-Info: {http://pep.CashMach.com/e$ {params {amount {usd
  736.       11.00} {jpy 1200.}}} {for /PayButton}},
  737.       {http://www.CreditCentral.com/TypeF {params {amount {cad 15.07}
  738.       {usd 11.42}}{merchant 6699}} {for /PayButton}}
  739.    =display of shopping cart as an html form
  740.  
  741.    ====================================
  742.    POST /PayButton HTTP/1.1
  743.    Protocol: {http://w3.org/UPP {params {via http://pep.CashMach.com/e$}
  744.       }}, {http://pep.CashMach.com/e$ {params {amount {usd 11.00}}
  745.       {account 7312} {persona RAnonymousS}}}
  746.    = posted form data
  747.  
  748.    ====================================
  749.    200 OK
  750.    Content-Type:  application/x-e$
  751.    Protocol: {http://w3.org/UPP {params {success /worked} {failure
  752.  
  753.  
  754. Donald Eastlake 3rd                                            [Page 13]
  755.  
  756.  
  757. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  758.  
  759.  
  760.       /didnt} {cancel /incomplete}}}
  761.    =message body probably containing order description
  762.  
  763.  
  764.  
  765. 3.3 Final UPP Example
  766.  
  767.    1) Vendor asks customer for payment options and volunteers some.
  768.    2) Customer responds with payment options.
  769.    3) ...shopping..., ...ask for shopping cart..,
  770.    4) Customer hits RpayS button and sends alternate payment details.
  771.    5) Alternate payment fails.
  772.    6) Customer tries again with known acceptable payment details.
  773.    7) Merchant initiates payment system specific portion of selected
  774.    system.
  775.  
  776.    ====================================
  777.    206 Uses PEP
  778.    Content-Type: text/html
  779.    Protocol-Query: {http://w3.org/UPP}
  780.    Protocol-Info: {http://www.cybercash.com/UPP {for /*} {params {brand
  781.       visa mastercard}}}, {http://www.cybercash.com/UPP {for /*} {params
  782.       {brand discover}}{str ref}}, {http://gctec.com/GlobeID {params
  783.       {affiliate Kleline Cyttybank Mitsushami} {for /*} {amount {usd}
  784.       {frf} {nlg}} }}
  785.    =content
  786.  
  787.    ====================================
  788.    GET ...
  789.    Protocol-Info: {http://w3.org/UPP}, {http://www.cybercash.com/UPP
  790.       {params {version 0.9.3}}}
  791.  
  792.  
  793.    ask for shopping cart
  794.  
  795.    get shopping cart form extended to require payment when pay button
  796.    hit
  797.  
  798.    ====================================
  799.    206 Uses PEP
  800.    Protocol-info: {http://www.cybercash.com/UPP {params {amount {usd 33}
  801.       {bdr 4162}} }}, {http://foocharge.com/Pay {params {amount {usd 35}
  802.       {bdr 4262}} }}, {http://aba.com/SET {params {account {AX}} {amount
  803.       {usd 34} {bdr 4200}} }}
  804.    Protocol-request: {http://w3.org/UPP {str req} {for /Pay}}
  805.  
  806.    = HTML - shopping cart contents
  807.    = amend-order-button cancel-button pay-button
  808.  
  809.    When the user gets a page with a button/anchor on it, the activation
  810.  
  811.  
  812. Donald Eastlake 3rd                                            [Page 14]
  813.  
  814.  
  815. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  816.  
  817.  
  818.    of which indicates they are willing to pay, that page has all the
  819.    merchant available payment options that have not yet been refused by
  820.    the customer and demands the use of the UPP protocol in the response
  821.    if the response is to the URL indicating that the payment button has
  822.    been hit (/Pay in this case).
  823.  
  824.    ====================================
  825.    POST /Pay HTTP 1.1
  826.    Protocol: {http://w3.org/UPP {params {via http://foocharge.com/Pay}
  827.       }}, {http://foocharge.com/Pay {params {amount {bdr 4262}} }}
  828.  
  829.    User tries a new payment system not previous mentioned.
  830.  
  831.    ====================================
  832.    206 Uses PEP
  833.    Protocol: {http://foocharge.com/Pay {str ref}}
  834.    Protocol-request: {http://w3.org/UPP {str req} {for /Pay}}
  835.    Protocol-info: {http://www.cybercash.com/UPP {params {amount {usd 33}
  836.       {bdr 4162}} }}, {http://foocharge.com/Pay {params {amount {usd 35}
  837.       {bdr 4262}} }}, {http://aba.com/SET {params {account {AX}} {amount
  838.       {usd 34} {bdr 4200}} }}
  839.  
  840.    = HTML - shopping cart contents
  841.    = amend-order-button cancel-button pay-button
  842.  
  843.    Merchant rejects new payment system tried by customer and re-iterates
  844.    choices it knows about and its demand for payment if the pay button
  845.    is clicked.
  846.  
  847.    ====================================
  848.    POST /Pay HTTP 1.1
  849.    Protocol: {http://w3.org/UPP {params {via
  850.       http://www.cybercash.com/UPP} }}, {http://www.cybercash.com/UPP
  851.       {params {brand visa} {amount {bdr 4162}} }}
  852.  
  853.    User tries a different know acceptable payment system.
  854.  
  855.    ====================================
  856.    206 Uses PEP
  857.    Protocol: {http://www.cybercash.com/UPP {params {amount {bdr 4162} }
  858.       {proprietary foo} {transport URL} {success URL} {Failure URL}}}
  859.    Content-type: application/cybercash
  860.  
  861.    = body of message = = includes OD =
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870. Donald Eastlake 3rd                                            [Page 15]
  871.  
  872.  
  873. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  874.  
  875.  
  876. 4. Anticipated Effects of Universal Payment Preamble
  877.  
  878.    While the introduction of yet another protocol has the potential to
  879.    further disrupt the progress in Internet payments, the Universal
  880.    Payment Preamble described here is intended to provide a minimal
  881.    layering that enables a customer to use a multipayment wallet and to
  882.    easily move from payment to payment.
  883.  
  884.    Without a Universal Payment Preamble, shoppers and merchants will be
  885.    forced into dealing with a large number of relatively confusing
  886.    choices early in the purchasing process. The merchant must provide
  887.    multiple payment buttons (depending on protocol) and then handle each
  888.    separately.
  889.  
  890.    This is not practical.  Any form of impediment to the customer will
  891.    discourage a number of buyers. The introduction of the Universal
  892.    Payment Preamble allows merchants to shop for payment systems that
  893.    are appropriate to their customer base and needs. Adding payment
  894.    systems will be painless for the customer as only choices appropriate
  895.    to the customer need be displayed on the screen.
  896.  
  897.    The long term effects of this approach will be to more effectively
  898.    allow different payment systems to compete in an open market.
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. Donald Eastlake 3rd                                            [Page 16]
  929.  
  930.  
  931. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  932.  
  933.  
  934. 5. Security Considerations
  935.  
  936.    The Universal Payment Preamble provides no security features.
  937.  
  938.    It is intended to segue into a payment protocol selected by the
  939.    customer and merchant and it is assumed that this payment protocol
  940.    will provide adequate security.  If security of (1) the Universal
  941.    Payment Preamble headers/messages, (2) any dialog preceding or mixed
  942.    with those messages, or (3) any fulfillment dialog after the payment
  943.    protocol, is desired, then an appropriate channel or message security
  944.    protocol such as IPSEC, MOSS, SHTTP, PGP, SSL, etc. should be used.
  945.  
  946.  
  947.  
  948. References
  949.  
  950.    draft-ietf-http-pep-00.txt
  951.  
  952.    [RFC 1898] - CyberCash
  953.  
  954.    [RFC 1521] - N. Borenstein, N. Freed, "MIME  (Multipurpose Internet
  955.    Mail Extensions) Part One:  Mechanisms for Specifying and Describing
  956.    the Format of Internet Message Bodies", 09/23/1993.
  957.  
  958.    [RFC 1522] - K. Moore, "MIME (Multipurpose Internet Mail Extensions)
  959.    Part Two: Message Header Extensions for Non-ASCII Text", 09/23/1993.
  960.  
  961.    [PGP]
  962.  
  963.    [SET]
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986. Donald Eastlake 3rd                                            [Page 17]
  987.  
  988.  
  989. INTERNET-DRAFT         Universal Payment Preamble        31 October 1996
  990.  
  991.  
  992. Author's Address
  993.  
  994.    Donald E. Eastlake 3rd
  995.    CyberCash, Inc.
  996.    318 Acton Street
  997.    Carlisle, MA 01741 USA
  998.  
  999.    Telephone:   +1 508-287-4877
  1000.                 +1 508-371-7148 (fax)
  1001.                 +1 703 620-4200 (main office, Reston, Virginia, USA)
  1002.    email:       dee@cybercash.com
  1003.  
  1004.  
  1005.  
  1006. Expiration and File Name
  1007.  
  1008.    This draft expires 30 April 1997.
  1009.  
  1010.    Its file name is draft-eastlake-universal-payment-03.txt.
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.