chore: expand default PayKilla payment currencies
This commit is contained in:
@@ -67,7 +67,7 @@ from .shared import (
|
|||||||
router = Router(name="user_subscription_payments_paykilla_router")
|
router = Router(name="user_subscription_payments_paykilla_router")
|
||||||
_LOG = "paykilla"
|
_LOG = "paykilla"
|
||||||
|
|
||||||
PAYKILLA_DEFAULT_PAYMENT_CURRENCIES = "USDTTRC"
|
PAYKILLA_DEFAULT_PAYMENT_CURRENCIES = "USDTTRC,BTC,ETH,USDTBSC,USDTTON"
|
||||||
PAYKILLA_DEFAULT_INVOICE_CURRENCIES = "USD,EUR"
|
PAYKILLA_DEFAULT_INVOICE_CURRENCIES = "USD,EUR"
|
||||||
PAYKILLA_DEFAULT_EXCHANGE_RATE_URL = "https://open.er-api.com/v6/latest/{source}"
|
PAYKILLA_DEFAULT_EXCHANGE_RATE_URL = "https://open.er-api.com/v6/latest/{source}"
|
||||||
PAYKILLA_DEFAULT_MIN_PAYMENT_AMOUNT = 10.0
|
PAYKILLA_DEFAULT_MIN_PAYMENT_AMOUNT = 10.0
|
||||||
@@ -336,7 +336,7 @@ def _invoice_text(title: Any, payment_db_id: int) -> str:
|
|||||||
|
|
||||||
def _payment_currencies(config: PaykillaConfig) -> List[str]:
|
def _payment_currencies(config: PaykillaConfig) -> List[str]:
|
||||||
currencies = list(parse_supported_currency_codes(config.PAYMENT_CURRENCIES))
|
currencies = list(parse_supported_currency_codes(config.PAYMENT_CURRENCIES))
|
||||||
return currencies or ["USDTTRC"]
|
return currencies or list(parse_supported_currency_codes(PAYKILLA_DEFAULT_PAYMENT_CURRENCIES))
|
||||||
|
|
||||||
|
|
||||||
def _invoice_currencies(config: PaykillaConfig) -> tuple[str, ...]:
|
def _invoice_currencies(config: PaykillaConfig) -> tuple[str, ...]:
|
||||||
@@ -1425,8 +1425,8 @@ _CONFIG_MANIFEST = (
|
|||||||
"string",
|
"string",
|
||||||
"Accepted crypto tickers",
|
"Accepted crypto tickers",
|
||||||
description=(
|
description=(
|
||||||
"Comma-separated PayKilla tickers sent as paymentCurrencies, e.g. USDTTRC. "
|
"Comma-separated PayKilla tickers sent as paymentCurrencies. "
|
||||||
"Add BTC/ETH only when enabled for the merchant account."
|
"Default: USDTTRC,BTC,ETH,USDTBSC,USDTTON."
|
||||||
),
|
),
|
||||||
placeholder=PAYKILLA_DEFAULT_PAYMENT_CURRENCIES,
|
placeholder=PAYKILLA_DEFAULT_PAYMENT_CURRENCIES,
|
||||||
subsection="PayKilla",
|
subsection="PayKilla",
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ Webhook настраивается в PayKilla Dashboard: **Settings -> Webhooks
|
|||||||
| `PAYKILLA_SECRET_KEY` / `PAYKILLA_V2_SECRET_KEY` | Secret HMAC key для подписи API-запросов и проверки webhook. |
|
| `PAYKILLA_SECRET_KEY` / `PAYKILLA_V2_SECRET_KEY` | Secret HMAC key для подписи API-запросов и проверки webhook. |
|
||||||
| `PAYKILLA_CURRENCY` | Резервная валюта инвойса PayKilla для платежей, чья валюта тарифа не входит в `PAYKILLA_INVOICE_CURRENCIES`. По умолчанию `USD`. |
|
| `PAYKILLA_CURRENCY` | Резервная валюта инвойса PayKilla для платежей, чья валюта тарифа не входит в `PAYKILLA_INVOICE_CURRENCIES`. По умолчанию `USD`. |
|
||||||
| `PAYKILLA_INVOICE_CURRENCIES` | Валюты, которые PayKilla принимает в поле `currency` при создании invoice. По умолчанию `USD,EUR`. Если тариф в `RUB`, Minishop конвертирует сумму в `PAYKILLA_CURRENCY`. |
|
| `PAYKILLA_INVOICE_CURRENCIES` | Валюты, которые PayKilla принимает в поле `currency` при создании invoice. По умолчанию `USD,EUR`. Если тариф в `RUB`, Minishop конвертирует сумму в `PAYKILLA_CURRENCY`. |
|
||||||
| `PAYKILLA_PAYMENT_CURRENCIES` | Crypto tickers для оплаты. Рекомендуемый стартовый вариант: `USDTTRC`; добавляйте `BTC`, `ETH` и другие тикеры только если они доступны в PayKilla Dashboard для merchant account. |
|
| `PAYKILLA_PAYMENT_CURRENCIES` | Crypto tickers для оплаты. По умолчанию `USDTTRC,BTC,ETH,USDTBSC,USDTTON`; оставляйте в списке только тикеры, доступные в PayKilla Dashboard для merchant account. |
|
||||||
| `PAYKILLA_SUPPORTED_CURRENCIES` | Валюты тарифов/платежей, которым разрешено использовать PayKilla в этом магазине. |
|
| `PAYKILLA_SUPPORTED_CURRENCIES` | Валюты тарифов/платежей, которым разрешено использовать PayKilla в этом магазине. |
|
||||||
| `PAYKILLA_INVOICE_TYPE` | Необязательный override: `FIAT_BASED`, `FIXED_AMOUNT` или `OPEN_AMOUNT`. |
|
| `PAYKILLA_INVOICE_TYPE` | Необязательный override: `FIAT_BASED`, `FIXED_AMOUNT` или `OPEN_AMOUNT`. |
|
||||||
| `PAYKILLA_LIFETIME_SECONDS` | TTL инвойса, отправляется как `expiredAt`. |
|
| `PAYKILLA_LIFETIME_SECONDS` | TTL инвойса, отправляется как `expiredAt`. |
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ Payload создания invoice содержит обязательные по
|
|||||||
1. Включите `PAYKILLA_ENABLED`.
|
1. Включите `PAYKILLA_ENABLED`.
|
||||||
2. Укажите `PAYKILLA_API_KEY` и `PAYKILLA_SECRET_KEY`.
|
2. Укажите `PAYKILLA_API_KEY` и `PAYKILLA_SECRET_KEY`.
|
||||||
3. Оставьте `PAYKILLA_CURRENCY=USD`, если PayKilla не принимает валюту тарифов как invoice currency. В `PAYKILLA_INVOICE_CURRENCIES` укажите валюты, доступные в PayKilla для поля `currency`, например `USD,EUR`.
|
3. Оставьте `PAYKILLA_CURRENCY=USD`, если PayKilla не принимает валюту тарифов как invoice currency. В `PAYKILLA_INVOICE_CURRENCIES` укажите валюты, доступные в PayKilla для поля `currency`, например `USD,EUR`.
|
||||||
4. В `PAYKILLA_PAYMENT_CURRENCIES` начните с `USDTTRC`, а `BTC`, `ETH` и другие тикеры добавляйте только если они доступны в PayKilla Dashboard.
|
4. В `PAYKILLA_PAYMENT_CURRENCIES` оставьте `USDTTRC,BTC,ETH,USDTBSC,USDTTON` или укажите другой список тикеров, доступных в PayKilla Dashboard.
|
||||||
5. Оставьте `PAYKILLA_MIN_PAYMENT_AMOUNT=10` и `PAYKILLA_MIN_PAYMENT_CURRENCY=USD`, если минимальный invoice PayKilla равен `10 USD`.
|
5. Оставьте `PAYKILLA_MIN_PAYMENT_AMOUNT=10` и `PAYKILLA_MIN_PAYMENT_CURRENCY=USD`, если минимальный invoice PayKilla равен `10 USD`.
|
||||||
6. Убедитесь, что webhook `/webhook/paykilla` настроен в PayKilla: Minishop не отправляет redirect URLs в PayKilla и полагается на webhook для активации платежа.
|
6. Убедитесь, что webhook `/webhook/paykilla` настроен в PayKilla: Minishop не отправляет redirect URLs в PayKilla и полагается на webhook для активации платежа.
|
||||||
7. Добавьте `paykilla` в `PAYMENT_METHODS_ORDER`, если хотите задать явный порядок кнопок.
|
7. Добавьте `paykilla` в `PAYMENT_METHODS_ORDER`, если хотите задать явный порядок кнопок.
|
||||||
|
|||||||
@@ -4050,12 +4050,12 @@
|
|||||||
"section_order": 4,
|
"section_order": 4,
|
||||||
"subsection": "PayKilla",
|
"subsection": "PayKilla",
|
||||||
"label": "Accepted crypto tickers",
|
"label": "Accepted crypto tickers",
|
||||||
"description": "Comma-separated PayKilla tickers sent as paymentCurrencies, e.g. USDTTRC. Add BTC/ETH only when enabled for the merchant account.",
|
"description": "Comma-separated PayKilla tickers sent as paymentCurrencies. Default: USDTTRC,BTC,ETH,USDTBSC,USDTTON.",
|
||||||
"i18n_label_key": "admin_settings_field_paykilla_payment_currencies_label",
|
"i18n_label_key": "admin_settings_field_paykilla_payment_currencies_label",
|
||||||
"i18n_description_key": "admin_settings_field_paykilla_payment_currencies_description",
|
"i18n_description_key": "admin_settings_field_paykilla_payment_currencies_description",
|
||||||
"i18n_subsection_key": "admin_settings_subsection_paykilla",
|
"i18n_subsection_key": "admin_settings_subsection_paykilla",
|
||||||
"i18n_placeholder_key": "admin_settings_field_paykilla_payment_currencies_placeholder",
|
"i18n_placeholder_key": "admin_settings_field_paykilla_payment_currencies_placeholder",
|
||||||
"placeholder": "USDTTRC",
|
"placeholder": "USDTTRC,BTC,ETH,USDTBSC,USDTTON",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"secret": false,
|
"secret": false,
|
||||||
"provider_id": "paykilla",
|
"provider_id": "paykilla",
|
||||||
|
|||||||
@@ -258,7 +258,10 @@ class PaykillaServiceTests(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(body["purpose"], "Tunnel Shop payment 556")
|
self.assertEqual(body["purpose"], "Tunnel Shop payment 556")
|
||||||
self.assertRegex(body["purpose"], r"^[A-Za-z0-9_\s.,]+$")
|
self.assertRegex(body["purpose"], r"^[A-Za-z0-9_\s.,]+$")
|
||||||
self.assertEqual(body["paymentCurrencies"], ["USDTTRC"])
|
self.assertEqual(
|
||||||
|
body["paymentCurrencies"],
|
||||||
|
["USDTTRC", "BTC", "ETH", "USDTBSC", "USDTTON"],
|
||||||
|
)
|
||||||
self.assertEqual(body["description"], body["purpose"])
|
self.assertEqual(body["description"], body["purpose"])
|
||||||
self.assertTrue(body["expiredAt"].endswith("Z"))
|
self.assertTrue(body["expiredAt"].endswith("Z"))
|
||||||
self.assertTrue(body["userPaysNetworkFee"])
|
self.assertTrue(body["userPaysNetworkFee"])
|
||||||
|
|||||||
Reference in New Issue
Block a user