Skip to main content

No project description provided

Project description

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

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

garpix_cloudpayments-1.1.0rc1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

garpix_cloudpayments-1.1.0rc1-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file garpix_cloudpayments-1.1.0rc1.tar.gz.

File metadata

  • Download URL: garpix_cloudpayments-1.1.0rc1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for garpix_cloudpayments-1.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 ce2d1e791cb2c7d286c98f2ab824612d430cef853f96a75526253ca461ff4978
MD5 e2ae2b10573b29a687ee8de48ef3b9c8
BLAKE2b-256 21825483b745e56fad3c8bec9076163f6b5a18d3b04a8d7ea855c65e33127e1c

See more details on using hashes here.

File details

Details for the file garpix_cloudpayments-1.1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: garpix_cloudpayments-1.1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for garpix_cloudpayments-1.1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 31ea07296f4dc9ac0feb839c5a13fe342f3a9bdb3975113567251a34e9409d9a
MD5 a86ee2650f166548f2c1895f18a20a25
BLAKE2b-256 fc9dc07bbe94e1afae85781dafd373800330630a20c7b5385392206948ebfd57

See more details on using hashes here.

Supported by

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