rel-payment: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(→‎Implementations: split out podcast players specifically)
 
(34 intermediate revisions by 17 users not shown)
Line 1: Line 1:
{{DraftSpecification}}
== Authors ==
== Authors ==
[http://solitude.dk Andreas Haugstrup Pedersen]
[http://joshkinberg.com Joshua Kinberg]
[http://momentshowing.net Jay Dedman]


[http://poorbuthappy.com/ease Peter Van Dijk]
* [http://solitude.dk Andreas Haugstrup Pedersen]
* [http://joshkinberg.com Joshua Kinberg]
* [http://momentshowing.net Jay Dedman]
* [http://poorbuthappy.com/ease Peter Van Dijk]


== Abstract ==
== Abstract ==
RelPayment is a microformat for making exchanges of support (be it financial or otherwise) possible. By adding rel="payment" to a hyperlink a page indicates that the destination of that hyperlink provides a way to show or give support for the current page. For example to give financial support to the owner of the current page.
RelPayment is a microformat for making exchanges of support (be it financial or otherwise) possible. By adding rel="payment" to a hyperlink a page indicates that the destination of that hyperlink provides a way to show or give support for the current page. For example to give financial support to the owner of the current page, or to give support to the creator of a podcast.


One of the goals with this microformat is to give content aggregators such as RSS readers a way to extract these support links and give them special attention (such as displaying a standard button along with the content).
One of the goals with this microformat is to give content aggregators such as RSS readers and podcast players a way to extract these support links and give them special attention (such as displaying a standard button along with the content).


== RelPayment ==
== RelPayment ==
Line 23: Line 23:


== Visible Metadata ==
== Visible Metadata ==
Links marked with rel="payment" are meant to be visible on the page, and because of that the <a> element is encouraged over the <link> element. This gives readers the easiest access to show support and it discourages link fraud. Authors should not use empty hyperlinks such as <a href="[url]" rel="payment" /> and parsers may ignore empty links.
Links marked with rel="payment" are meant to be visible on the page, and because of that, the <a> element is encouraged over the <link> element. This gives readers the easiest access to show support and it discourages link fraud. Authors should not use empty hyperlinks such as <a href="[url]" rel="payment" /> and parsers may ignore empty links.


== XMDP profile ==
== XMDP profile ==
Line 39: Line 39:
</dl></nowiki>
</dl></nowiki>
</pre>
</pre>
== Application for addition to Atom registry of link relations ==
The following is an application for a link relation value, as
specified in the Atom Syndication Format.
[https://datatracker.ietf.org/public/idindex.cgi?command=id_detail&filename=draft-ietf-atompub-format]
thank you,
Joshua Kinberg, jkinberg AT gmail DOT com
Robert Sayre, sayrer AT gmail DOT com
=== Registry ===
http://www.iana.org/assignments/link-relations
=== Attribute Value ===
"payment"
=== Description ===
rel="payment" indicates a URI where payment is accepted. It is meant
as a general way to facilitate acts of payment, and thus this
specification makes no assumptions on the type of payment or
transaction protocol. Examples may include a WWW page where donations
are accepted or where goods and services are available for purchase.
rel="payment" is not intended to initiate an automated transaction.
A link element with a rel="payment" attribute may exist at the
feed/channel level and/or the entry/item level. For example, a
rel="payment" link at the feed/channel level may point to a "tip jar"
URI, whereas an entry/item containing a book review may include a
rel="payment" link that points to the location where the book may be
purchased through an online retailer.
=== Display Characteristics ===
End-user software could support rel="payment" by displaying a "payment
button" along with the content. Alternatively, content aggregators may
display a payment hyperlink containing the text specified in a
corresponding title attribute within the <link> element, for example:
<pre>
<link rel="payment"
    href="http://example.com/c.r.e.a.m"
    title="give me the loot" />
</pre>
May display either a payment button or a hyperlink containing the
text, "give me the loot."
=== Security Considerations ===
The link element is subject to tampering and observation, as is the
linked resource. For that reason, implementations should clearly
signal the level trust and [[privacy]] a linked resource provides.  If
present, digital signatures provide authentication, message integrity,
and non-repudiation with proof of origin. Encryption provides data
confidentiality. Implementations should also consider the level of
confidentiality and message integrity provided by the transport used
to reach the payment resource.


== Prior Art ==
== Prior Art ==
Line 59: Line 120:


Although this is similar to rel="payment" as we are proposing, it is not as flexible as it can only be used to define one payment location for an entire page (likely a tip jar or wishlist page). Perhaps rel="payment" could be used within the link element as well as within standard anchor tags?
Although this is similar to rel="payment" as we are proposing, it is not as flexible as it can only be used to define one payment location for an entire page (likely a tip jar or wishlist page). Perhaps rel="payment" could be used within the link element as well as within standard anchor tags?
===Open Financial Exchange===
* http://en.wikipedia.org/wiki/OFX aka OFX


== Examples from the wild ==
== Examples from the wild ==
Line 224: Line 288:
</form>
</form>
</nowiki></pre>
</nowiki></pre>
<dl><dt>Comments to author of article: </dt>
<dd>This is a bad example for semantic, microformats, w3c and rel="payment"
<ul><li>It's using table/td/tr for layout</li>
<li>attributes without quotation marks (bgColor=120)</li>
<li>uppercase to markup</li>
<li>markups depreceated</li>
<li>the example isn't have rel="payment" attribute</li></ul></dd>
</dl>


=== Practical examples of rel="payment" ===
=== Practical examples of rel="payment" ===
Line 239: Line 312:
Blog entry containing audio segment from an NPR interview. rel="payment" link encourages the reader to support NPR by purchasing something from the NPR Online Shop.
Blog entry containing audio segment from an NPR interview. rel="payment" link encourages the reader to support NPR by purchasing something from the NPR Online Shop.


== Application for addition to Atom registry of link relations ==
* http://tipit.to


The following is an application for a link relation value, as
Tipit.to is an appreciation intermediary which allows people to put a tipjar on their website. A tipjar is a page on Tipit.to where visitors can donate money. Sample code linking to the tipjar contains rel="payment".
specified in the Atom Syndication Format.
[https://datatracker.ietf.org/public/idindex.cgi?command=id_detail&filename=draft-ietf-atompub-format]


thank you,
== Implementations ==
<span id="Tools_that_currently_support_RelPayment">Tools that currently support rel-payment</span>:


Joshua Kinberg, jkinberg AT gmail DOT com
* http://GetFireAnt.com - FireAnt is an RSS video aggregator and media player. Subscribe to any RSS 2.0 channel and automatically download fresh media content to watch and listen to.


Robert Sayre, sayrer AT gmail DOT com
* http://blip.tv - blip.tv lets you share and watch video for free. We will host your video, make it available for your friends, family and blog readers and help you find video that others have shared.


=== Registry ===
* http://MeFeedia.com - Mefeedia is a video aggregator, like Bloglines for video. You can subscribe to channels and watch thousands of videos. This site is about not about movies, television shows or video made by big companies, it's about the thousands of people are creating video and putting it online. Movies made by real people.


http://www.iana.org/assignments/link-relations
* http://rssbazaar.com


=== Attribute Value ===
* http://49media.com


"payment"
* [https://github.com/relpayment/fx-relpayment-addon Firefox rel-payment addon] - purely relies on rel-payment "microformat" parsing to provide a UI


=== Description ===
=== Podcast Players ===
* [https://overcast.fm/ Overcast] includes a payment button in the "now playing" screen of podcast episodes if a rel-payment link is found in a podcast episode's show notes HTML. [https://overcast.fm/podcasterinfo docs] [http://web.archive.org/web/20180812012511/https://twitter.com/marcoarment/status/1028451747734409216 via marcoarment]


rel="payment" indicates a URI where payment is accepted. It is meant
* [https://transistor.fm/ Transistor.fm] has a field to set the link to use in rel=payment links in podcast episodes. [https://twitter.com/mijustin/status/1029230847373668352 announcement by @mijustin]
as a general way to facilitate acts of payment, and thus this
specification makes no assumptions on the type of payment or
transaction protocol. Examples may include a WWW page where donations
are accepted or where goods and services are available for purchase.
rel="payment" is not intended to initiate an automated transaction.


A link element with a rel="payment" attribute may exist at the
* [https://player.fm Player.fm] shows a link to the payment page in podcast episodes. [https://twitter.com/PlayerFM/status/1228375072810897411 via @PlayerFM]
feed/channel level and/or the entry/item level. For example, a
rel="payment" link at the feed/channel level may point to a "tip jar"
URI, whereas an entry/item containing a book review may include a
rel="payment" link that points to the location where the book may be
purchased through an online retailer.


== Display Characteristics ==
* [https://castro.fm Castro] shows a link to the payment page in podcast episodes. [https://twitter.com/CastroPodcasts/status/1076607065479700480 via @CastroPodcasts]
 
End-user software could support rel="payment" by displaying a "payment
button" along with the content. Alternatively, content aggregators may
display a payment hyperlink containing the text specified in a
corresponding title attribute within the <link> element, for example:
<pre>
<link rel="payment"
    href="http://example.com/c.r.e.a.m"
    title="give me the loot" />
</pre>
May display either a payment button or a hyperlink containing the
text, "give me the loot."


== Security Considerations ==
==See also==
* [[rel-faq]]
* [[currency]]
* [[rel-payment-issues]]


The link element is subject to tampering and observation, as is the
[[Category:Draft Specifications]]
linked resource. For that reason, implementations should clearly
[[Category:rel-payment]]
signal the level trust and privacy a linked resource provides.  If
present, digital signatures provide authentication, message integrity,
and non-repudiation with proof of origin. Encryption provides data
confidentiality. Implementations should also consider the level of
confidentiality and message integrity provided by the transport used
to reach the payment resource.

Latest revision as of 15:48, 8 June 2020

This document represents a draft microformat specification. Although drafts are somewhat mature in the development process, the stability of this document cannot be guaranteed, and implementers should be prepared to keep abreast of future developments and changes. Watch this wiki page, or follow discussions on the #microformats IRC channel to stay up-to-date.

Authors

Abstract

RelPayment is a microformat for making exchanges of support (be it financial or otherwise) possible. By adding rel="payment" to a hyperlink a page indicates that the destination of that hyperlink provides a way to show or give support for the current page. For example to give financial support to the owner of the current page, or to give support to the creator of a podcast.

One of the goals with this microformat is to give content aggregators such as RSS readers and podcast players a way to extract these support links and give them special attention (such as displaying a standard button along with the content).

RelPayment

RelPayment is meant as a general way to facilitate acts of support, and thus this specification makes no assumptions on the type of support.

A page may contain any number of hyperlinks marked with rel="payment". This allows authors to give readers more than one possible way to show support (a DropCash link, a PayPal link, a link to a page with an address to mail a check and so on). It also allows authors to add payment links that only relate to a certain section of a page. E.g. a book review website may have several book reviews on one page with each review having their own Amazon Affiliate link marked with rel="payment". Aggregators should implement support for multiple payment hyperlinks.

Authors should use the "title" attribute to provide a human readable description of the type of support pointed to by the hyperlink. Aggregators may use the contents of the "title" attribute to provide additional information about the support link to their users. E.g. <a href="[url]" rel="payment" title="Donate Money Via PayPal">.

If the hyperlink contains an image (e.g. <a href="[url] rel="payment"><img src="[url]" alt="Support Badge" /></a>) aggregators may display that image instead of the aggregator's standard link.

Visible Metadata

Links marked with rel="payment" are meant to be visible on the page, and because of that, the <a> element is encouraged over the <link> element. This gives readers the easiest access to show support and it discourages link fraud. Authors should not use empty hyperlinks such as <a href="[url]" rel="payment" /> and parsers may ignore empty links.

XMDP profile

<dl class="profile">
 <dt id="rel">rel</dt>
 <dd><p>
   <a rel="help" href="http://www.w3.org/TR/html401/struct/links.html#adef-rel">
     HTML4 definition of the 'rel' attribute.</a>  
   Here is an additional value.</p>
  <dl>
   <dt id="payment">payment</dt>
   <dd>Indicates that the referred resource provides a way to show support for the referring page.</dd>
  </dl>
 </dd>
</dl>

Application for addition to Atom registry of link relations

The following is an application for a link relation value, as specified in the Atom Syndication Format. [1]

thank you,

Joshua Kinberg, jkinberg AT gmail DOT com

Robert Sayre, sayrer AT gmail DOT com

Registry

http://www.iana.org/assignments/link-relations

Attribute Value

"payment"

Description

rel="payment" indicates a URI where payment is accepted. It is meant as a general way to facilitate acts of payment, and thus this specification makes no assumptions on the type of payment or transaction protocol. Examples may include a WWW page where donations are accepted or where goods and services are available for purchase. rel="payment" is not intended to initiate an automated transaction.

A link element with a rel="payment" attribute may exist at the feed/channel level and/or the entry/item level. For example, a rel="payment" link at the feed/channel level may point to a "tip jar" URI, whereas an entry/item containing a book review may include a rel="payment" link that points to the location where the book may be purchased through an online retailer.

Display Characteristics

End-user software could support rel="payment" by displaying a "payment button" along with the content. Alternatively, content aggregators may display a payment hyperlink containing the text specified in a corresponding title attribute within the <link> element, for example:

<link rel="payment"
    href="http://example.com/c.r.e.a.m"
    title="give me the loot" />

May display either a payment button or a hyperlink containing the text, "give me the loot."

Security Considerations

The link element is subject to tampering and observation, as is the linked resource. For that reason, implementations should clearly signal the level trust and privacy a linked resource provides. If present, digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Implementations should also consider the level of confidentiality and message integrity provided by the transport used to reach the payment resource.

Prior Art

Anil Dash's proposal, 2002

Anil Dash's proposal in 2002 to use XHTML <link> element to define payment URLs:

payment LINK tags
There are already a lot of defined (if not quite standardized) possible values for the LINK element in XHTML. We're using them for RSS Auto-Discovery and, of course, for stylesheets already. But what about something like:
<link rel="appendix" type="text/html" title="payment" href="URL of Wishlist or Paypal Page" />
A standardized way of linking to the page where you pay for your patronage of a site. Granted, calling the payment page an "Apppendix" of the site you're visiting is fudging things a bit. Maybe there's a more elegant way?

Although this is similar to rel="payment" as we are proposing, it is not as flexible as it can only be used to define one payment location for an entire page (likely a tip jar or wishlist page). Perhaps rel="payment" could be used within the link element as well as within standard anchor tags?

Open Financial Exchange

Examples from the wild

Amazon Associates

Product with image

This is the code generated by Amazon for a single product endorsement with photo. Everything is generated automatically. The form can be replaced with another regular HTML link.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
  <table cellSpacing=0 cellPadding=1 width=120 height=240 bgColor=#000000 border=0>
   <tr>
     <td>
       <table cellSpacing=0 cellPadding=0 width=118 height=238 align=center bgColor=#ffffff border=0>
         <tr>
           <td>
             <table width=100%  height=238 border=0 cellSpacing=0 cellPadding=0>
               <tr align=center>
                 <td>
                   <a href=http://www.amazon.com/exec/obidos/ASIN/B00022AH6I/solitudedk-20?creative=327641&camp=14573&link_code=as1 target=_blank><img src=http://rcm-images.amazon.com/images/P/B00022AH6I.01._SCTZZZZZZZ_.jpg vspace=3 border=0></a>
                 </td>
               </tr>
               <tr>
                 <td vAlign=center height=15%><center>
                   <a href=http://www.amazon.com/exec/obidos/ASIN/B00022AH6I/solitudedk-20?creative=327641&camp=14573&link_code=as1 target=_blank><font face=Arial color=#0000ff size=1>Kodak EasyShare DX7440 4MP Digital C...</font></a>
                 </td>
               </tr>
               <tr height=15%>
                 <td>
                   <center>
                   <font face=Arial color=#000000 size=-2>Kodak Digital </font>
                   </center>
                 </td>
               </tr>
               <tr>
                <td height=15%>
                   <center><a href="http://www.amazon.com/exec/obidos/redirect?tag=solitudedk-20&camp=14573&creative=327641&link_code=am1&path=tg/stores/offering/list/-/B00022AH6I/all/ASIN/B00022AH6I&camp=14573&creative=327641" target=_blank><font face=Arial color=#0000ff size=1>Best Price <font face=Arial color=#990000 size=1>$157.70</font></font></a></center>
                 </td>
               </tr>
               <tr height=15%>
                 <td>
                   <center><font face=Arial color=#000000 size=1>or Buy New <font color=#990000></font></font></center>
                 </td>
               </tr>
               <tr>
                 <td height=15%><center>
                   <table>
                   <form method="GET" action="http://www.amazon.com/gp/aws/cart/add.html" target="_blank">
                   <tr>
                   <td>
                   <input type="hidden" name="SubscriptionId" value="D68HUNXKLHS4J" />
                   <input type="hidden" name="AssociateTag" value="solitudedk-20" />
                   <input type="hidden" name="ASIN.1" value="B00022AH6I" />
                   <input type="hidden" name="Quantity.1" value="1" />
                   <input type="hidden" name="linkCode" value="as1" />
                   <input type="image"  name="submit.add" value="Buy from Amazon.com" border="0" alt="Buy from Amazon.com" src="http://rcm-images.amazon.com/images/G/01/buttons/buy-from-tan.gif" />
                   </center>
                   </td>
                   </tr>
                   </form>
                   </table>
                 </center></td>
               </tr>
               <tr>
                 <td height=5% align=absbottom>
                   <center><a href=http://rcm.amazon.com/e/cm/privacy-policy.html?o=1 target=_blank>
               <font face=Arial color=#a1a1a1 size=1>Privacy Information</font></a></center>
                 </td>
               </tr>
             </table>
           </td>
         </tr>
       </table>
     </td>
   </tr>
 </table>
   </body>
  </html> 

Text links

This is the code for a text link to a product category. The visible link text is chosen by the user.

<a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&camp=1789&
  tag=solitudedk-20&creative=9325&path=tg/browse/-/1">
  Get Photography Books at Amazon
</a>
<img src="http://www.assoc-amazon.com/e/ir?t=solitudedk-20&l=ur2&o=1" 
  width="1" height="1" border="0" alt="" style="border:none !important; 
  margin:0px !important;" />

Banners

The following is the code generated by Amazon for generic Amazone banners. Note use of imagemap to create "privacy policy link".

<html>
  <body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0>
    <table width=468 height=60 border=0 cellspacing=0 cellpadding=0>
      <tr valign=middle align=center>
        <td>
          <MAP NAME='boxmap'><AREA SHAPE='RECT' COORDS='379, 50, 469, 61' 
            HREF=http://rcm.amazon.com/e/cm/privacy-policy.html?o=1 target=_top>
            <AREA COORDS='0,0,10000,10000' HREF=http://www.amazon.com/exec/obidos/redirect?
              tag=solitudedk-20&creative=333489&camp=15553&link_code=ez&path=
              /tg/browse/-/171280 target=_top>
          </MAP>
          <img src=http://rcm-images.amazon.com/images/G/01/
            associates/2005/served-banners/us_banner_imag_468x60.gif 
            width='468' height='60' border='0' usemap='#boxmap'>
        </td>
      </tr>
    </table>
  </body>
</html> 

Search Boxes

Amazon offers search boxes:

<form action="http://www.amazon.com/exec/obidos/external-search">
<table class="normal" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td style="background-color:#fff;">
      <table border="0" cellpadding="0" cellspacing="0" align="top" 
        height="90" width="120" style="border: 1px solid #000000 !important;">
        <tr>
          <td style="background-color:#fff;" height="20" valign="bottom" align="center">
            <span style="font-family: verdana,arial,helvetica,sans-serif; 
            font-size:10px !important; font-weight:bold !important;">Search Now:</span>
          </td>
          <td style="background-color:#fff;"> </td>
        </tr>
        <tr>
          <td style="background-color:#fff;" align="center" height="30" valign="top">
            <input type="text" name="keyword" size="10" value="" />
          </td>
          <td style="background-color:#fff;" height="20" valign="top" align="left">

            <input type="hidden" name="mode" value="blended" /> 
            <input type="hidden" name="tag" value="solitudedk-20" /> 
            <input type="image" border="0" value="Go" name="Submit" 
              src="http://g-images.amazon.com/images/G/01/associates/build-links/
              ap-search-go-btn.gif" alt="[ Go ]" align="absmiddle" /> 
          </td>
        </tr>
        <tr>
          <td colspan="2" style="background-color:#000;" height="40">
           <a href="http://www.amazon.com/exec/obidos/redirect-home/solitudedk-20">
            <img src="http://g-images.amazon.com/images/G/01/associates/build-links/
            searchbox-logo-126x32.gif" height="36" border="0" width="126" 
            alt="Amazon Logo" /></a></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</form>
Comments to author of article:
This is a bad example for semantic, microformats, w3c and rel="payment"
  • It's using table/td/tr for layout
  • attributes without quotation marks (bgColor=120)
  • uppercase to markup
  • markups depreceated
  • the example isn't have rel="payment" attribute

Practical examples of rel="payment"

Blog entry containing video interview with founders of a theater group. rel="payment" link points to the theater group's fundraising page where the reader is encourage to donate via PayPal.

Blog entry containing home video that uses music by a popular recording artist. rel="payment" link encourages reader to purchase the artist's CD at Amazon (could have used Amazon affilliate link as noted above).

Blog entry containing audio segment from an NPR interview. rel="payment" link encourages the reader to support NPR by purchasing something from the NPR Online Shop.

Tipit.to is an appreciation intermediary which allows people to put a tipjar on their website. A tipjar is a page on Tipit.to where visitors can donate money. Sample code linking to the tipjar contains rel="payment".

Implementations

Tools that currently support rel-payment:

  • http://GetFireAnt.com - FireAnt is an RSS video aggregator and media player. Subscribe to any RSS 2.0 channel and automatically download fresh media content to watch and listen to.
  • http://blip.tv - blip.tv lets you share and watch video for free. We will host your video, make it available for your friends, family and blog readers and help you find video that others have shared.
  • http://MeFeedia.com - Mefeedia is a video aggregator, like Bloglines for video. You can subscribe to channels and watch thousands of videos. This site is about not about movies, television shows or video made by big companies, it's about the thousands of people are creating video and putting it online. Movies made by real people.

Podcast Players

  • Overcast includes a payment button in the "now playing" screen of podcast episodes if a rel-payment link is found in a podcast episode's show notes HTML. docs via marcoarment

See also