You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2041 lines
83 KiB
2041 lines
83 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<STYLE TYPE="text/css"><!--
|
|
PRE {color: maroon; margin-left: 1em}
|
|
TABLE { background-position: center;
|
|
padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px;
|
|
padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px;
|
|
border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px}
|
|
TH {color: maroon }
|
|
CAPTION {background-position: center; font-style: italic }
|
|
IMG {background-position: center}
|
|
TT {color: maroon; font-size: 115% }
|
|
|
|
.change { background: yellow }
|
|
.fee { border-width: 1px }
|
|
.center { background-position: center}
|
|
.off { display: none }
|
|
.level0 { list-style-type: decimal; font-weight: bold; margin-top: 1em }
|
|
.level1 { list-style-type: decimal; font-weight: normal }
|
|
.level2 { list-style-type: lower-roman; font-weight: normal }
|
|
.caption { background-position:center; font-style: italic }
|
|
|
|
--></STYLE>
|
|
<TITLE>Common Markup for micropayment per-fee-links: a W3C Public Working
|
|
Draft</TITLE>
|
|
<LINK rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD">
|
|
</HEAD>
|
|
<BODY>
|
|
<DIV class="head">
|
|
<A href="http://www.w3.org/"><IMG height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"></A>
|
|
<H1>
|
|
Common Markup for micropayment per-fee-links
|
|
</H1>
|
|
<H2>
|
|
W3C Working Draft 25 August 1999
|
|
</H2>
|
|
<DL>
|
|
<DT>
|
|
This version:
|
|
<DD>
|
|
<A HREF="http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990825">http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990825</A>
|
|
<DT>
|
|
Latest version:
|
|
<DD>
|
|
<A HREF="http://www.w3.org/TR/Micropayment-Markup">http://www.w3.org/TR/Micropayment-Markup</A>
|
|
<DT>
|
|
Previous versions:
|
|
<DD>
|
|
<A HREF="http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990609">http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990609</A>
|
|
<DD>
|
|
<A HREF="http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990315">http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990315</A>
|
|
<DT>
|
|
<DT>
|
|
Editor:
|
|
<DD>
|
|
Thierry Michel (<A HREF="mailto:tmichel@w3.org">tmichel@w3.org</A>)
|
|
</DL>
|
|
<P class="copyright">
|
|
<A href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"><BR>
|
|
Copyright</A> © 1999 <A href="http://www.w3.org/">W3C</A>
|
|
(<A href="http://www.lcs.mit.edu/">MIT</A>,
|
|
<A href="http://www.inria.fr/">INRIA</A>,
|
|
<A href="http://www.keio.ac.jp/">Keio</A>), All Rights Reserved. W3C
|
|
<A href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</A>,
|
|
<A href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</A>,
|
|
<A href="http://www.w3.org/Consortium/Legal/copyright-documents">document
|
|
use</A> and
|
|
<A href="http://www.w3.org/Consortium/Legal/copyright-software">software
|
|
licensing</A> rules apply.
|
|
</DIV>
|
|
<P>
|
|
<HR title="Separator from Header">
|
|
<H2>
|
|
<A name="abstract">Abstract</A>
|
|
</H2>
|
|
<P>
|
|
This specification provides an extensible way to embed in a Web page all
|
|
the information necessary to initialize a micropayment (amounts and currencies,
|
|
payment systems, etc). This embedding allows different micropayment electronic
|
|
wallets to coexist in a interoperable manner.
|
|
<H2>
|
|
<A name="status">Status of this document</A>
|
|
</H2>
|
|
<P>
|
|
The
|
|
<A HREF="http://www.w3.org/ECommerce/Micropayments/Group/MarkupWG.html">Micropayment
|
|
Markup Working Group</A> (W3C Members only), with this 1999 August 25th Final
|
|
Public Working Draft, invites comment on our specification for "Common Markup
|
|
for Micropayment per-fee-links". <BR>
|
|
This Working Group is part of the
|
|
<A HREF="http://www.w3.org/ECommerce/Micropayments/Overview.html">Micropayment
|
|
task</A> within
|
|
the <A HREF="http://www.w3.org/ECommerce/Activity.html">ECommerce
|
|
Activity</A>.
|
|
<P>
|
|
The W3C Membership and other interested parties are invited to review this
|
|
public specification and report implementation experience. Please send comments
|
|
to the publicly archived
|
|
list <A HREF="mailto:www-micropay-comments@w3.org">www-micropay-comments@w3.org</A>
|
|
(<A HREF="http://lists.w3.org/Archives/Public/www-micropay-comments/">archive</A>).<BR>
|
|
<BR>
|
|
This specification is in
|
|
<A HREF="http://www.w3.org/Consortium/Process/#RecsWD">last call</A>, comments
|
|
from the Team and the Working Groups are requested before 30th September
|
|
1999. <BR>
|
|
However this final Public Working Draft will be held at this stage to await
|
|
significant implementation experience, allow possibly related work in other
|
|
Micropayment WGs to progress further, and collect comments on the public
|
|
mailing list.<BR>
|
|
The amount of implementation received by 2000 March 31th on the mailing list
|
|
will determine if this draft will be submitted for Proposed Recommendation
|
|
is to occur. In that case, comments will be considered for a new Proposed
|
|
Recommendation version that will follow very soon after.
|
|
<P>
|
|
While we welcome implementation experience reports, the Micropayment Markup
|
|
Working Group will not allow early implementation to constrain its ability
|
|
to make changes to this specification prior to final release .
|
|
<P>
|
|
This Working Draft may be updated, replaced, or obsoleted by other
|
|
documents at any time. It is inappropriate to use W3C Working Drafts as reference
|
|
material or to cite them as other than "work in progress". <BR>
|
|
A list of current W3C working drafts can be found at
|
|
<A HREF='http://www.w3.org/TR'>http://www.w3.org/TR</A>.
|
|
<!--
|
|
<H2><A name="formats">Available formats</A></H2>
|
|
<P>
|
|
This document is available in the following formats:</P>
|
|
<DL>
|
|
<DT>HTML:
|
|
<DD>
|
|
<A href="http://www.w3.org">http://www.w3.org/</A>
|
|
</DL>
|
|
-->
|
|
<H2>
|
|
<A name="contents">Table of contents</A>
|
|
</H2>
|
|
<OL CLASS="level0">
|
|
<LI>
|
|
<A HREF="#introduction">Introduction</A>
|
|
<OL CLASS="level1">
|
|
<LI>
|
|
<A HREF='#origin-goals'>Origin and Goals</A>
|
|
<LI>
|
|
<A HREF='#Relationship'>Current status</A>
|
|
<LI>
|
|
<A HREF='#Principles'>Principles and Parties</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF='#Architecture'>Architecture</A>
|
|
<OL CLASS="level1">
|
|
<LI>
|
|
<A HREF='#Basic'>Basic architecture</A>
|
|
<LI>
|
|
<A HREF="#Security">Security</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF='#Requirements'>Requirements</A>
|
|
<OL CLASS="level1">
|
|
<LI>
|
|
<A HREF="#Conformancerec">Conformance Requirements</A>
|
|
<LI>
|
|
<A HREF="#Embedingrec">Embedding Requirements</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF='#Requiredfields'>Defined fields</A>
|
|
<OL CLASS="level1">
|
|
<LI>
|
|
<A HREF='#fields'>Fields description</A>
|
|
<OL CLASS="level2">
|
|
<LI>
|
|
<A HREF="#Price">Price</A>
|
|
<LI>
|
|
<A HREF="#Textlink">Text and Image to be linked</A>
|
|
<LI>
|
|
<A HREF="#Request">Requesturl</A>
|
|
<LI>
|
|
<A HREF="#Client">Buyid</A>
|
|
<LI>
|
|
<A HREF="#Specific">Specific field</A>
|
|
<LI>
|
|
<A HREF="#title">Title</A>
|
|
<LI>
|
|
<A HREF="#Description">Longdesc</A>
|
|
<LI>
|
|
<A HREF="#Base">Baseurl</A>
|
|
<LI>
|
|
<A HREF="#Merchant">Merchant Identifier</A>
|
|
<LI>
|
|
<A HREF="#Duration">Duration</A>
|
|
<LI>
|
|
<A HREF="#Expiration">Expiration</A>
|
|
<LI>
|
|
<A HREF="#Target">Target</A>
|
|
<LI>
|
|
<A HREF="#Language">Language</A>
|
|
<LI>
|
|
<A HREF="#Type">Type</A>
|
|
<LI>
|
|
<A HREF="#AccessKey">AccessKey</A>
|
|
<LI>
|
|
<A HREF="#Chacarter Encoding">Character Encoding</A>
|
|
<LI>
|
|
<A HREF="#Meta">ExtData</A>
|
|
<LI>
|
|
<A HREF="#ExtDataParm">ExtDataParm</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF="#General">General notes on fields</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF="#Implementation">Implementation</A>
|
|
<LI>
|
|
<A HREF="#appendix">Appendices</A>
|
|
<OL CLASS="level1">
|
|
<LI>
|
|
<A HREF="#Appendix 1">Embedding information in HTML pages-Encoding for Plug-in
|
|
or Applets</A>
|
|
<LI>
|
|
<A HREF="#Appendix 2">Embedding information using RDF encoding</A>
|
|
<LI>
|
|
<A HREF="#Appendix 3">Generate Embedding on the Server side</A>
|
|
<LI>
|
|
<A HREF="#Appendix 4">Detecting the Browser capabilities</A>
|
|
<LI>
|
|
<A HREF="#Appendix 5">Generate Encoding using Javascript on the client side</A>
|
|
<LI>
|
|
<A HREF="#Appendix 6" NAME="List">List of payment systems</A>
|
|
<LI>
|
|
<A HREF="#Appendix 7" NAME="List">Currency naming</A>
|
|
</OL>
|
|
<LI>
|
|
<A HREF="#acknowledgments">Acknowledgments</A>
|
|
<LI>
|
|
<A HREF='#References'>References</A>
|
|
</OL>
|
|
<P>
|
|
<HR>
|
|
<H2>
|
|
<A NAME="introduction">1. Introduction</A>
|
|
</H2>
|
|
<H3>
|
|
<A NAME='origin-goals'>1.1 Origin and Goals</A>
|
|
</H3>
|
|
<P>
|
|
Micropayments provide an alternative revenue source for content providers
|
|
(initially of text and pictures, presumably multimedia later on) beyond
|
|
advertising and subscriptions. Micropayments may also provide revenue streams
|
|
for service providers (database lookup, proxy services etc.).
|
|
<P>
|
|
Currently, there is no clear definition of a "Web micropayment" that encompasses
|
|
all systems claiming to be micropayment systems. However, these systems all
|
|
share the goal of minimizing the cost overhead of a single transaction. Most
|
|
of these micropayment systems try to save costs, including financial
|
|
risk-management costs, operational costs (including communication, processing,
|
|
storage), and set-up costs.<BR>
|
|
Most micropayment systems also try to provide a simple user interface, especially
|
|
making buying as easy as possible. We believe that to pay a small amount
|
|
for content or services, the user should use the same user interface metaphor
|
|
as for regular web content: just click on a hypertext link. <BR>
|
|
Namely, micropayment content shall be reached by clicking on special, new
|
|
sort of links, which we call per-fee-links. Many of the existing micropayment
|
|
systems do follow this approach, however each of them is using its own
|
|
proprietary method of creating a per-fee-link and encoding the vital information
|
|
in the per-fee-link.
|
|
<P>
|
|
This document proposes an extensible and interoperable way to embed in a
|
|
Web page all the information necessary to initialize a micropayment, and
|
|
in particular for encoding per-fee-links.
|
|
<H3>
|
|
<A NAME='Relationship'>1.2 Current status</A>
|
|
</H3>
|
|
<P>
|
|
Today, a merchant willing to support multiple payment systems needs to embed
|
|
in each Web page payment information specific to each target system, using
|
|
a proprietary encoding for each one. Proprietary encodings introduce redundancy
|
|
of information and extra work for Web page authors. <BR>
|
|
This situation motivates the need for a common markup supported by multiple
|
|
payment systems.
|
|
<H3>
|
|
<A NAME='Principles'>1.3 Principles and Parties</A>
|
|
</H3>
|
|
<P>
|
|
Micropayments involve a buyer/customer C, a vendor/merchant M, and potentially
|
|
one or more additional parties that keep accounts (usually called brokers
|
|
[in Millicent], billing servers [in IBM MicroPayments], intermediaries [in
|
|
France Telecom Micropayments], etc.). However in this document we focus only
|
|
on the flow from the merchant to the customer, involved in the initialization
|
|
of a micropayment.
|
|
<H2>
|
|
<A NAME='Architecture'>2. Architecture</A>
|
|
</H2>
|
|
<P>
|
|
Parties involved in this specification architecture are Client and Merchant.
|
|
<P>
|
|
The Client initiates the micropayment when requesting information from the
|
|
server.
|
|
<H3>
|
|
<A NAME='Basic'>2.1 Basic architecture </A>
|
|
</H3>
|
|
<P>
|
|
The basic architecture consist of:
|
|
<UL>
|
|
<LI>
|
|
On the Client side:
|
|
<UL>
|
|
<LI>
|
|
a Browser,
|
|
<LI>
|
|
a module<I> </I>called Per Fee Link Handler (PFLH),
|
|
<LI>
|
|
one or more electronic micropayment wallets.<BR>
|
|
</UL>
|
|
<LI>
|
|
On the Merchant side:
|
|
<UL>
|
|
<LI>
|
|
an HTTP server<BR>
|
|
</UL>
|
|
</UL>
|
|
<P class="center">
|
|
<IMG ALT="basic architecture:Server,PFLH,Wallet,Browser," SRC="architecture">
|
|
<P class="caption">
|
|
[1] Merchant HTTP Server to Per Fee Link Handler flow<BR>
|
|
[2] Per Fee Link Handler to Wallet and Wallet to Per Fee Link Handler flows
|
|
<P>
|
|
This document focuses on the Merchant server to Per Fee Link Handler-Browser
|
|
flow and specifies the payment markup information.
|
|
<P>
|
|
This document does not address:
|
|
<UL>
|
|
<LI>
|
|
Per Fee Link Handler to electronic Wallet and Wallet to Per Fee Link Handler
|
|
flows,
|
|
<LI>
|
|
Per Fee Link Handler requirements.
|
|
</UL>
|
|
<P>
|
|
<STRONG>Note.</STRONG> <EM>The API from Per Fee Link Handler (PFLH) to Wallet
|
|
will be addressed in another specific API Working Draft. The PFLH functionalities
|
|
will also be addressed in another specific PFLH Working Draft.</EM>
|
|
<H3>
|
|
<A NAME="Security">2.2 Security </A>
|
|
</H3>
|
|
<P>
|
|
This document specifies the encoding of per-fee-links inside HTML page sent
|
|
from the merchant to the consumers browser. The specification does not describe
|
|
the specific transport mechanism of the HTML page, although we expect that
|
|
HTTP will be used as it is the transport mechanism used by existing browsers.
|
|
In particular, the specification does not address security concerns related
|
|
to the transmission of the per-fee-link from merchant to client, such as
|
|
authentication of the parameters in the per-fee-link (such as price) and
|
|
confidentiality of the per-fee-link. If such security concerns exist, the
|
|
application SHOULD use appropriate mechanisms, e.g. protect the confidentiality
|
|
and authenticity of all communication between consumer and merchant using
|
|
the Secure Sockets Layer [<A HREF="#SSL">SSL</A>] (HTTPS) protocol.
|
|
<H2>
|
|
3 <A NAME="Requirements">Requirements</A>
|
|
</H2>
|
|
<P>
|
|
This document section specifies requirements for interoperability among
|
|
micropayment systems.
|
|
<H3>
|
|
3.1 <A NAME="Conformancerec">Conformance requirements</A>
|
|
</H3>
|
|
<P>
|
|
The words "MUST" (or "required"), "SHOULD" (or "recommended"), and "MAY"
|
|
(or "optional") are used throughout the document and should be read as
|
|
interoperability requirements. The words are used as defined in RFC2119
|
|
[<A HREF="#RFC2119">RFC2119</A>] for defining the significance of each particular
|
|
requirement.
|
|
<P>
|
|
An implementation conforms to this specification if it satisfies all of the
|
|
normative statements ("MUST" or "required") in this document.
|
|
<H3>
|
|
3.2<A NAME="Embedingrec"> Embedding requirements:</A>
|
|
</H3>
|
|
<P>
|
|
Requirements for embedding micropayment information in web pages are:
|
|
<UL>
|
|
<LI>
|
|
Embedding MUST be simple, allowing "click and pay" interface,
|
|
<LI>
|
|
Embedding MUST minimize network-packet round trips,
|
|
<LI>
|
|
Embedding SHOULD use standard (or de-facto standard) features which are
|
|
implemented by most currently available browsers.
|
|
<LI>
|
|
Embedding SHOULD be common to all micropayment schemes.
|
|
</UL>
|
|
<H2>
|
|
<A NAME="Requiredfields"> 4. Defined fields </A>
|
|
</H2>
|
|
<H2>
|
|
4.1 <A NAME="Field">Field description </A>
|
|
</H2>
|
|
<P>
|
|
All the following common fields MUST be provided for conformance:
|
|
<A href="#Price">price</A>, <A href="#Textlink">textlink</A>,
|
|
<A href="#Request">requesturl</A>, <A HREF="#Specific">payment system</A>.
|
|
<P>
|
|
In addition, there SHOULD be a <A HREF="#title">title</A> field.
|
|
There MAY be an <A href="#Imagelink">imagelink</A>,
|
|
<A href="#Client">buyid</A>, <A HREF="#Base">baseurl</A>,
|
|
<A HREF="#Description">longdesc</A>, <A href="#Merchant">merchantname</A>,
|
|
<A href="#Duration">duration</A>, <A href="#Expiration">expiration</A>,
|
|
<A HREF="#target">target</A>, <A HREF="#Language">hreflang</A>,
|
|
<A HREF="#Type">type</A>, <A HREF="#AccessKey">accesskey</A>,
|
|
<A HREF="#Chacarter Encoding">charset</A>, <A HREF="#Meta">ExtData</A>,
|
|
<A HREF="#ExtDataParm">ExtDataParm</A> and information that a
|
|
<A href="#Specific">specific</A> payment system requires.
|
|
<P>
|
|
<TABLE BORDER CELLPADDING="5">
|
|
<CAPTION>
|
|
Micropayment fields
|
|
</CAPTION>
|
|
<TR>
|
|
<TH>Field name</TH>
|
|
<TH>Short Description</TH>
|
|
<TH>Format</TH>
|
|
<TH>Requirements</TH>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Price">price</A></TD>
|
|
<TD>Specifies the default amount and currency that the Customer will be charged
|
|
upon following the per-fee-link.</TD>
|
|
<TD>character string</TD>
|
|
<TD>MUST be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Textlink">textlink</A></TD>
|
|
<TD>Textual description of what the client is requesting. The text source
|
|
of the per-fee-link.</TD>
|
|
<TD>character string</TD>
|
|
<TD>MUST be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Imagelink">imagelink</A></TD>
|
|
<TD>Graphical description of what the client is requesting. The graphic source
|
|
of the per-fee-link. (here <TT>textlink</TT> provides a textual equivalent
|
|
of the image for accessibility).</TD>
|
|
<TD><A HREF="#URI">URI</A></TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Request">requesturl</A></TD>
|
|
<TD>Identifies what the client is actually requesting</TD>
|
|
<TD><A HREF="#URI">URI</A></TD>
|
|
<TD>MUST be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Specific">payment system</A></TD>
|
|
<TD>Identifies the micropayment systems supported by the merchant <BR>
|
|
and can also provide information unique to each payment system</TD>
|
|
<TD><A HREF="#URI">URI</A> <BR>
|
|
character string</TD>
|
|
<TD>MUST be provided<BR>
|
|
MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Client">buyid</A></TD>
|
|
<TD>Identifies the merchant offer the client is buying or has already bought</TD>
|
|
<TD><A HREF="#URI">URI</A></TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Base">baseurl</A></TD>
|
|
<TD>Provides a common prefix for relative URIs (e.g. the <TT>buyid</TT>
|
|
and <TT>requesturl</TT> parameters)</TD>
|
|
<TD>absolute <A HREF="#URI">URI</A></TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#title">title</A></TD>
|
|
<TD>Titles the content of the merchant offer the client is buying or has
|
|
already bought</TD>
|
|
<TD>character string</TD>
|
|
<TD>SHOULD be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Description">longdesc</A></TD>
|
|
<TD>Describes in detail the content of the merchant offer the client is buying
|
|
or has already bought</TD>
|
|
<TD><A HREF="#URI">URI</A></TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Merchant">merchantname</A></TD>
|
|
<TD>Specifies a merchant designation</TD>
|
|
<TD>character string</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Duration">duration</A></TD>
|
|
<TD>Indicates the time after purchase any URIs with the same <TT>buyid</TT>
|
|
can be retrieved without further payment.</TD>
|
|
<TD>integer number</TD>
|
|
<TD><SPAN >MAY</SPAN> be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A href="#Expiration">expiration</A></TD>
|
|
<TD>Indicates a date until which the offer from the merchant is valid.</TD>
|
|
<TD>date/time string<BR>
|
|
YYYY-MM-DDThh:mm:ssZ</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#target">target</A></TD>
|
|
<TD>Specifies the name of a frame where a document is to be loaded.</TD>
|
|
<TD>character string</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Language">hreflang</A></TD>
|
|
<TD>Specifies the base language of the resource designated by the per-fee-link.</TD>
|
|
<TD>language codes</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Type">type</A></TD>
|
|
<TD>Specifies the content type of the linked resource, designated by
|
|
the per-fee-link.</TD>
|
|
<TD>Mimetypes</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#AccessKey">accesskey</A></TD>
|
|
<TD>Assigns an access key to a per-fee-link.</TD>
|
|
<TD>character string</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Chacarter Encoding">charset</A></TD>
|
|
<TD>Specifies the character encoding of the resource designated by the
|
|
per-fee-link.</TD>
|
|
<TD>Charset</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#Meta">ExtData</A></TD>
|
|
<TD>Allows linking to an external metadata file describing additional
|
|
information regarding the per-fee-link.</TD>
|
|
<TD><A HREF="#URI">URI</A></TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><A HREF="#ExtDataParm">ExtDataParm</A></TD>
|
|
<TD>Provides a parameter to be applied for interpreting the contents of the
|
|
ExtData file.</TD>
|
|
<TD>character string</TD>
|
|
<TD>MAY be provided</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P>
|
|
<H3>
|
|
4.1.1 <A NAME="Price">Price</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>price</TT> parameter, which takes a character string, specifies the
|
|
default amount and currency that the Customer will be charged upon following
|
|
the link (if not already paid for). However this price may be overridden
|
|
by the <A href="#Specific">specific</A> payment system with which the payment
|
|
is to be made. The character string MUST be encoded as an amount followed
|
|
by a currency unit as follows:
|
|
<UL>
|
|
<LI>
|
|
A number MUST precede the currency. <BR>
|
|
This number MAY optionally be preceded by "+" or "-" specifying if it is
|
|
a positive amount (amount Customer will pay) or negative (amount Customer
|
|
will get). If absent, "+" is assumed. <BR>
|
|
The integer portion of the number, a non-empty string of decimal digits,
|
|
MUST be present, designating the quantity of major units of that currency.
|
|
The fractional portion of the number MAY optionally follow the integer portion.
|
|
This fractional part begins with a decimal point, indicated by a ".", followed
|
|
by any number of decimal digits.
|
|
<LI>
|
|
The exponential scaling portion of the number MAY optionally follow. It MUST
|
|
have an exponential "E" followed by either "+" or "-" and immediately followed
|
|
by a non-empty integer scaling exponent. Any number of digits of precision
|
|
and any size exponent MAY be provided. This scaling multiplies the number
|
|
by the indicated power of ten.
|
|
<LI>
|
|
These currency codes are the three-letter ISO 4217 codes or unregistered
|
|
four to ten letters currency names. (Refer to currencies naming in
|
|
<A HREF="#Appendix 7">Appendix 7</A>)
|
|
</UL>
|
|
<P>
|
|
This <TT>price</TT> parameter is mandatory and MUST be provided unless
|
|
<A HREF="#Meta">ExtData</A> parameter is provided and the price is
|
|
specified there.
|
|
<H3>
|
|
4.1.2 <A NAME="Textlink">Text</A> or <A NAME="Imagelink">Image</A> to be
|
|
linked
|
|
</H3>
|
|
<P>
|
|
The <TT>textlink</TT> parameter, which takes a character string, provides
|
|
a textual description of what the client is requesting. It is the text source
|
|
of the per-fee-link.<BR>
|
|
This <TT>textlink</TT> parameter is mandatory and MUST be provided.
|
|
<P>
|
|
The <TT>imagelink</TT> parameter, which takes a <A HREF="#URI">URI</A>, provides
|
|
a graphical description of what the client is requesting. It is the graphic
|
|
source of the per-fee-link.<BR>
|
|
When using this <TT>imagelink</TT> parameter, the <TT>textlink</TT>
|
|
parameter provides a textual equivalent for the image and is necessary for
|
|
accessibility.
|
|
<H3>
|
|
4.1.3 <A NAME="Request">Requesturl</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>requesturl</TT> parameter, which takes a <A HREF="#URI">URI</A>,
|
|
identifies what the client is actually requesting through the current
|
|
per-fee-link. This requested url is a part of the merchant offer identified
|
|
by <TT>buyid</TT>. It can be either an absolute <A HREF="#URI">URI</A> or
|
|
relative <A HREF="#URI">URI</A> only if the <TT>baseurl</TT> parameter is
|
|
specified. (allowing the wallet to construct the final URL)<BR>
|
|
<BR>
|
|
This <TT>requesturl</TT> parameter is mandatory and MUST be provided.
|
|
<H3>
|
|
4.1.4 <A NAME="Client">Buyid</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>buyid</TT> parameter, which takes a <A HREF="#URI">URI</A>, identifies
|
|
the merchant offer the client is buying (or has already bought). It can be
|
|
either an absolute <A HREF="#URI">URI</A> or relative <A HREF="#URI">URI</A>
|
|
only if the <TT>baseurl</TT> parameter is specified. (allowing the wallet
|
|
to construct the final URL).<BR>
|
|
This parameter MAY be identical to the <TT>requesturl</TT> parameter. It
|
|
MAY be different if, for example, the client has purchased a collection of
|
|
pages and requests only one of these pages. In this case, the resource identified
|
|
by <TT>buyid</TT> is larger than that identified by <TT>requesturl</TT>
|
|
parameter.<BR>
|
|
A merchant offer has an associated set of <TT>requesturl</TT>'s, that is
|
|
a set of per-fee-links. <TT>requesturl</TT> are identifiers for per-fee-links.
|
|
Payment for the whole set is required when you first request one per-fee-link
|
|
of the set.<BR>
|
|
This <TT>buyid</TT> parameter is optional and MAY be provided. If it is omitted
|
|
we assume it is identical to <TT>requesturl</TT>.
|
|
<H3>
|
|
4.1.5 <A NAME="Specific">Payment System Identifier and specific field</A>
|
|
</H3>
|
|
<P>
|
|
This specific field MUST be present in order to provide an identifier of
|
|
at least one usable payment system, and all suitable systems SHOULD be named.
|
|
When required, it MAY also provide parameters specific to each payment
|
|
system identified as mentioned above, insuring coexistence among the different
|
|
payment systems. Thus, there can be as many parameter sets (identifier
|
|
and specific parameters) as there are payments systems supported by the merchant.
|
|
<P>
|
|
The identifier for a payment system MUST be a <A HREF="#URI">URI</A>, unless
|
|
this payment system is registered (<A HREF="#Appendix 6">see Appendix 6</A>),
|
|
in which case the registered short name is to be used.<BR>
|
|
Additional specific information MAY be provided with a character string.<BR>
|
|
Information provided in the specific field SHOULD be used to override
|
|
information specified in the common fields above. To allow multiple
|
|
specific parameters, one MUST provide and use the following naming convention:
|
|
<UL>
|
|
<LI>
|
|
Specify the name of each payment system as name="1.mpname" value="xxx" where
|
|
1 stands for the number of the payment system (1, 2, 3... as many as supported
|
|
by merchant), xxx is the name of the payment system - either a URL or a name
|
|
from a pre-assigned list (<A HREF="#Appendix 6">see Appendix 6</A>).
|
|
<LI>
|
|
Then the rest of parameters of system 1 (2,3,..) will be given as
|
|
name="1.mpparamname" value="value", with a special parameter e.g.: name="1.mpurl"
|
|
value="http://www.foo.org/" giving a location to learn & register for
|
|
that payment system.
|
|
</UL>
|
|
<P>
|
|
<STRONG>Note.</STRONG> We recommend that when a system uses specific parameters
|
|
for the same meaning as the common (non-specific) parameters defined above
|
|
in the specification, the same parameter name will be used e.g. name="1.mpprice",
|
|
name="1.mpbaseurl" and the same syntax if possible. Normally such a
|
|
parameter SHOULD override the common (non-specific) parameter.
|
|
<H3>
|
|
4.1.6<A NAME="title"> Title </A>
|
|
</H3>
|
|
<P>
|
|
The <TT>title</TT> parameter, which takes a character string, titles the
|
|
resource of the merchant offer the client is buying or has already bought
|
|
(needed for registration in wallet log files for example).<BR>
|
|
This <TT>title</TT> parameter is optional but SHOULD be provided.
|
|
<H3>
|
|
4.1.7<A NAME="Description"> Longdesc</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>longdesc</TT> parameter, which takes a <A HREF="#URI">URI</A>, provides
|
|
a detailed description of the merchant offer the client is buying.<BR>
|
|
This <TT>longdesc</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.8 <A NAME="Base">Baseurl </A>
|
|
</H3>
|
|
<P>
|
|
The <TT>baseurl</TT> parameter specifies an absolute <A HREF="#URI">URI</A>
|
|
that acts as the base URI for resolving relative URIs (e.g. a prefix for
|
|
the <TT>buyid</TT> and <TT>requesturl</TT> parameters). <BR>
|
|
It identifies the merchant site where the purchase is to occur, plus a path
|
|
and a specific character string <TT>$MP$</TT> to be replaced by the wallet
|
|
by a proper payment system short code name. This search for $MP$ happens
|
|
before any unescaping of the URL is
|
|
done. (<A HREF="#Appendix 6">see Appendix 6</A>).
|
|
<P>
|
|
Examples of such a string are:
|
|
<PRE>http://www.merchant.org/shop/sales/$MP$/
|
|
http://www.$MP$.merchant.org/shop/sales/
|
|
</PRE>
|
|
<P>
|
|
This <TT>baseurl</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.9 <A NAME="Merchant">Merchant Site Identifier</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>merchantname</TT> parameter, which takes a character string, allows
|
|
giving a merchant name designation. This optional parameter provides
|
|
a user-viewable version of the name of the merchant. The wallet will need
|
|
to validate this (to make sure this really corresponds to the merchant ID
|
|
in the payment system - MAY also use some specific parameter if needed).
|
|
<H3>
|
|
4.1.10 <A NAME="Duration">Duration</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>duration</TT> parameter, which takes an integer number of seconds,
|
|
indicates the time after purchase any URIs with the same <TT>buyid</TT> can
|
|
be retrieved without further payment.<BR>
|
|
This <TT>duration</TT> parameter <SPAN >MAY</SPAN> be provided. In case it
|
|
is not provided, a default value is set to zero (meaning that the per-fee-link
|
|
can be only retrieved once after purchase).
|
|
<H3>
|
|
4.1.11 <A NAME="Expiration">Expiration </A>
|
|
</H3>
|
|
<P>
|
|
The <TT>expiration</TT> parameter, which takes a date and time, indicates
|
|
a date and time until which the offer from the merchant is valid. After this
|
|
given date and time the offer has expired and any attempt to buy it will
|
|
be rejected.
|
|
<P>
|
|
rejected<BR>
|
|
<SPAN >It is an optional parameter and MAY be provided.</SPAN>
|
|
<P>
|
|
The value of this parameter, a date/time string, MUST use the following format
|
|
as described in [<A HREF="#DATETIME">DATETIME</A>]:
|
|
<PRE> YYYY-MM-DDThh:mm:ssTZD
|
|
</PRE>
|
|
<P>
|
|
This format includes the complete date (YYYY-MM-DD) separated from the time
|
|
by the letter (T), which MUST include hours (hh), minutes (mm), seconds
|
|
(ss) and a time zone designator (TZD) where TZD is restricted to Z. Times
|
|
are always expressed in UTC (Coordinated Universal Time), with the special
|
|
UTC designator ("Z"). <BR>
|
|
An example of such a string is "1999-11-05T13:15:30Z" <BR>
|
|
Please consult [<A HREF="#DATETIME">DATETIME</A>] for the meaning of each
|
|
field.
|
|
<H3>
|
|
4.1.12 <A NAME="target">Target </A>
|
|
</H3>
|
|
<P>
|
|
The <TT>target</TT> parameter, which takes a character string, specifies
|
|
the name of a frame where a document is to be loaded.
|
|
<P>
|
|
By assigning a name to a frame via the name attribute, authors can refer
|
|
to it as the "target" of per-fee-links. Except for the reserved names listed
|
|
below, frame target names MUST begin with an alphabetic character (a-zA-Z).
|
|
User agents SHOULD ignore all other target names.<BR>
|
|
The following target names are reserved and have special meanings:
|
|
<UL>
|
|
<LI>
|
|
<TT> _blank</TT>: The user agent SHOULD load the designated document in a
|
|
new, unnamed window.
|
|
<LI>
|
|
<TT>_self</TT>: The user agent SHOULD load the document in the same frame
|
|
as per-fee-link that refers to this target.
|
|
<LI>
|
|
<TT>_parent</TT>: The user agent SHOULD load the document into the immediate
|
|
FRAMESET parent of the current frame. This value is equivalent to _self if
|
|
the current frame has no parent.
|
|
<LI>
|
|
<TT>_top</TT>: The user agent SHOULD load the document into the full, original
|
|
window (thus cancelling all other frames). This value is equivalent to _self
|
|
if the current frame has no parent.
|
|
</UL>
|
|
<P>
|
|
This <TT>target</TT> parameter is optional and MAY be provided. If not provided,
|
|
a default value is set to <TT>_self </TT>(meaning that the document will
|
|
load in the same frame as current per-fee-link).
|
|
<H3>
|
|
4.1.13 <A NAME="Language">Language </A>
|
|
</H3>
|
|
<P>
|
|
The <TT>hreflang</TT> parameter identifies the language of the linked
|
|
resource. <BR>
|
|
[<A HREF="#RFC1766">RFC1766</A>] defines and explains the language codes
|
|
to be used. Briefly, language codes consist of a primary code and a possibly
|
|
empty series of subcodes: language-code = primary-code ( "-" subcode )*<BR>
|
|
Here are some sample language codes:<BR>
|
|
"en": English<BR>
|
|
"en-US": the U.S. version of English.<BR>
|
|
"en-cockney": the Cockney version of English.<BR>
|
|
"i-navajo": the Navajo language spoken by some Native Americans.<BR>
|
|
"x-klingon": The primary tag "x" indicates an experimental language tag
|
|
<P>
|
|
Two-letter primary codes are reserved for [<A HREF="#ISO639">ISO639</A>]
|
|
language abbreviations. Two-letter codes include fr (French), de (German),
|
|
it (Italian), nl (Dutch), el (Greek), es (Spanish), pt (Portuguese), ar (Arabic),
|
|
he (Hebrew), ru (Russian), zh (Chinese), ja (Japanese), hi (Hindi), ur (Urdu),
|
|
and sa (Sanskrit). Any two-letter subcode is understood to be a
|
|
[<A HREF="#ISO3166">ISO3166</A>] country code.
|
|
<P>
|
|
This <TT>hreflang</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.14 <A NAME="Type">Type</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>type</TT> parameter specifies the content type of the linked
|
|
resource.<BR>
|
|
Examples of content types include "text/html", "image/png", "image/gif",
|
|
"video/mpeg", "audio/basic", "text/tcl", "text/javascript", and "text/vbscript".
|
|
For the current list of registered MIME types, please consult
|
|
[<A HREF="#MIMETYPES">MIMETYPES</A>].
|
|
<P>
|
|
This <TT>type</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.15 <A NAME="AccessKey">AccessKey</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>accesskey</TT> parameter, which takes a character string, assigns
|
|
an access key to a per-fee-link. An access key is a single character from
|
|
the document character set.<BR>
|
|
Pressing an access key assigned to a per-fee-link gives focus to the
|
|
per-fee-link. When a user activates a per-fee-link, the user agent generally
|
|
follows the link.
|
|
<P>
|
|
Examples of such a string is:<BR>
|
|
accesskey="L". Typing this access key takes the user to the requested
|
|
document of the current per-fee-link.
|
|
<P>
|
|
This <TT>accesskey</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.16 <A NAME="Chacarter Encoding">Character Encoding</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>charset</TT> parameter specifies the character encoding of the resource
|
|
designated by the per-fee-link, allowing conversion of a sequence of
|
|
bytes into a sequence of characters. Please consult the section on
|
|
<A HREF="http://www.w3.org/TR/REC-html40/charset.html#encodings">character
|
|
encodings</A> in the HTML4.0 Recommendation for more details.<BR>
|
|
Values must be strings (e.g., "euc-jp") from the [<A HREF="#IANA">IANA</A>]
|
|
registry (see [<A HREF="#CHARSETS">CHARSETS</A>] for a complete list). Names
|
|
of character encodings are case-insensitive.<BR>
|
|
An example of such a string is charset="ISO-8859-1"
|
|
<P>
|
|
This <TT>charset</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.17 <A NAME="Meta">ExtData</A>
|
|
</H3>
|
|
<P>
|
|
The <TT>ExtData</TT> parameter, which takes a <A HREF="#URI">URI</A>,
|
|
allows linking to an external metadata file describing additional
|
|
information regarding the per-fee-link.
|
|
<P>
|
|
Formats for this metadata file will be defined in future documents of this
|
|
group, and are likely to be expressed using the Resource Description Framework
|
|
([<A href="#RDF">RDF</A>]). This metadata file will typically express parameters
|
|
common to many per-fee-links such as currency conversion table, price-code
|
|
table (mapping from price code to price), general information and policy
|
|
of the seller, etc. The information may override parameters provided with
|
|
the per-fee-link (e.g. <A href="#Price">price</A>). <BR>
|
|
This <TT>ExtData</TT> parameter is optional and MAY be provided.
|
|
<H3>
|
|
4.1.18 <A NAME="ExtDataParm">ExtDataParm</A>
|
|
</H3>
|
|
<P>
|
|
Provides a parameter to be applied for interpreting the contents of the ExtData
|
|
file. A typical example would be a price code, to be used as the entry into
|
|
a price-code table to provide the actual price.<BR>
|
|
This <TT>ExtDataParm </TT>parameter is optional, it MAY be provided but only
|
|
if <TT>ExtData</TT> is provided.
|
|
<P>
|
|
<H2>
|
|
4.2 <A NAME="General">General notes on fields</A>
|
|
</H2>
|
|
<P>
|
|
<STRONG>Note.</STRONG> It is an error to provide:
|
|
<UL>
|
|
<LI>
|
|
multiple values of the same common (non-specific) parameter.
|
|
<LI>
|
|
a field which is not well structured as described above in this
|
|
specification.
|
|
</UL>
|
|
<P>
|
|
In these cases response is undefined (preferably an error message - probably
|
|
done by browser.)
|
|
<P>
|
|
<STRONG>Note.</STRONG> Any common parameters provided in an external file
|
|
through the <TT>ExtData</TT> parameter SHOULD override information specified
|
|
in all the <A HREF="#Requiredfields">common parameters</A> above.<BR>
|
|
<BR>
|
|
<STRONG>Note.</STRONG> The parameters <A HREF="#Base">baseurl</A>,
|
|
<A href="#Request">requesturl</A> are passed by PFLH to the wallets, allowing
|
|
to construct the payment-system-specific URL for the merchandise (to be used
|
|
in the HTTP GET/POST back to the merchant server). These fields MAY be overruled
|
|
if necessary, by a payment-system specific <TT>baseurl</TT> parameter (e.g.
|
|
if different payment systems are on different web servers at the merchant).
|
|
<P>
|
|
The URL sent to the wallet identifies a merchant site where the purchase
|
|
is to occur, plus a path and a specific character string <TT>$MP$</TT> to
|
|
be replaced by the wallet by a proper payment system short code name
|
|
(<A HREF="#Appendix 6">see Appendix 6</A>).<BR>
|
|
<TABLE BORDER CELLPADDING="10">
|
|
<CAPTION>
|
|
Fields involved in final URL constructed by Wallet
|
|
</CAPTION>
|
|
<TR>
|
|
<TD COLSPAN=3><TT>baseurl</TT> parameter</TD>
|
|
<TD ><TT>requesturl</TT> parameter</TD>
|
|
</TR>
|
|
<TR>
|
|
<TH>Merchant site</TH>
|
|
<TH>Path</TH>
|
|
<TH>Payment system</TH>
|
|
<TH>URL suffix (Client Requested url)</TH>
|
|
</TR>
|
|
<TR>
|
|
<TD>http://www.merchant.org/</TD>
|
|
<TD>shop/sales/</TD>
|
|
<TD>$MP$</TD>
|
|
<TD>elvis.html</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD COLSPAN=4><STRONG>URL sent to Wallet:
|
|
</STRONG>http://www.merchant.org/shop/sales/$MP$/elvis.html</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD COLSPAN=4><STRONG>Final URL constructed by Wallet for Payment Order :
|
|
</STRONG>http://www.merchant.org/shop/sales/Micropay/elvis.html</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P>
|
|
<H2>
|
|
<A NAME="Implementation">5. Implementation </A>
|
|
</H2>
|
|
<P>
|
|
One of the main requirements expressed in this document is that embedding
|
|
micropayment information in HTML SHOULD work with all current browsers.<BR>
|
|
The Working Group has also required interoperability among micropayment systems
|
|
though a common Markup.
|
|
<P>
|
|
For current browsers, embedding information in HTML pages MUST be done using
|
|
a Per Fee Link Handler, which MUST be a plug-in or JAVA Applet.<BR>
|
|
This embedding MUST be done as described in
|
|
<A HREF="#Appendix 1">Appendix 1.</A>
|
|
<P>
|
|
Today most browsers are non-RDF-aware browsers, but we cite an example embedding
|
|
of micropayment information using Resource Description Framework
|
|
([<A HREF="#RDF">RDF</A>]) for future RDF-compliant user agents in
|
|
<A HREF="#Appendix 2">Appendix 2.</A>
|
|
<P>
|
|
In order to have this embedding using RDF to work with current browsers,
|
|
a "transformation engine" hosted on the server could transform the HTML document
|
|
linked and the RDF document into an HTML document that includes either OBJECT
|
|
or APPLET or EMBED elements, making it understandable by current browser
|
|
versions. This architecture is proposed for informational purposes in
|
|
<A HREF="#Appendix 3">Appendix 3</A>.
|
|
<P>
|
|
In order to send to the browser the proper HTML page (with OBJECT or
|
|
APPLET or EMBED elements) the Merchant server needs to know the capabilities
|
|
of this browser. Is the Browser JAVA enabled ? Is the right Plugin
|
|
installed in the browser ? etc. Solutions and code are proposed
|
|
for informational purposes in <A HREF="#Appendix 4">Appendix 4</A>.
|
|
<P>
|
|
An Alternative implementation is to generate the HTML page on the client
|
|
side using Javascript for example. After detection of the browser capabilities,
|
|
a script can generate the elements and attributes for each fee link.Solutions
|
|
and code are proposed in <A HREF="#Appendix 5">Appendix 5</A>.
|
|
<P>
|
|
<HR>
|
|
<H2>
|
|
<A name="appendix"><STRONG>Appendices</STRONG></A>
|
|
</H2>
|
|
<H2>
|
|
<A NAME="Appendix 1">Appendix 1: Embedding micropayment information in
|
|
HTML pages using encodings for Plug-ins or Applets.</A>
|
|
</H2>
|
|
<P>
|
|
Due to <A HREF="#Embedingrec">requirements expressed above</A>, embedding
|
|
micropayment information SHOULD use standard (or de-facto standard) features
|
|
which are implemented by most currently available browsers.
|
|
<P>
|
|
All requested information needed to start micropayment MUST be present in
|
|
the HTML page sent from the merchant server. <BR>
|
|
For current browsers, embedding information in HTML pages can be done using
|
|
a Per Fee Link Handler, which MUST either be a plug-in or JAVA Applet.
|
|
<P>
|
|
In order to allow the Per Fee Link Handler to process this information, it
|
|
SHOULD be stored in an OBJECT element.
|
|
<P>
|
|
For user agents that do not support the OBJECT element, and for reasons of
|
|
backward compatibility, authors MAY use the APPLET or EMBED element.
|
|
<STRONG><BR>
|
|
Note.</STRONG> The APPLET element is deprecated in HTML 4.0 and SHOULD be
|
|
avoided. The EMBED element is <STRONG>not</STRONG> part of a W3C Recommendation
|
|
and SHOULD be avoided. Authors SHOULD use the OBJECT element.
|
|
<H3>
|
|
A1.1 OBJECT element
|
|
</H3>
|
|
<P>
|
|
HTML 4.0 introduced the OBJECT element (<A href="#HTML40">[HTML40]</A>, section
|
|
13.3) to allow HTML authors to specify everything required by an object for
|
|
its presentation by a user agent: source code, initial values, and run-time
|
|
data. The term "object" refers to applets, plug-ins, media handlers, etc.
|
|
<PRE><OBJECT codetype="application/java"
|
|
classid="http://www.miamachina.org/applet/micropayment.class"><BR><PARAM name="duration" value="60" valuetype="data">
|
|
A per-fee-link that needs an applet for rendering
|
|
</OBJECT>
|
|
</PRE>
|
|
<P>
|
|
The HTML 4.0 specification defines the attributes of the OBJECT element.
|
|
<BR>
|
|
The "classid" attribute specifies the location of the OBJECT's implementation
|
|
with a URL. <BR>
|
|
The "codetype" attribute specifies the content type of data to expect when
|
|
downloading the OBJECT. <BR>
|
|
The PARAM element within an OBJECT element specifies values to give to the
|
|
object at run-time (as name/value pairs).
|
|
<H3>
|
|
A1.2 APPLET element
|
|
</H3>
|
|
<P>
|
|
For user agents that do not support the OBJECT element and for reasons of
|
|
backward compatibility, authors MAY use the APPLET element. HTML 3.2
|
|
([<A href="#HTML32">HTML32</A>]) introduced the APPLET element to allow designers
|
|
to embed a Java applet in an HTML document. It is supported by all Java-enabled
|
|
browsers, but has been <STRONG>deprecated</STRONG> in HTML 4.0 in favor of
|
|
the OBJECT element.
|
|
<PRE><APPLET codebase="http://www.miamachina.org/applet/"
|
|
code="micropayment.class"
|
|
archive="myclasses.jar,myaudio.jar">
|
|
<PARAM name="duration" value="60" valuetype="data">
|
|
A per-fee-link that needs an applet for rendering.
|
|
</APPLET>
|
|
</PRE>
|
|
<P>
|
|
The HTML 4.0 specification (<A href="#HTML40">[HTML40]</A>, section 13.4)
|
|
defines the attributes of the (deprecated) APPLET element. <BR>
|
|
The "codebase" attribute specifies the base URL for the applet. <BR>
|
|
The "code" attribute specifies either the name of the class file that contains
|
|
the applet's compiled applet subclass or the path to get the class. <BR>
|
|
The "archive" attribute specifies a comma-separated list of URIs designated
|
|
resources to preload such as signed (trusted) code such as a Per Fee Link
|
|
Handler. <BR>
|
|
The PARAM element within an APPLET element specifies values to give to the
|
|
object at run-time (as name/value pairs).
|
|
<H3>
|
|
A1.3 EMBED element
|
|
</H3>
|
|
<P>
|
|
For user agents that do not support the OBJECT element and for reasons of
|
|
backward compatibility, authors MAY use EMBED element. <STRONG><BR>
|
|
Note.</STRONG> Whenever the OBJECT element can be used, authors SHOULD avoid
|
|
EMBED because it is not defined by a W3C Recommendation.
|
|
<P>
|
|
This EMBED element, supported by all plug-in-enabled browsers, allows designers
|
|
to embed a plug-in in an HTML document.
|
|
<PRE><EMBED src="http://www.miamachina.org/MicropaymentPlugin.exe"
|
|
duration="60"><BR>A per-fee-link that needs a plug-in for rendering.<BR></EMBED>
|
|
</PRE>
|
|
<P>
|
|
Optional parameters within EMBED element will be used to pass required
|
|
information by the plug-in at run-time.
|
|
<P>
|
|
PARAMETER_NAME=PARAMETER_VALUE
|
|
<H3>
|
|
A1.4 Per Fee Link Handler for OBJECT, APPLET, and EMBED element.
|
|
</H3>
|
|
<P>
|
|
The PFL Handler is a module that can either be a plug-in or a Java Applet.<BR>
|
|
It could be implemented in Java 1.2 allowing signed JAVA applets in browsers
|
|
supporting it, and otherwise as a plug-in.
|
|
<P>
|
|
The Per Fee Link Handler (PFLH) functionalities will be addressed in a specific
|
|
Working Draft.
|
|
<H3>
|
|
A1.5 Syntax for embedded <B>per-fee-link</B> using OBJECT, APPLET, and EMBED
|
|
element.
|
|
</H3>
|
|
<P>
|
|
<B>The <TT><A HREF="#Base">Baseurl</A></TT> data field:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE>
|
|
<PARAM name="baseurl" value="http://www.merchant.org/shop"
|
|
valuetype="ref"><BR><PARAM name="merchantname" value="ShopAndPay" valuetype="data">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>baseurl="http://www.merchant.org/shop"<BR>merchantname="ShopAndPay"
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Client">ClientBuy</A></TT> data field:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="buyid" value="catalog.html" valuetype="ref">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>buyid="catalog.html" <BR>
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Request">ClientRequest</A></TT> data field:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="requesturl" value="elvis.html" valuetype="ref">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>requesturl="elvis.html"
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Textlink">textlink</A></TT> and<TT>
|
|
<A href="#Imagelink">imagelink</A></TT> data fields :</B><BR>
|
|
<BR>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="textlink" value="Buy the biography of Elvis"
|
|
valuetype="data">
|
|
<PARAM name="imagelink" value="http://www.merchant.org/product.gif"
|
|
valuetype="ref">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>textlink="Buy the biography of Elvis"
|
|
imagelink="http://www.merchant.org/product.gif"
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Price">Price</A></TT> data field:</B><BR>
|
|
<BR>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="price" value="+0.01USD" valuetype="data">
|
|
<I>statement for one cent of a US Dollar.</I>
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>price="+1E-2FRF"
|
|
<I>statement for one cent of a French Franc</I>.
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Longdesc">Title</A></TT> data field:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="title" value="Biography of Elvis"
|
|
valuetype="data">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>title="Biography of Elvis"
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Duration">Duration</A></TT> data field</B><BR>
|
|
<BR>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="duration" value="60" valuetype="data">
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>duration="60"
|
|
</PRE>
|
|
<P>
|
|
<B>The <TT><A HREF="#Expiration">Expiration date</A> </TT>data field:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="expiration" value="1999-11-05T13:15:30Z"
|
|
valuetype="data">
|
|
</PRE>
|
|
<P>
|
|
<I>corresponds to November 5, 1999, 8:15:30 am, GMT Time.</I>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>expiration="1999-11-05T13:15:30Z"
|
|
</PRE>
|
|
<P>
|
|
<I>corresponds to the same instant as above.</I>
|
|
<P>
|
|
<B>For data fields <TT><A HREF="#Specific">specific</A></TT> to a micropayment
|
|
system:</B>
|
|
<P>
|
|
For OBJECT and APPLET:
|
|
<PRE><PARAM name="1.mpname" value="micropayment"
|
|
valuetype="data">
|
|
<PARAM name="1.mpurl" value="http://www.foo.it/micropay"
|
|
valuetype="ref">
|
|
<PARAM name="1.specific" value="124rfdetg14ft58rdef21f4251"
|
|
valuetype="data">
|
|
<PARAM name="1.mpbaseurl" value="http://www.merchant.it/"
|
|
valuetype="ref">
|
|
|
|
<BR><PARAM name="2.mpname" value="millipayment"
|
|
valuetype="data">
|
|
<PARAM name="2.mpurl" value="http://www.foo.it/millipay"
|
|
valuetype="ref">
|
|
<PARAM name="2.specific" value="475rdg546tfeww12wcft254hy4"
|
|
valuetype="data">
|
|
<PARAM name="2.mpbaseurl" value="http://www.merchant.fr/"
|
|
valuetype="ref">
|
|
|
|
|
|
</PRE>
|
|
<P>
|
|
For EMBED:
|
|
<PRE>1.mpname="micropayment"
|
|
1.mpurl="http://www.foo.it/micropay"<BR>1.specific="124rfdetg14ft58rdef21f4251"
|
|
1.mpbaseurl="http://www.merchant.it/"
|
|
|
|
2.mpname="millipayment" <BR>2.mpurl="http://www.foo.it/millipay"
|
|
2.specific="475rdg546tfeww12wcft254hy4"
|
|
2.mpbaseurl="http://www.merchant.fr/"<BR>
|
|
</PRE>
|
|
<H3>
|
|
A1.6 HTML example of embedded per-fee-link using OBJECT element.
|
|
</H3>
|
|
<PRE>
|
|
<HTML><HEAD>
|
|
<TITLE>Example:Fee Link for an Java Applet PFLH using OBJECT element<BR></TITLE></HEAD>
|
|
<BODY>
|
|
<OBJECT codetype="application/java"
|
|
classid="http://www.miamachina.org/applet/micropayment.class">
|
|
<PARAM name="baseurl" value="http://www.merchant.org/shop"
|
|
valuetype="ref"><BR><PARAM name="merchantname" value="ShopAndPay" valuetype="data">
|
|
<PARAM name="buyid" value="catalog.html" valuetype="ref">
|
|
<PARAM name="requesturl" value="elvis.html" valuetype="ref">
|
|
<PARAM name="textlink" value="Buy the biography of Elvis"<BR> valuetype="data">
|
|
<PARAM name="price" value="+0.01USD" valuetype="data"><BR><PARAM name="title" value="Biography of Elvis"<BR> valuetype="data">
|
|
<PARAM name="duration" value="60" valuetype="data">
|
|
<PARAM name="expiration" value="1999-11-05T13:15:30Z"<BR> valuetype="data">
|
|
<BR><PARAM name="1.mpname" value="micropayment"
|
|
valuetype="data">
|
|
<PARAM name="1.mpurl" value="http://www.foo.it/micropay"
|
|
valuetype="ref">
|
|
<PARAM name="1.specific" value="124rfdetg14ft58rdef21f4251"
|
|
valuetype="data">
|
|
<PARAM name="1.mpbaseurl" value="http://www.merchant.it/"
|
|
valuetype="ref">
|
|
|
|
<BR><PARAM name="2.mpname" value="millipayment"
|
|
valuetype="data">
|
|
<PARAM name="2.mpurl" value="http://www.foo.it/millipay"
|
|
valuetype="ref">
|
|
<PARAM name="2.specific" value="475rdg546tfeww12wcft254hy4"
|
|
valuetype="data">
|
|
<PARAM name="2.mpbaseurl" value="http://www.merchant.fr/"
|
|
valuetype="ref">
|
|
A per-fee-link that needs an applet for rendering.
|
|
</OBJECT>
|
|
</BODY></HTML><BR>
|
|
</PRE>
|
|
<H3>
|
|
A1.7 HTML example of embedded per-fee-link using APPLET element.
|
|
</H3>
|
|
<PRE>
|
|
<HTML><HEAD>
|
|
<TITLE>Example:Fee Link for an Java Applet PFLH using APPLET element<BR></TITLE></HEAD>
|
|
<BODY>
|
|
<APPLET codebase="http://www.miamachina.org/applet/"
|
|
code="micropayment.class"
|
|
archive="myclasses.jar,myaudio.jar">
|
|
<PARAM name="baseurl" value="http://www.merchant.org/shop"
|
|
valuetype="ref"><BR><PARAM name="merchantname" value="ShopAndPay" valuetype="data">
|
|
<PARAM name="buyid" value="catalog.html" valuetype="ref">
|
|
<PARAM name="requesturl" value="elvis.html" valuetype="ref">
|
|
<PARAM name="textlink" value="Buy the biography of Elvis"<BR> valuetype="data">
|
|
<PARAM name="price" value="+0.01USD" valuetype="data"><BR><PARAM name="title" value="Biography of Elvis"
|
|
<BR> valuetype="data">
|
|
<PARAM name="duration" value="60" valuetype="data">
|
|
<PARAM name="expiration" value="1999-11-05T13:15:30Z"<BR> valuetype="data">
|
|
<BR><PARAM name="1.mpname" value="micropayment"
|
|
valuetype="data">
|
|
<PARAM name="1.mpurl" value="http://www.foo.it/micropay"
|
|
valuetype="ref">
|
|
<PARAM name="1.specific" value="124rfdetg14ft58rdef21f4251"
|
|
valuetype="data">
|
|
<PARAM name="1.mpbaseurl" value="http://www.merchant.it/"
|
|
valuetype="ref">
|
|
<BR><PARAM name="2.mpname" value="millipayment"
|
|
valuetype="data">
|
|
<PARAM name="2.mpurl" value="http://www.foo.it/millipay"
|
|
valuetype="ref">
|
|
<PARAM name="2.specific" value="475rdg546tfeww12wcft254hy4"
|
|
valuetype="data">
|
|
<PARAM name="2.mpbaseurl" value="http://www.merchant.fr/"
|
|
valuetype="ref">
|
|
A per-fee-link that needs an applet for rendering.
|
|
</APPLET>
|
|
</BODY></HTML><BR>
|
|
</PRE>
|
|
<H3>
|
|
A1.8 HTML example of embedded per-fee-link using EMBED element.
|
|
</H3>
|
|
<PRE><HTML><HEAD>
|
|
<TITLE>Example:Fee Link for a Plugin PFLH using EMBED element<BR></TITLE></HEAD>
|
|
<BODY>
|
|
<EMBED src="http://www.miamachina.org/MicropaymentPlugin.exe"
|
|
baseurl="http://www.merchant.org/shop"
|
|
merchantname="ShopAndPay"
|
|
buyid="catalog.html"
|
|
requesturl="elvis.html"
|
|
textlink="Buy the biography of Elvis"
|
|
price="+0.01USD"<BR>title="Biography of Elvis"<BR>duration="60"
|
|
expiration="1999-11-05T13:15:30Z"
|
|
<BR>1.mpname="micropayment"
|
|
1.mpurl="http://www.foo.it/micropay"<BR>1.specific="124rfdetg14ft58rdef21f4251"
|
|
1.mpbaseurl="http://www.merchant.it/"
|
|
|
|
2.mpname="millipayment" <BR>2.mpurl="http://www.foo.it/millipay"
|
|
2.specific="475rdg546tfeww12wcft254hy4"
|
|
2.mpbaseurl="http://www.merchant.fr/" ><BR>A per-fee-link that needs a plug-in for rendering.<BR></EMBED>
|
|
</BODY></HTML>
|
|
</PRE>
|
|
<H3>
|
|
A1.9 HTML example of embedded per-fee-link using OBJECT element and
|
|
metadata file.
|
|
</H3>
|
|
<PRE>
|
|
<HTML><HEAD>
|
|
<TITLE>Example:Fee Link for an Java Applet PFLH using OBJECT element and ExtData field<BR></TITLE></HEAD>
|
|
<BODY>
|
|
<OBJECT codetype="application/java"
|
|
classid="http://www.miamachina.org/applet/micropayment.class">
|
|
<PARAM name="ExtData" value="http://www.merchant.org/shop/<TT>Micropayment-perfeelinks.rdf</TT>"
|
|
valuetype="ref">
|
|
<PARAM name="price" value="+0.01USD" valuetype="data"><BR>A per-fee-link that needs an applet for rendering.
|
|
</OBJECT>
|
|
</BODY></HTML>
|
|
</PRE>
|
|
<P>
|
|
In this last example the <TT>ExtData</TT> parameter allows linking to external
|
|
metadata describing this per-fee-link. On retrieval of the RDF file, the
|
|
Java applet parses this file and extracts the common micropayment fields
|
|
(e.g. <A href="#Price">price</A>, <A href="#Textlink">textlink</A>,
|
|
<A href="#Request">requesturl</A>, <A HREF="#Specific">payment system</A>,
|
|
<A HREF="#title">title</A>, <A href="#Imagelink">imagelink</A>,
|
|
<A href="#Client">buyid</A>, <A HREF="#Base">baseurl</A>,
|
|
<A HREF="#Description">longdesc</A>, <A href="#Merchant">merchantname</A>,
|
|
<A href="#Duration">duration</A>, <A href="#Expiration">expiration</A>,
|
|
etc.).<BR>
|
|
Refer to <A HREF="#Appendix 2">Apendix 2</A> for examples using RDF
|
|
encoding.
|
|
<P>
|
|
<STRONG>Note.</STRONG><EM> </EM>Information provided in this
|
|
<TT>ExtData</TT> parameter SHOULD be overriden by information
|
|
specified in all the <A HREF="#Requiredfields">common parameters</A>
|
|
above. <BR>
|
|
So in this example, the price mentioned in the PARAM element will override
|
|
any price mentioned in the RDF file.
|
|
<H2>
|
|
<A NAME="Appendix 2">Appendix 2: Embedding micropayment information using
|
|
RDF encoding .</A>
|
|
</H2>
|
|
<P>
|
|
This embedding using the Resource Description Framework
|
|
([<A href="#RDF">RDF</A>]) is an example implementation allowing different
|
|
micropayment electronic wallets to coexist in a interoperable manner.<BR>
|
|
All the <A HREF='#Requiredfields'>Required fields</A> are stated above in
|
|
this document.
|
|
<H3>
|
|
A2.<B>1 Benefits with RDF encoding:</B>
|
|
</H3>
|
|
<P>
|
|
Micropayment information can be embedded in HTML pages using RDF to be processed
|
|
by RDF-compliant user agents.<BR>
|
|
Micropayment information are statements that are properly expressed according
|
|
to the Resource Description Framework ([<A href="#RDF">RDF</A>]). There are
|
|
a number of reasons to use RDF as a data format for micropayments:
|
|
<UL>
|
|
<LI>
|
|
Shared code: Using an open format results in easy implementation through
|
|
use of code libraries,
|
|
<LI>
|
|
Searchability: RDF is designed for queries and searches (e.g. "Give me all
|
|
the pictures of Van Gogh that I can buy using micropayments for less
|
|
than 1 EUR") ,
|
|
<LI>
|
|
Extensibility with respect to micropayments,
|
|
<LI>
|
|
Integration with other relevant meta-information,
|
|
<LI>
|
|
Scalability: The power of this markup method grows with the power of RDF.
|
|
</UL>
|
|
<P>
|
|
As metadata, the information for micropayments can thereby be reasoned upon,
|
|
and fully integrated with all the other information stored in the World
|
|
Wide Web.
|
|
<H3>
|
|
A2.<B>2 RDF Transport:</B>
|
|
</H3>
|
|
<P>
|
|
In order to fully exploit these benefits, it is suggested that the necessary
|
|
parameters for micropayments are encoded in RDF and shipped by one or more
|
|
of the following ways:
|
|
<OL>
|
|
<LI>
|
|
External from the content, linked (in the case of HTML files with the LINK
|
|
element). We recommend using the link relation type
|
|
([<A href="#HTML40">HTML40</A>], section 6.12) of "meta" for this purpose.
|
|
For example:<BR>
|
|
<TT><LINK rel="meta" href="Micropayment-links.RDF"></TT>
|
|
<LI>
|
|
Included in the content of a Web in the section of the HTML document (inside
|
|
the HEAD element).
|
|
<LI>
|
|
Together with the content in the HTTP headers.
|
|
</OL>
|
|
<P>
|
|
<BR>
|
|
The recommended technique for embedding RDF expressions in an HTML document
|
|
([<A href="#RDF">RDF</A>], Appendix B.) is simply to insert the RDF in-line.
|
|
<P>
|
|
<STRONG>Note.</STRONG><EM> The resulting document will no longer conform
|
|
to HTML specifications up to and including [<A href="#HTML40">HTML40</A>],
|
|
but the W3C anticipates that the HTML language will evolve to support this.
|
|
See current new [<A HREF="#XHTML">XHTML</A>] work.</EM>
|
|
<H3>
|
|
A2.<B>3 RDF Model:</B>
|
|
</H3>
|
|
<P class="Center">
|
|
<IMG ALT="The RDF model using nodes and arcs diagram" SRC="RDFfeelink">
|
|
<P class="caption">
|
|
Figure 1: The RDF model (nodes and arcs diagram).
|
|
<P>
|
|
<STRONG>Note.</STRONG><EM> </EM>The prose corresponding to this diagram could
|
|
be read as follows :<BR>
|
|
<I>The per-fee-link (#feelink-1) whose price is one centime of FRF, requesturl
|
|
is "elvis.html", buyid is "catalog.html", longdesc is "description.html",
|
|
baseurl is "http://www.merchant.org/shop/", duration is 60 seconds and expiration
|
|
date is 1999-11-05T13:15:30Z, has alternative payment systems - identified
|
|
by name "AlternativePaymentSystems".<BR>
|
|
The first payment system is called "micropay1". It has a name
|
|
"http://www.foo.it/micropay1" and a value "xxxxxxxxxxxxxxxxxxxx".<BR>
|
|
The second payment system is called "micropay2". It has a name
|
|
"http://www.foo.it/micropay2" and a value "yyyyyyyyyyyyyyyyyyyy".</I>
|
|
<P>
|
|
<H3>
|
|
A2.<B>4 Example of </B>per-fee-link <B>using RDF encoding :</B>
|
|
</H3>
|
|
<H4>
|
|
A2.4.1 Text or image to be linked :
|
|
</H4>
|
|
<P>
|
|
The per-fee-link is specified with the A element from HTML 4.0.
|
|
<P>
|
|
For a text to be linked, the <TT>textlink</TT> parameter is in this case
|
|
the content of the A element. <BR>
|
|
The "id" attribute is used to assign a unique identifier to the A
|
|
element.<BR>
|
|
The <TT>requesturl</TT> parameter is the value of the "href" attribute of
|
|
the A element, identifying the source anchor. It could be either a relative
|
|
or absolute URL.<BR>
|
|
The <TT>title</TT> parameter is the value of the "title" attribute of the
|
|
A element.<BR>
|
|
The <TT>hreflang</TT> parameter is the value of the "hreflang" attribute
|
|
of the A element.<BR>
|
|
The <TT>accesskey</TT> parameter is the value of the "accesskey" attribute
|
|
of the A element.<BR>
|
|
The <TT>charset </TT>parameter is the value of the "charset" attribute of
|
|
the A element.<BR>
|
|
The <TT>target </TT>parameter is the value of the "target" attribute of the
|
|
A element.
|
|
<PRE><BODY>
|
|
<A href="elvis.html" id="feelink-1"
|
|
title="Biography of Elvis"
|
|
accesskey="L" charset="ISO-8859-1" type="text/html"
|
|
hreflang="en-US" target="_blank">
|
|
Buy the Biography of Elvis through this Per-fee-link </A>
|
|
</BODY>
|
|
</PRE>
|
|
<P>
|
|
For an image to be linked, the per-fee-link is specified using the A and
|
|
IMG elements of HTML. <BR>
|
|
The <TT>imagelink</TT> parameter is the value of the "src" attribute of IMG
|
|
element and in this case the <TT>textlink</TT> parameter is the value of
|
|
the "alt" attribute of IMG element.
|
|
<PRE><BODY>
|
|
<A href="elvis.html" id="feelink-img1"
|
|
title="Biography of Elvis">
|
|
<IMG src="http://www.merchant.org/product.gif"
|
|
alt="Buy the Biography of Elvis through this Per-fee-link"> </A>
|
|
</BODY>
|
|
</PRE>
|
|
<P>
|
|
The following <A NAME="RDFstatements">RDF statements </A>describing this
|
|
per-fee-link are mentioned in the HEAD of the HTML document as follows:
|
|
<P>
|
|
a- <B>Basic Serialization Syntax :</B>
|
|
<P>
|
|
The specification of RDF uses the Extensible Markup Language [XML] encoding
|
|
as its interchange syntax. RDF also requires the XML namespaces facility
|
|
to precisely associate each property with the schema that defines the property;
|
|
see Section 2.2.3., Schemas and Namespaces.
|
|
<P>
|
|
When a fragment of RDF is incorporated into an HTML document some browsers
|
|
will render any exposed string content. Exposed string content is anything
|
|
that appears between the ">" that ends one tag and the "<" that begins
|
|
the next tag.
|
|
<PRE><HEAD>
|
|
<TITLE>Example of Fee Link - Basic Serialization RDF Syntax Encoding</TITLE><BR><rdf:RDF
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:mp="http://www.w3.org/schema/micropay#">
|
|
<rdf:Description about="#feelink-1">
|
|
<mp:price>1E-2FRF</mp:price>
|
|
<mp:baseurl rdf:resource="http://www.merchant.org/shop"/>
|
|
<mp:buyid rdf:resource="catalog.html"/>
|
|
<mp:requesturl rdf:resource="elvis.html"/>
|
|
<mp:longdesc rdf:resource="description.html"/>
|
|
<mp:duration>60</mp:duration>
|
|
<mp:expiration>1999-11-05T13:15:30Z</mp:expiration>
|
|
<mp:paymentsystem>
|
|
<rdf:Alt>
|
|
<rdf:li>
|
|
<rdf:Description ID="micropay1">
|
|
<rdf:type resource="http://www.w3.org/schema/micropay#paymentoption"/>
|
|
<mp:name rdf:resource="http://www.foo.it/micropay1"/>
|
|
<rdf:value>xxxxxxxxxxxxxxxxxx</rdf:value>
|
|
</rdf:Description>
|
|
</rdf:li>
|
|
<rdf:li>
|
|
<rdf:Description ID="micropay2">
|
|
<rdf:type resource="http://www.w3.org/schema/micropay#paymentoption"/>
|
|
<mp:name rdf:resource="http://www.foo.it/micropay2"/>
|
|
<rdf:value>yyyyyyyyyyyyyyyyyyyy</rdf:value>
|
|
</rdf:Description>
|
|
</rdf:li>
|
|
</rdf:Alt>
|
|
</mp:paymentsystem>
|
|
</rdf:Description>
|
|
</rdf:RDF>
|
|
</HEAD>
|
|
|
|
</PRE>
|
|
<P>
|
|
<B>b-Basic Abbreviated Syntax</B>
|
|
<P>
|
|
While the serialization syntax shows the structure of an RDF model most clearly,
|
|
often it is desirable to use a more compact XML form. The RDF abbreviated
|
|
syntax accomplishes this.
|
|
<P>
|
|
The RDF abbreviated syntax can frequently be used to write property values
|
|
that are strings in attribute form and leave only white space as exposed
|
|
content.
|
|
<P>
|
|
The following RDF abbreviated syntax is equivalent to the above Basic
|
|
Serialization Syntax.
|
|
<PRE>
|
|
<HEAD>
|
|
<TITLE>Example of Fee Link - Abbreviated RDF Syntax Encoding</TITLE>
|
|
<rdf:RDF
|
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
xmlns:mp="http://www.w3.org/schema/micropay#">
|
|
<rdf:Description about="#feelink-1"
|
|
mp:price="1E-2FRF"
|
|
mp:duration="60"
|
|
mp:expiration="1999-11-05T13:15:30Z">
|
|
<mp:baseurl rdf:resource="http://www.merchant.org/shop"/>
|
|
<mp:buyid rdf:resource="catalog.html"/>
|
|
<mp:requesturl rdf:resource="elvis.html"/>
|
|
<mp:longdesc rdf:resource="description.html"/>
|
|
<mp:paymentsystem>
|
|
<rdf:Alt>
|
|
<rdf:li>
|
|
<mp:paymentoption rdf:ID="micropay1" name="http://www.foo.it/micropay1"
|
|
rdf:value="xxxxxxxxxxxxxxxxxx"/> </rdf:li>
|
|
<rdf:li>
|
|
<mp:paymentoption rdf:ID="micropay2" name="http://www.foo.it/micropay2"
|
|
rdf:value="yyyyyyyyyyyyyyyyyy"/> </rdf:li>
|
|
</rdf:Alt>
|
|
</mp:paymentsystem>
|
|
</rdf:Description><BR></rdf:RDF><BR></HEAD>
|
|
|
|
</PRE>
|
|
<P>
|
|
<STRONG>Note.</STRONG><EM> </EM>Authors concerned about preventing their
|
|
RDF content from rendering in old browsers MAY use the abbreviated syntax
|
|
to move the property value into an attribute.<BR>
|
|
The above RDF Description MAY be external to the HTML document but linked
|
|
with an LINK element and supplied by the transfer mechanism in the same retrieval
|
|
transaction as that which returns the resource ("along-with"; e.g. with HTTP
|
|
GET or HEAD). The RDF file would be a separate URI .This would allow the
|
|
base HTML document to be cacheable.
|
|
<P>
|
|
Validate the above RDF description with
|
|
<A HREF="http://www.w3.org/RDF/Implementations/SiRPAC/">SiRPAC</A>;
|
|
a Simple RDF Parser and Compiler, written by Janne Saarela (W3C).
|
|
<H2>
|
|
<A name="Appendix 3">Appendix 3: Generate Embedding on the Server side.</A>
|
|
</H2>
|
|
<P>
|
|
This appendix is for information purpose only.<BR>
|
|
As today most browsers are non-aware RDF browsers, we have to provide to
|
|
the user agent a comprehensive HTML page.
|
|
<H3>
|
|
<B>A.3.1. Generate different type of HTML pages on the server</B>.
|
|
</H3>
|
|
<P>
|
|
A solution is to use a "transformation engine" hosted on the server (possibly
|
|
a servlet or a proxy).<BR>
|
|
This engine would read as input the HTML document and its linked RDF
|
|
document and transform these into an HTML document that includes either
|
|
OBJECT or APPLET or EMBED elements, though making it comprehensive
|
|
according to the client browser version and brands.
|
|
<P>
|
|
This engine could be dynamic (process on flight the proper HTML page compliant
|
|
to the client browser version) on client's request. These HTML generated
|
|
pages could then be cached on the server for future request. This engine
|
|
could also be a batch process to produce the alternative needed HTML page
|
|
to cover most browsers versions.<BR>
|
|
On client's HTTP request, the server SHOULD first discover the client browser
|
|
capabilities ( see <A HREF="#Appendix 4">Appendix 4</A>) and according
|
|
to these capabilities send the HTML page using the proper embedding.
|
|
<H3>
|
|
<B>A.3.2. Benefits of generating HTML on the server :</B>
|
|
</H3>
|
|
<P>
|
|
This solution generation a final HTML page on the server from an HTML source
|
|
and RDF documents will:
|
|
<UL>
|
|
<LI>
|
|
allow to have standard HTML source pages hosted on the server. It allows
|
|
authoring links with current authoring tools and no special extra
|
|
knowledge.
|
|
<LI>
|
|
allow to have standard RDF files remaining on the server. It provides all
|
|
the benefits of RDF stated in <A HREF="#Appendix 2">Appendix 2</A>.
|
|
<LI>
|
|
ease merchant's authoring and maintaining fee links as only the
|
|
RDF document SHOULD be generated or modified. A light micropayment
|
|
RDF authoring tool (based on a specific RDF Micropayment Schema) would facilitate
|
|
editing these RDF files.
|
|
<LI>
|
|
allow future compatibility with RDF compliant Browsers without any changes
|
|
on the HTML source document remaining on the server.
|
|
</UL>
|
|
<H2>
|
|
<A name="Appendix 4">Appendix 4: Detecting the browser capabilities.</A>
|
|
</H2>
|
|
<P>
|
|
This appendix is for informational purposes only.<BR>
|
|
The Merchant server needs to detect the browser capabilities in order
|
|
to send to it the proper HLML page (with OBJECT or APPLET or
|
|
EMBED elements).
|
|
<P>
|
|
Browser capabilities depend on browser version and brand but also on
|
|
preferences set up by the user. The user can for instance disable JAVA, disable
|
|
Javascript, etc.
|
|
<P>
|
|
This detection can be done using Javascript.
|
|
<P>
|
|
<B>A.4.1 Detecting if the Browser is Javascript-enabled </B>
|
|
<P>
|
|
We can not write a JavaScriptEnabled() method in Javascript: a non-JavaScript
|
|
browser or a browser with Javascript disabled will not be able to process
|
|
the method call.<BR>
|
|
A simple solution is to use :
|
|
<PRE><SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> function1</SCRIPT>
|
|
and <NOSCRIPT> function 2 </NOSCRIPT>
|
|
</PRE>
|
|
<P>
|
|
One way of doing things is to redirect clients on test of enable or unable
|
|
to execute javascript :<BR>
|
|
A JavaScript-enabled browser executes the script (function 1) and
|
|
automatically redirect to a scriptable page "script.html"<BR>
|
|
A non-JavaScript browser follows the META element redirecting to another
|
|
non scriptable page "noscript.html"
|
|
<P>
|
|
<B>A.4.2 Detecting if the Browser is JAVA-enabled </B><BR>
|
|
<UL>
|
|
<LI>
|
|
Method for Navigator > 3.0 :<BR>
|
|
Syntax :javaEnabled() Parameters: None.<BR>
|
|
Description: javaEnabled returns true if Java is enabled; otherwise, false.
|
|
</UL>
|
|
<UL>
|
|
<LI>
|
|
For Internet Explorer Only: <BR>
|
|
Detect Java Virtual Machine version ... <BR>
|
|
Syntax : document.jvm.Support()
|
|
</UL>
|
|
<P>
|
|
<B>A.4.3 Detecting if the Browser has the plugin installed</B><BR>
|
|
<UL>
|
|
<LI>
|
|
This works on Netscape > 3.0 and Opera Only:<BR>
|
|
You can refer to the Plugin objects installed on the client by using an array.
|
|
Each element of the plugins array is a Plugin object. <BR>
|
|
Syntax : navigator.plugins[index]
|
|
</UL>
|
|
<P>
|
|
<B>A.4.4 Detecting with HTML elements</B><BR>
|
|
<UL>
|
|
<LI>
|
|
For EMBED elements: The NOEMBED tag specifies text to be displayed
|
|
by browsers that cannot display content from plug-in programs. Browsers that
|
|
can display plug-ins ignore all text in the NOEMBED tag.<BR>
|
|
<LI>
|
|
For OBJECT elements: If a Browser cannot determine or handle the type, it
|
|
cannot embed the object, so it ignores the PARAM elements and parses the
|
|
other HTML tags between <OBJECT > and </OBJECT>.(a SCRIPT element
|
|
for example)<BR>
|
|
<LI>
|
|
For APPLET elements: The content of the APPLET acts as alternate
|
|
information for user agents that don't support this element or are currently
|
|
configured not to support applets. One can insert a SCRIPT element in it.
|
|
User agents ignores the content otherwise.
|
|
</UL>
|
|
<H2>
|
|
<A name="Appendix 5">Appendix 5: Generate Encoding using Javascript on the
|
|
client side</A>.
|
|
</H2>
|
|
<P>
|
|
This implementation generates the HTML page on the client side using Javascript
|
|
for example. After detection of the browser capabilities, if the browser
|
|
is Javascript-enabled, a script can generate the HTML elements and attributes
|
|
for each fee link.
|
|
<P>
|
|
This implementation allows the elimination of two HTTP round trips,
|
|
(one for browser capabilities detection and an other one to send the proper
|
|
HTML page)
|
|
<P>
|
|
Two possibilities have been overviewed :
|
|
<OL>
|
|
<LI>
|
|
Fee links parameters are passed in a SCRIPT element.
|
|
<LI>
|
|
Fee links parameters are passed in a META element as attributes or in RDF
|
|
elements as RDF statements.
|
|
</OL>
|
|
<P>
|
|
<B>A5.1 Example of code generating HTML</B>
|
|
<P>
|
|
In this example all fee links parameters are passed in a SCRIPT element.
|
|
<PRE><HTML><HEAD>
|
|
<TITLE>Example of generated HTML</TITLE><BR><SCRIPT language="JavaScript"><BR><--
|
|
function markup(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)<BR>{<BR>Supports = navigator.javaEnabled();<BR> if (Supports)<BR> writeapplet(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);<BR> else<BR> if (navigator.appName.indexOf("Netscape")!=-1) <BR> {<BR> if (navigator.plugins["NPMINIPAY Dynamic Link Library"])<BR> writeembed(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10);<BR> else<BR> document.writeln("You don't have Micropayment plugin installed and
|
|
Java is not enabled in your browser")<BR> } <BR> else<BR> alert("Please enable Java applets in your browser to make micropayments")<BR>}
|
|
|
|
//This function formats HTML 4.0 for a Java Applet"
|
|
function writeobject(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)<BR>{
|
|
document.writeln (' <OBJECT codetype="application/java <BR>classid="http://www.miamachina.org/applet/micropayment.class">')<BR>document.writeln (' <PARAM NAME = "baseurl" VALUE="' + p1 +'valuetype="ref" ')<BR>document.writeln (' <PARAM NAME = "merchantname" VALUE="' + p2 +'valuetype="data" ')<BR>document.writeln (' <PARAM NAME = "buyid" VALUE="' + p3 +'valuetype="ref"')<BR>document.writeln (' <PARAM NAME = "requesturl" VALUE="' + p5 +'valuetype="ref"')<BR>document.writeln (' <PARAM NAME = "textlink" VALUE="' + p6 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "price" VALUE="' + p7 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "title" VALUE="' + p8 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "duration" VALUE="' + p9 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "expiration" VALUE="' + p10 +'valuetype="data" ')<BR>document.writeln ('</OBJECT>')<BR>}
|
|
//This function formats HTML 3.2 for a Java Applet
|
|
function writeapplet(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)<BR>{
|
|
document.writeln (' <APPLET codebase="http://www.miamachina.org/applet/"
|
|
code="micropayment.class" archive="myclasses.jar,myaudio.jar">')<BR>document.writeln (' <PARAM NAME = "baseurl" VALUE="' + p1 +'valuetype="ref" ')<BR>document.writeln (' <PARAM NAME = "merchantname" VALUE="' + p2 +'valuetype="data" ')<BR>document.writeln (' <PARAM NAME = "buyid" VALUE="' + p3 +'valuetype="ref"')<BR>document.writeln (' <PARAM NAME = "requesturl" VALUE="' + p5 +'valuetype="ref"')<BR>document.writeln (' <PARAM NAME = "textlink" VALUE="' + p6 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "price" VALUE="' + p7 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "title" VALUE="' + p8 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "duration" VALUE="' + p9 +'valuetype="data"')<BR>document.writeln (' <PARAM NAME = "expiration" VALUE="' + p10 +'valuetype="data" ')<BR>document.writeln (" </APPLET>")<BR>}
|
|
//This function formats non standard HTML for a Plugin
|
|
function writeembed(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)<BR>{
|
|
document.writeln (' <EMBED src="http://www.miamachina.org/MicropaymentPlugin.exe/">')<BR>document.writeln (' <baseurl=+"p1"')<BR>document.writeln (' <merchantname=+"p2"')<BR>document.writeln (' <buyid=+"p3"')<BR>document.writeln (' <requesturl=+"p5"')<BR>document.writeln (' <textlink=+"p6"')<BR>document.writeln (' <price=+"p7"')<BR>document.writeln (' <title=+"p8"')<BR>document.writeln (' <duration=+"p9"')<BR>document.writeln (' <expiration=+"p10"')<BR>document.writeln (' </EMBED> ')<BR>}<BR></SCRIPT>
|
|
</HEAD><BR><BODY>
|
|
<H2>Generate [Embed] or [Applet] depending on Browser capabilities</H2>
|
|
|
|
<NOSCRIPT>This page uses JavaScript. You SHOULD enable JavaScript </NOSCRIPT>
|
|
|
|
<SCRIPT language="JavaScript">
|
|
//Micropayment information needed for each fee link
|
|
markup("http://www.merchant.org/shop","ShopAndPay","catalog.html",
|
|
"elvis.html","Buy the biography of Elvis","+0.01USD",
|
|
"Biography of Elvis","60","1999-11-05T13:15:30Z");<BR></SCRIPT>
|
|
</BODY></HTML>
|
|
</PRE>
|
|
<P>
|
|
<B>A5.2 Second example of code generating HTML</B>
|
|
<P>
|
|
In this second example all fee link parameters are passed in a META element.(same
|
|
kind of code would apply to parameters passed in an RDF element).
|
|
<P>
|
|
This needs to access the Document Object Model to extract META or RDF statements
|
|
in order to generate the proper HTML page with OBJECT or APPLET or EMBED
|
|
elements. <BR>
|
|
Netscape Browser Object Model in Navigator 4.x or previous does not
|
|
provide access to these elements. <BR>
|
|
Therefore this example works ONLY with Internet Explorer browser.
|
|
<P>
|
|
This code extracts attributes from META and RDF elements. To complete the
|
|
process, other code has to first detect the browser capabilities (as shown
|
|
in <A HREF="#Appendix 4">Appendix 4</A>), and generate an HTML page as above.
|
|
<BR>
|
|
<BR>
|
|
<B>a. Getting parameters from META elements</B>
|
|
<PRE><HTML><HEAD>
|
|
<TITLE>Example of Getting parameters from META elements</TITLE>
|
|
<META name="baseurl" value="http://www.merchant.org/shop">
|
|
<META name="buyid" value="catalog.html" >
|
|
<META name="requesturl" value="elvis.html">
|
|
<META name="textlink" value="Buy the biography of Elvis">
|
|
<META name="price" value="+0.01USD" >
|
|
<META name="duration" value="60">
|
|
<META name="expiration" value="1999-11-05T13:15:30Z">
|
|
<META name="1.mpname" value="micropayment">
|
|
<META name="1.mpurl" value="http://www.foo.it/micropay">
|
|
<META name="1.specific" value="124rfdetg14ft58rdef21f4251">
|
|
<META name="1.mpbaseurl" value="http://www.merchant.it">
|
|
<META name="2.mpname" value="millipay">
|
|
<META name="2.mpurl" value="http://www.foo.it/millipay">
|
|
<META name="2.specific" value="475rdg546tfeww12wcft254hy4">
|
|
<META name="2.mpbaseurl" value="http://www.merchant.fr/">
|
|
</HEAD>
|
|
<BODY>
|
|
<SCRIPT language="JavaScript">
|
|
var coll = document.all.tags("META");
|
|
//Write the OBJECT element and it's parameters - for each fee link
|
|
document.writeln ('<OBJECT codetype="application/java classid="http://www.miamachina.org/applet/micropayment.class" >')
|
|
for (i = 0; i < coll.length; i++)
|
|
{
|
|
document.writeln('<PARAM NAME ="' + coll(i).name + '"' + ' VALUE="' + coll(i).value +'">');
|
|
}
|
|
document.writeln ('</OBJECT>')
|
|
</SCRIPT>
|
|
</BODY></HTML>
|
|
</PRE>
|
|
<P>
|
|
<B>b. Getting parameters from RDF element</B><BR>
|
|
<PRE><HTML><HEAD>
|
|
<TITLE>Example Getting parameters from RDF elements</TITLE>
|
|
<rdf:RDF>
|
|
<rdf:Description about="feelink-1" name="baseurl" value="http://www.merchant.org/shop">
|
|
....
|
|
</RDF:Description>
|
|
</rdf:RDF></HEAD>
|
|
<BODY>
|
|
<SCRIPT language="JavaScript">
|
|
//Write the OBJECT element and it's parameters - for each fee link
|
|
document.writeln ('<OBJECT codetype="application/java classid="http://www.miamachina.org/applet/micropayment.class" >')
|
|
var coll = document.all.tags("RDF:Description");
|
|
for (i = 0; i < coll.length; i++)
|
|
{
|
|
document.writeln('<PARAM NAME ="' + coll(i).name + '"' + ' VALUE="' + coll(i).value +'">');
|
|
}
|
|
document.writeln ('</OBJECT>')
|
|
</SCRIPT>
|
|
</BODY></HTML>
|
|
|
|
</PRE>
|
|
<H2>
|
|
<A NAME="Appendix 6">Appendix 6: List of payment systems.</A>
|
|
</H2>
|
|
<P>
|
|
We need to guarantee unique naming for payment system names and avoid
|
|
collision.<BR>
|
|
For payment system names that are not registered in the following list, one
|
|
MUST provide:
|
|
<UL>
|
|
<LI>
|
|
a short code name. Names beginning with "x-" are officially unreservable,
|
|
and thus may be used by any system with some local risk of name collision.
|
|
<LI>
|
|
a <A HREF="#URI">URI</A>.
|
|
</UL>
|
|
<P>
|
|
The short code name is the string that replaces $MP$ in URLs, but short code
|
|
names outside the following registry are meaningless. The
|
|
<A HREF="#URI">URI</A> identifies and determines wich wallets to activate,
|
|
not the short code name, allowing to prevent name collision. Therefore, a
|
|
payment system which is not listed in the following registry MUST provide
|
|
both the short name (prefixed by "x-") and the unique <A HREF="#URI">URI</A>.
|
|
<P>
|
|
Following is a small list of reserved short code names. We reserve the right
|
|
to extend it, or delegate control of it in the future, with a guarantee that
|
|
any changes or delegations will respect these rules and the names previously
|
|
reserved.
|
|
<P>
|
|
<TABLE BORDER CELLPADDING="5">
|
|
<CAPTION >
|
|
List of registered payment systems
|
|
</CAPTION>
|
|
<TR>
|
|
<TH>Company</TH>
|
|
<TH>Payment System</TH>
|
|
<TH>Short Code Name</TH>
|
|
<TH>URI</TH>
|
|
</TR>
|
|
<TR>
|
|
<TD>Compaq</TD>
|
|
<TD>MilliCent</TD>
|
|
<TD>mcent</TD>
|
|
<TD>http://www.millicent.com</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>IBM</TD>
|
|
<TD>IBM Micro payments</TD>
|
|
<TD>mpay</TD>
|
|
<TD>http://www.hrl.il.ibm.com/mpay/</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD>France Telecom</TD>
|
|
<TD>France Telecom Micropayments</TD>
|
|
<TD>mft</TD>
|
|
<TD><I>to be specified</I></TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P>
|
|
<H2>
|
|
<A NAME="Appendix 7">Appendix 7: Currency naming.</A>
|
|
</H2>
|
|
<P>
|
|
We need to guarantee unique naming for currency names and avoid collision.
|
|
<P>
|
|
For currency names that are not ISO 4217 codes registered, one MUST
|
|
provide:
|
|
<UL>
|
|
<LI>
|
|
a four to ten letters currency name beginning with "x-" to be used
|
|
by any system with some risk of collision. In addition, one can also mention
|
|
a meta-escape sequence; a new reserved prefix "z-" indicating any string
|
|
starting with "z-" has "z-" removed from it before use. (e.g. z-x-u
|
|
turns into x-u as a registered code, not into an x- extension string).
|
|
<LI>
|
|
a <A HREF="#URI">URI</A>.
|
|
</UL>
|
|
<P>
|
|
Example: a new currency for Air lines miles, could be named x-AM-zz (where
|
|
zz is the airline code) and identified by a <A HREF="#URI">URI</A>.
|
|
http://www.airline.com/zz
|
|
<H2>
|
|
<A name="acknowledgments">Acknowledgments</A>
|
|
</H2>
|
|
<P>
|
|
The current and former members of the Micropayment Markup Working Group are:
|
|
<P>
|
|
Amir Herzberg, Chair (IBM); Anat Sarig, (IBM); Mark Manasse, Co-Chair (Compaq);
|
|
Thierry Michel, Editor (W3C); Jean Claudes Pailles (France Telecom); Phillipe
|
|
Michon (France Telecom) ; Aymeric de Solages (France Telecom).
|
|
<H2>
|
|
<A name="References">References</A>
|
|
</H2>
|
|
<DL>
|
|
<DT>
|
|
<A name="CHARSETS">[<B>CHARSETS</B>]</A>
|
|
<DD>
|
|
Registered charset values. Download a list of registered charset values from
|
|
<A HREF="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets</A>.
|
|
<DT>
|
|
<A name="DATETIME">[<B>DATETIME</B>]</A>
|
|
<DD>
|
|
"Date and Time Formats", M. Wolf and C. Wicksteed, 15 September 1997. This
|
|
W3C Note is available at:<BR>
|
|
<A HREF="http://www.w3.org/TR/NOTE-datetime-970915">
|
|
http://www.w3.org/TR/NOTE-datetime-970915</A>
|
|
<DT>
|
|
<A name="HTML32">[<B>HTML32</B>]</A>
|
|
<DD>
|
|
"HTML 3.2 Reference Specification", D. Raggett, 14 January 1997. This W3C
|
|
Recommendation is available at:<BR>
|
|
<A href="http://www.w3.org/TR/REC-html32"> http://www.w3.org/TR/REC-html32</A>.
|
|
<DT>
|
|
<A name="HTML40">[<B>HTML40</B>]</A>
|
|
<DD>
|
|
"HTML 4.0 Specification", D. Raggett, A. Le Hors, I. Jacobs, Revised 24 April
|
|
1998. This W3C Recommendation is available at:<BR>
|
|
<A href="http://www.w3.org/TR/1998/REC-html40-19980424">
|
|
http://www.w3.org/TR/1998/REC-html40-19980424</A>.
|
|
<DT>
|
|
<A name="IANA">[<B>IANA</B>]</A>
|
|
<DD>
|
|
"Assigned Numbers", STD 2, RFC 1700, USC/ISI, J. Reynolds and J. Postel,
|
|
October 1994. Available at:<BR>
|
|
<A HREF="ftp://ftp.isi.edu/in-notes/rfc1700.txt">
|
|
ftp://ftp.isi.edu/in-notes/rfc1700.txt</A>
|
|
<DT>
|
|
<A name="ISO639">[<B>ISO639</B>]</A>
|
|
<DD>
|
|
"Codes for the representation of names of languages", ISO 639:1988. For more
|
|
information, consult http://www.iso.ch/cate/d4766.html. <BR>
|
|
See also
|
|
<A HREF="http://www.sil.org/sgml/iso639a.html">http://www.sil.org/sgml/iso639a.html</A>.
|
|
<DT>
|
|
<A name="ISO3166">[<B>ISO3166</B>]</A>
|
|
<DD>
|
|
"ISO3166: Codes for The Representation of Names of Countries." International
|
|
Organization for Standardization.
|
|
<DT>
|
|
<A name="MIMETYPES">[<B>MIMETYPES</B>]</A>
|
|
<DD>
|
|
List of registered content types (MIME types). Download a list of registered
|
|
content types from
|
|
<A HREF="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">ftp://ftp.isi.edu/in-notes/iana/assignments/media-types</A>/.
|
|
<DT>
|
|
<A name="RDF">[<B>RDF</B>]</A>
|
|
<DD>
|
|
"Resource Description Framework (RDF) Model and Syntax Specification.", O.
|
|
Lassila and R. Swick, 22 February 1999. This W3C Recommendation is available
|
|
at:<BR>
|
|
<A HREF="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222">http://www.w3.org/TR/1999/REC-rdf-syntax-19990222</A>
|
|
<DT>
|
|
<A name="RFC1766">[<B>RFC1766</B>]</A>
|
|
<DD>
|
|
"Tags for the Identification of Languages", H. Alvestrand, March 1995.Available
|
|
at
|
|
<A HREF="http://www.ietf.org/rfc/rfc1766.txt">http://www.ietf.org/rfc/rfc1766.txt</A>.
|
|
<DT>
|
|
<A name="RFC2119">[<B>RFC2119</B>]</A>
|
|
<DD>
|
|
"Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March
|
|
1997. Available at:<BR>
|
|
<A href="ftp://ftp.isi.edu/in-notes/rfc2119.txt">
|
|
ftp://ftp.isi.edu/in-notes/rfc2119.txt</A>
|
|
<DT>
|
|
<A name="SSL">[<B>SSL</B>]</A>
|
|
<DD>
|
|
Secure Sockets Layer (SSL V3.0) protocol, Alan O. Freier, Philip Karlton,
|
|
Paul C. Kocher, November 18, 1996. This document is available at:<BR>
|
|
<A HREF="http://home.netscape.com/eng/ssl3/draft302.txt">http://home.netscape.com/eng/ssl3/draft302.txt</A>
|
|
<DT>
|
|
<A name="URI">[<B>URI</B>]</A>
|
|
<DD>
|
|
"Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R.
|
|
Fielding, L. Masinter, August 1998. Available at:<BR>
|
|
<A href="ftp://ftp.isi.edu/in-notes/rfc2396.txt">
|
|
http://ds.internic.net/rfc/rfc2396.txt</A>.
|
|
<DT>
|
|
<A name="XML">[<B>XML 1.0</B>]</A>
|
|
<DD>
|
|
"Extensible Markup Language (XML) 1.0 Specification", T. Bray, J. Paoli,
|
|
C. M. Sperberg-McQueen, 10 February 1998. This W3C Recommendation is available
|
|
at:<BR>
|
|
<A href="http://www.w3.org/TR/1998/REC-xml-19980210">
|
|
http://www.w3.org/TR/1998/REC-xml-19980210</A>
|
|
<DT>
|
|
<A NAME="XML-Name">[<B>XML-Name</B>]</A>
|
|
<DD>
|
|
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 January 1999. This
|
|
W3C Recommendation is available at:<BR>
|
|
<A href="http://www.w3.org/TR/1999/REC-xml-names-19990114">
|
|
http://www.w3.org/TR/1999/REC-xml-names-19990114</A>
|
|
<DT>
|
|
<A NAME="XHTML">[<B>XHTML</B>]</A>
|
|
<DD>
|
|
"XHTML™ 1.0: The Extensible HyperText Markup Language: a Reformulation
|
|
of HTML 4.0 in XML 1.0. A W3C Public Working Draft is available at:<BR>
|
|
<A HREF="http://www.w3.org/TR/xhtml1">http://www.w3.org/TR/xhtml1</A>
|
|
<DT>
|
|
</DL>
|
|
<P>
|
|
<HR>
|
|
<ADDRESS>
|
|
$Date: 1999/08/25 18:04:52 $
|
|
</ADDRESS>
|
|
</BODY></HTML>
|