Skip to main content

Garpix CloudPayments

Прием платажей с CloudPayments.

Быстрый старт

Установите через pipenv:

pipenv install garpix_cloudpayments

Добавьте garpix_cloudpayments в INSTALLED_APPS и укажите адрес для миграций:

# settings.py

INSTALLED_APPS += [
    'garpix_cloudpayments',
]
MIGRATION_MODULES = {
    # ...
}
MIGRATION_MODULES['garpix_cloudpayments'] = 'app.migrations.garpix_cloudpayments'

Создайте директории и файлы:

backend/app/migrations/garpix_cloudpayments/
backend/app/migrations/garpix_cloudpayments/__init__.py

Сделайте миграции и мигрируйте:

python3 backend/manage.py makemigrations
python3 backend/manage.py migrate

Добавьте пути в urls.py:

from django.urls import path, include

urlpatterns = [
    path('cloudpayments/', include('garpix_cloudpayments.urls')),
    # ...
]

Также, добавьте в личном кабинете CloudPayments ссылки на эти коллбеки:

  • Pay уведомление => https://example.com/cloudpayments/pay/

  • Fail уведомление => https://example.com/cloudpayments/fail/

После этого необходимо зайти в административную панель и добавить публичный ключ из личного кабинета CloudPayments.

При изменении статуса платежа, дергается функция, указанная в app/settings.py (вы можете поменять на свою функцию и указать путь до нее):

# app/settings.py

GARPIX_PAYMENT_STATUS_CHANGED_CALLBACK = 'garpix_payment.callbacks.empty_callback'

Пример функции:

from garpix_cloudpayments.models.choices import PAYMENT_STATUS_COMPLETED, PAYMENT_STATUS_CANCELLED, PAYMENT_STATUS_DECLINED


def my_callback(payment):
    if payment.status == PAYMENT_STATUS_COMPLETED:
        print('Меняем статус заказа на успешный')
    elif payment.status in (PAYMENT_STATUS_CANCELLED, PAYMENT_STATUS_DECLINED):
        print('Заказ провален')
    else:
        print('Можем тоже использовать')

Ниже пример работы на фронтенде (до вызова точки /cloudpayments/payment_data/ необходимо создать объект модели Payment):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Garpix CloudPayments</title>
    <script src="https://widget.cloudpayments.ru/bundles/cloudpayments"></script>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body>

<label>Номер заказа (payment_uuid):<input type="text" value="1" name="payment_uuid" class="jsPaymentUUID"></label>
<button onclick="getDataAndPay(); return false;">Оплатить</button>

<script>
    function getDataAndPay() {
        var paymentUUID = document.querySelector('.jsPaymentUUID').value;
        axios.get('/cloudpayments/payment_data/?payment_uuid=' + paymentUUID)
            .then(function (paymentData) {
                console.log(paymentData);
                pay(paymentData);
            })
    }


    function pay(paymentData) {
        var widget = new cp.CloudPayments();
        widget.pay('auth', // или 'charge'
            paymentData,
            {
                onSuccess: function (options) { // success
                    //действие при успешной оплате
                    alert('success');
                },
                onFail: function (reason, options) { // fail
                    //действие при неуспешной оплате
                    alert('fail');
                },
                onComplete: function (paymentResult, options) { //Вызывается как только виджет получает от api.cloudpayments ответ с результатом транзакции.
                    //например вызов вашей аналитики Facebook Pixel
                    alert('complete')
                }
            }
        )
    };
</script>
</body>
</html>

Changelog

See CHANGELOG.md.

Contributing

See CONTRIBUTING.md.

License

MIT


Developed by Garpix / https://garpix.com

Metadata

Release files for garpix-cloudpayments 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for garpix-cloudpayments 1.2.0
File Size Uploaded
garpix_cloudpayments-1.2.0.tar.gz 15.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for garpix-cloudpayments 1.2.0
File Interpreter ABI Platform
garpix_cloudpayments-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 41.2 kB

Release files / garpix_cloudpayments-1.2.0.tar.gz

Download URL garpix_cloudpayments-1.2.0.tar.gz
Size 15.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5f20946ef98692830be0479c539c81001895149a2a09e9feea4494e0d9d9cc20
BLAKE2b-256 checksum
How to use checksums
5cd160666bba08a5592de16b5ddeda6cbb9c800e96fa810d3e4aae67e7259556
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/6.0.0 pkginfo/1.9.6 requests/2.28.2 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.8.15

Release files / garpix_cloudpayments-1.2.0-py3-none-any.whl

Download URL garpix_cloudpayments-1.2.0-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ce2c20724b2165f3db3a539f9205bda0c1b3b9c384b237d711db4fdb80a77fb
BLAKE2b-256 checksum
How to use checksums
976bae12caf5c24758988683e042c8f0d99d6de4ed59274c7ebffe9622de00c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/6.0.0 pkginfo/1.9.6 requests/2.28.2 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.8.15
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page