Skip to content

Latest commit

 

History

History
110 lines (82 loc) · 3.12 KB

File metadata and controls

110 lines (82 loc) · 3.12 KB

Platron Python SDK

Установка через pip

pip install platron

Тесты

Для запуска тестов нужно выполнить

pip install -r requirements-dev.txt

Для выполнения тестов на текущей версии python

pytest

Для выполнения тестов на разных версия проекта

tox

Модуль тестировался на python 2.7, 3.3, 3.4, 3.5, 3.6

В проекте есть интеграционные тесты. Для запуска нужно создать файл с настройками merchant_settings.py, скопировав его с файла merchant_settings_sample.py в папке \tests\integration\ и внести свои настройки

Примеры использования

1. Создание транзакции

from platron.request.request_builders.init_payment_builder import InitPaymentBuilder
from platron.request.clients.post_client import PostClient
from platron.sdk_exception import SdkException

client = PostClient('merchant_id', 'secret_key')
request = InitPaymentBuilder('10', 'Test description')

try:
    response = client.request(request)
    print(response)
except SdkException as msg:
    print(msg)

2. Запрос реестра

from platron.request.request_builders.get_registry_builder import GetRegistryBuilder
from platron.request.clients.post_client import PostClient
from platron.sdk_exception import SdkException

client = PostClient('merchant_id', 'secret_key')
request = GetRegistryBuilder('2017-01-01')

try:
    response = client.request(request)
    print(response)
except SdkException as msg:
    print(msg)

3. Проведение клиринга

from platron.request.request_builders.do_capture_builder import DoCaptureBuilder
from platron.request.clients.post_client import PostClient
from platron.sdk_exception import SdkException

client = PostClient('merchant_id', 'secret_key')
request = DoCaptureBuilder('3334455')

try:
    response = client.request(request)
    print(response)
except SdkException as msg:
    print(msg)

4. Обработка запроса от Platron (check)

from platron.callback import Callback
from platron.sdk_exception import SdkException

order_available = 1
params_from_platron = {}

callback = Callback('merchant_return_url_script', 'sdvsfdvsfdvsdv')
if callback.validate_sig(params_from_platron) :
    if order_available:
        callback.response_ok(params_from_platron)
    else :
        if callback.can_reject(params_from_platron) :
            callback.response_reject(params_from_platron, 'Заказ недоступен для оплаты')
        else :
            ''' Сделать запрос через систему выплат или через заявку на возврат '''
            pass
else:
    callback.response_error(params_from_platron, 'Неправильная подпись')

order_available - вместо переменной метод, проверяющий доступность заказа