BIP 0072: Difference between revisions
Require Accept: header |
Changed request param to just 'r' |
||
Line 24: | Line 24: | ||
The bitcoin: URI scheme is extended with an additional, optional | The bitcoin: URI scheme is extended with an additional, optional | ||
" | "r" parameter, whose value is a URL from which a PaymentRequest | ||
message should be fetched (unsafe and reserved octets in the URL value | message should be fetched (unsafe and reserved octets in the URL value | ||
must be encoded as described in RFC 1738). | must be encoded as described in RFC 1738). | ||
If the " | If the "r" parameter is provided and backwards compatibility | ||
is not required, then the bitcoin address portion of the URI may be | is not required, then the bitcoin address portion of the URI may be | ||
omitted (the URI will be of the form: bitcoin:? | omitted (the URI will be of the form: bitcoin:?r=... ). | ||
When Bitcoin wallet software that supports this BIP receives a | When Bitcoin wallet software that supports this BIP receives a | ||
bitcoin: URI with a | bitcoin: URI with a r parameter, it should ignore the bitcoin | ||
address/amount/label/message in the URI and instead fetch a | address/amount/label/message in the URI and instead fetch a | ||
PaymentRequest message and then follow the payment protocol, as | PaymentRequest message and then follow the payment protocol, as | ||
Line 50: | Line 50: | ||
Wallet software that does not support this BIP will simply ignore the | Wallet software that does not support this BIP will simply ignore the | ||
r parameter and will initiate a payment to bitcoin address. | |||
==Examples== | ==Examples== | ||
A backwards-compatible request: | A backwards-compatible request: | ||
<pre> | <pre> | ||
bitcoin:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11& | bitcoin:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11&r=https%3A%2F%2Fmerchant.com%2Fpay.php%3Fh%3D2a8628fc2fbe | ||
</pre> | </pre> | ||
Non-backwards-compatible equivalent: | Non-backwards-compatible equivalent: | ||
<pre> | <pre> | ||
bitcoin:? | bitcoin:?r=https%3A%2F%2Fmerchant.com%2Fpay.php%3Fh%3D2a8628fc2fbe | ||
</pre> | </pre> | ||
[[Category:BIP]] | [[Category:BIP]] |
Revision as of 02:59, 4 December 2013
This page describes a BIP (Bitcoin Improvement Proposal). |
BIP: 72 Title: bitcoin: uri extensions for Payment Protocol Author: Gavin Andresen <gavinandresen@gmail.com> Status: Draft Type: Standards Track Created: 29-07-2013
Abstract
This BIP describes an extension to the bitcoin: URI scheme (BIP 21) to support the payment protocol (BIP 70).
Motivation
Allow users to click on a link in a web page or email to initiate the payment protocol, while being backwards-compatible with existing bitcoin wallets.
Specification
The bitcoin: URI scheme is extended with an additional, optional "r" parameter, whose value is a URL from which a PaymentRequest message should be fetched (unsafe and reserved octets in the URL value must be encoded as described in RFC 1738).
If the "r" parameter is provided and backwards compatibility is not required, then the bitcoin address portion of the URI may be omitted (the URI will be of the form: bitcoin:?r=... ).
When Bitcoin wallet software that supports this BIP receives a bitcoin: URI with a r parameter, it should ignore the bitcoin address/amount/label/message in the URI and instead fetch a PaymentRequest message and then follow the payment protocol, as described in BIP 70.
Bitcoin wallets must support fetching PaymentRequests via http and https protocols; they may support other protocols. Wallets must include an Accept HTTP header in HTTP requests:
Accept: application/bitcoin-paymentrequest
If a PaymentRequest cannot be obtained (perhaps the server is unavailable), then the customer should be informed that the merchant's payment processing system is unavailable.
Compatibility
Wallet software that does not support this BIP will simply ignore the r parameter and will initiate a payment to bitcoin address.
Examples
A backwards-compatible request:
bitcoin:mq7se9wy2egettFxPbmn99cK8v5AFq55Lx?amount=0.11&r=https%3A%2F%2Fmerchant.com%2Fpay.php%3Fh%3D2a8628fc2fbe
Non-backwards-compatible equivalent:
bitcoin:?r=https%3A%2F%2Fmerchant.com%2Fpay.php%3Fh%3D2a8628fc2fbe