chore: expand default PayKilla payment currencies

This commit is contained in:
3252a8
2026-06-04 16:33:50 +03:00
parent ae7bfb9621
commit 358ef6ded7
5 changed files with 12 additions and 9 deletions
+4 -4
View File
@@ -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",
+1 -1
View File
@@ -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`. |
+1 -1
View File
@@ -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",
+4 -1
View File
@@ -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"])