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>Номер заказа (order_number):<input type="text" value="1" name="order_number" class="jsOrderNumber"></label>
<button onclick="getDataAndPay(); return false;">Оплатить</button>
<script>
function getDataAndPay() {
var orderNumber = document.querySelector('.jsOrderNumber').value;
axios.get('/cloudpayments/payment_data/?order_number=' + orderNumber)
.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
Developed by Garpix / https://garpix.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for garpix_cloudpayments-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ede74086f3fd9314b6b3478de6c111c6a385fb7ac10d9f780fb84cafaa1c0978 |
|
MD5 | 9fd8d1a7c33f229444349fabe6ee2ea9 |
|
BLAKE2b-256 | 4bd856b06659c7a88ebdf7974109db6f28f1af7f486a4154557b4f609c522a8a |
Hashes for garpix_cloudpayments-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9331aeb578064f0876a108d1fb0e7ecafc7add8b26f9d4c5294365f82298c39 |
|
MD5 | f4ab52373e2691ada302aec8562c0de1 |
|
BLAKE2b-256 | 2828dde094e952e8ccf1994cba52c6890f84c295bebba2a3704257602a2302f2 |