rel-payment: Difference between revisions
(→Implementations: split out podcast players specifically) |
|||
(28 intermediate revisions by 16 users not shown) | |||
Line 1: | Line 1: | ||
{{DraftSpecification}} | |||
== Authors == | == Authors == | ||
[http://joshkinberg.com Joshua Kinberg] | * [http://solitude.dk Andreas Haugstrup Pedersen] | ||
* [http://joshkinberg.com Joshua Kinberg] | |||
[http://momentshowing.net Jay Dedman] | * [http://momentshowing.net Jay Dedman] | ||
* [http://poorbuthappy.com/ease Peter Van Dijk] | |||
[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 == | == Application for addition to Atom registry of link relations == | ||
Line 108: | Line 94: | ||
The link element is subject to tampering and observation, as is the | The link element is subject to tampering and observation, as is the | ||
linked resource. For that reason, implementations should clearly | linked resource. For that reason, implementations should clearly | ||
signal the level trust and privacy a linked resource provides. If | signal the level trust and [[privacy]] a linked resource provides. If | ||
present, digital signatures provide authentication, message integrity, | present, digital signatures provide authentication, message integrity, | ||
and non-repudiation with proof of origin. Encryption provides data | and non-repudiation with proof of origin. Encryption provides data | ||
Line 114: | Line 100: | ||
confidentiality and message integrity provided by the transport used | confidentiality and message integrity provided by the transport used | ||
to reach the payment resource. | to reach the payment resource. | ||
== Prior Art == | == Prior Art == | ||
Line 135: | 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 300: | 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 315: | 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. | ||
* http://tipit.to | |||
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 == | |||
<span id="Tools_that_currently_support_RelPayment">Tools that currently support rel-payment</span>: | |||
* http:// | * 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. | ||
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://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 | * 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. | ||
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://rssbazaar.com | * http://rssbazaar.com | ||
* http://49media.com | * http://49media.com | ||
* [https://github.com/relpayment/fx-relpayment-addon Firefox rel-payment addon] - purely relies on rel-payment "microformat" parsing to provide a UI | |||
=== 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] | |||
* [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] | |||
* [https://player.fm Player.fm] shows a link to the payment page in podcast episodes. [https://twitter.com/PlayerFM/status/1228375072810897411 via @PlayerFM] | |||
* [https://castro.fm Castro] shows a link to the payment page in podcast episodes. [https://twitter.com/CastroPodcasts/status/1076607065479700480 via @CastroPodcasts] | |||
==See also== | |||
* [[rel-faq]] | |||
* [[currency]] | |||
* [[rel-payment-issues]] | |||
[[Category:Draft Specifications]] | |||
[[Category:rel-payment]] |
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
- http://en.wikipedia.org/wiki/OFX aka OFX
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.
- Firefox rel-payment addon - purely relies on rel-payment "microformat" parsing to provide a UI
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
- Transistor.fm has a field to set the link to use in rel=payment links in podcast episodes. announcement by @mijustin
- Player.fm shows a link to the payment page in podcast episodes. via @PlayerFM
- Castro shows a link to the payment page in podcast episodes. via @CastroPodcasts