Merge pull request #111 from andymckay/api

some first steps on how to integrate
This commit is contained in:
Andy McKay 2015-08-10 09:29:55 -07:00
Родитель 43150a73ee bf9450b854
Коммит 9e8ed782e6
5 изменённых файлов: 82 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,31 @@
.. _client-label:
Client API
====================
The selling site will need to include the `payments-client library <https://github.com/mozilla/payments-client>`_.
The client is available on `npm <https://www.npmjs.com/package/mozilla-payments-client>`_::
npm install mozilla-payments-client
Then add in:
.. code-block:: javascript
var client = new window.PaymentsClient({
accessToken: firefox_accounts_access_token,
product: {
id: 'product-id-from-payments-config',
image: 'http://url.to.product.image'
},
});
Parameters:
* `httpsOnly`: if `true`, the payments-ui will check to see if requests are using HTTPS. Should be set to `true` for production. Intended for development where HTTPS might not be available. Defaults to `true`.
* `accessToken`: an access token returned by Firefox Accounts.
* `product.id`: the id of the product from :ref:`payments config <configuration-label>`
* `product.image`: URL of an image to be shown in the purchase flow
* `paymentHost`: (optional) the server used to process payments [*]_
.. [*] This will default to the production server when it exists. Currently its going to default to a local Docker development instance: `http://pay.dev:8000`

Просмотреть файл

@ -0,0 +1,43 @@
.. _configuration-label:
Configuration
=============
Product configuration occurs in the `payments-config repository <https://github.com/mozilla/payments-config/>`_.
Configuration is stored in a `python file <https://github.com/mozilla/payments-config/blob/master/payments_config/products.py>`_, JSON, translations and other formats are generated from that.
Example:
.. code-block:: python
'mozilla-concrete': {
'email': 'support@concrete.mozilla.org',
'name': _('Mozilla Concrete'),
'url': 'http://pay.dev.mozaws.net/',
'terms': 'http://pay.dev.mozaws.net/terms/',
'products': [
{
'id': 'brick',
'description': _('Brick'),
'amount': '10.00',
},
{
'id': 'mortar',
'description': _('Mortar'),
'amount': '5.00',
'img': ('https://raw.githubusercontent.com/mozilla'
'/payments-config/master/payments_config'
'/assets/mortar.png'),
}
]
}
* ``email``: a support address for the selling site
* ``name``: a general name for the selling site, shown to buyers
* ``url``: a URL to the selling site
* ``terms``: a URL to the selling site terms
* ``products``: an array of products for sale
* ``products.id``: a unique id for the product, not shown to buyers
* ``products.description``: a description shown to buyers of the product
* ``products.img``: optional image URL to an image to show to buyers

Просмотреть файл

@ -4,5 +4,7 @@ APIs
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
configuration
client
payments payments
storage storage

Просмотреть файл

@ -1,4 +1,4 @@
Payment API Backend API
----------- -----------
The payments-ui interacts with payments-service, The payments-ui interacts with payments-service,

Просмотреть файл

@ -27,7 +27,11 @@ TODO
Product setup and configuration Product setup and configuration
=============================== ===============================
TODO To implement, you'll need to:
* :ref:`Complete product configuration <configuration-label>`
* :ref:`Add client to your project <client-label>`
* Call the appropriate APIs to start a purchase
Testing Testing
======= =======