Skip to main content

SDK yandex money API

Project description

Build Status Coverage Status

Python Yandex.Money API SDK

Requirements

  1. Python 2.7 or Python 3.x

  2. pip

Getting started

Installation

  1. Install it with pip install yandex-money-sdk

  2. Paste from yandex_money.api import Wallet, ExternalPayment to your source code

Payments from the Yandex.Money wallet

Using Yandex.Money API requires following steps

  1. Obtain token URL and redirect user’s browser to Yandex.Money service. Note: client_id, redirect_uri, client_secret are constants that you get, when register app in Yandex.Money API.

    scope = ['account-info', 'operation-history'] # etc..
    auth_url = Wallet.build_obtain_token_url(client_id,
        redirect_uri, scope)
  2. After that, user fills Yandex.Money HTML form and user is redirected back to REDIRECT_URI?code=CODE.

  3. You should immediately exchange CODE with ACCESS_TOKEN.

    access_token = Wallet.get_access_token(client_id, code, redirect_uri,
        client_secret=None)
  4. Now you can use Yandex.Money API.

    account_info = api.account_info()
    balance = account_info['balance'] # and so on
    
    request_options = {
        "pattern_id": "p2p",
        "to": "410011161616877",
        "amount_due": "0.02",
        "comment": "test payment comment from yandex-money-python",
        "message": "test payment message from yandex-money-python",
        "label": "testPayment",
        "test_payment": true,
        "test_result": "success"
    };
    request_result = api.request(request_options)
    # check status
    
    process_payment = api.process({
        "request_id": request_result['request_id'],
    })
    # check result
    if process_payment['status'] == "success":
        # show success page
    else:
        # something went wrong

Payments from bank cards without authorization

  1. Fetch instantce-id(ussually only once for every client. You can store result in DB).

    response = ExternalPayment.get_instance_id(client_id)
    if reponse.status == "success":
        instance_id = response.instance_id;
    else:
        # throw exception with reponse->error message
  2. Make request payment

    # make instance
    external_payment = ExternalPayment(instance_id);
    
    payment_options = {
        # pattern_id, etc..
    }
    response = external_payment.request(payment_options)
    if response.status == "success":
        request_id = response.request_id
    else:
        # throw exception with response->message
  3. Process the request with process-payment.

    process_options = {
        "request_id": request_id
        # other params..
    }
    result = external_payment.process(process_options)
    # process result according to docs

Running tests

  1. Clone this repo.

  2. Create tests/constants.python file with ACCESS_TOKEN and CLIENT_ID constants.

  3. Install tox

  4. Run tox in repo root directory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yandex-money-sdk-0.1.3.tar.gz (5.3 kB view details)

Uploaded Source

File details

Details for the file yandex-money-sdk-0.1.3.tar.gz.

File metadata

File hashes

Hashes for yandex-money-sdk-0.1.3.tar.gz
Algorithm Hash digest
SHA256 be15d5a733e1c92038e40ca789e85aa103e0e3123f5127d0ce071fd97c692d25
MD5 86c470490c817112c9dfe93e356e8bb8
BLAKE2b-256 1d1d4a55bd569e64702e1c26a6b91517470fa498bef436232fcf99fa4f3b5a98

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page