PHPackages                             palpalych/payments-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. palpalych/payments-plugin

ActiveOctober-plugin[Payment Processing](/categories/payments)

palpalych/payments-plugin
=========================

No description provided yet...

v2.0.12(3mo ago)259PHP

Since Sep 14Pushed 3mo agoCompare

[ Source](https://github.com/Pasha234/oc-payments-plugin)[ Packagist](https://packagist.org/packages/palpalych/payments-plugin)[ RSS](/packages/palpalych-payments-plugin/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (6)Versions (13)Used By (0)

Плагин "Payments" для OctoberCMS
--------------------------------

[](#плагин-payments-для-octobercms)

Этот плагин предоставляет интеграцию с платежным шлюзом [ЮKassa](https://yookassa.ru/) для обработки платежей, управления сохраненными способами оплаты и обработки веб-хуков в OctoberCMS.

### Основные возможности

[](#основные-возможности)

- Создание разовых платежей.
- Создание платежей с использованием сохраненных банковских карт.
- Управление способами оплаты (добавление/удаление).
- Автоматическая проверка статуса платежа после возврата со страницы оплаты.
- Обработка веб-хуков от ЮKassa для обновления статусов платежей и карт.
- Интеграция с моделью `RainLab.User`.

### Установка и настройка

[](#установка-и-настройка)

1. **Установка**: Установите плагин стандартным для OctoberCMS способом. Убедитесь, что плагин `RainLab.User` также установлен.
2. **Настройка**:

    - Перейдите в "Настройки" -&gt; "Платежи".
    - Введите ваш `shop_id` и `secret_key` от ЮKassa. Эти данные можно найти в личном кабинете ЮKassa.
    - Сохраните настройки.
3. **Настройка веб-хуков в ЮKassa**:

    - В личном кабинете ЮKassa перейдите в раздел "Интеграция" -&gt; "HTTP-уведомления".
    - В качестве URL для уведомлений укажите: `https://ваш-сайт.ru/yookassa-webhook`.
    - Выберите все события, связанные с платежами (`payment.*`) и способами оплаты (`payment_method.*`).

### Использование

[](#использование)

Плагин предоставляет несколько компонентов для использования на страницах вашего сайта.

#### 1. Компонент `PaymentCheck`

[](#1-компонент-paymentcheck)

Этот компонент необходимо разместить на страницах, куда пользователь возвращается после оплаты или привязки карты. Он автоматически проверяет и обновляет статус платежа или способа оплаты.

**Как использовать:**Добавьте компонент на вашу страницу:

```
[PaymentCheck]
```

Компонент будет активирован, если в URL-адресе есть параметры `payment_id` или `payment_method_id`.

#### 2. Компонент `paymentMethods`

[](#2-компонент-paymentmethods)

Отображает список сохраненных способов оплаты пользователя и позволяет добавлять новые или удалять существующие.

**Пример использования на странице профиля:**

```
[paymentMethods]
---

    Мои способы оплаты
    {% component 'paymentMethods' %}

```

Компонент имеет встроенную логику для добавления и удаления карт через AJAX-запросы.

#### 3. Реализация `PayableInterface` (Оплачиваемая сущность)

[](#3-реализация-payableinterface-оплачиваемая-сущность)

Чтобы система могла работать с вашими товарами, услугами или любыми другими сущностями, за которые можно заплатить, ваша Eloquent-модель должна реализовывать интерфейс `PayableInterface`.

Это "контракт", который сообщает платежной системе, как получить необходимую информацию для создания платежа.

**Шаг 1: Создайте вашу модель и миграцию**

Например, создадим модель `Diploma` (Диплом), которую можно купить.

**Шаг 2: Реализуйте интерфейс**

В вашей модели (например, `plugins/myauthor/myplugin/models/Diploma.php`) добавьте `implements PayableInterface` и реализуйте его методы.

```
use PalPalych\Payments\Classes\Domain\Contract\PayableInterface;
use October\Rain\Database\Model;

class Diploma extends Model implements PayableInterface
{
    // ... ваш код модели

    public function getPayableId(): string
    {
        return (string) $this->id;
    }

    public function getPayableType(): string
    {
        return self::class;
    }

    /**
     * Возвращает сумму к оплате в копейках.
     */
    public function getPayableAmount(): int
    {
        return 15000; // 150.00 рублей
    }

    /**
     * Возвращает описание, которое увидит пользователь в ЮKassa.
     */
    public function getPayableDescription(): string
    {
        return "Покупка диплома №{$this->id}";
    }

    /**
     * Этот метод будет вызван после успешной оплаты.
     * Здесь вы можете обновить статус вашей модели.
     */
    public function markAsPaid(): void
    {
        $this->is_purchased = true;
        $this->save();
    }

    public function getReceiptItems(): ReceiptItems
    {
        $receiptItems = new ReceiptItems();
        $receiptItems->addItem(new ReceiptItem(
            'Диплом',
            new ReceiptItemAmount(
                $this->getPayableAmount(),
                ReceiptItemCurrency::rub,
            ),
            VatCode::without_vat,
            1
        ));
        return $receiptItems;
    }

}
```

**Шаг 3: Используйте вашу модель при создании платежа**

Теперь вы можете использовать эту модель для инициации платежа, как показано в сценариях ниже. Платежная система будет автоматически вызывать методы `getPayableAmount()` и `getPayableDescription()` у вашего объекта `$diploma`.

#### 4. Программное создание платежей

[](#4-программное-создание-платежей)

Для инициации платежа необходимо использовать соответствующие UseCase'ы из вашего кода (например, в компоненте или контроллере).

##### Сценарий 1: Оплата без сохраненной карты

[](#сценарий-1-оплата-без-сохраненной-карты)

В этом случае пользователь будет перенаправлен на сайт ЮKassa для выбора способа оплаты.

```
use PalPalych\Payments\Classes\Application\Usecase\Payment\CreatePaymentUseCase;
use PalPalych\Payments\Classes\Application\Dto\Request\CreatePaymentRequest;

// $payable - это ваша модель, которая реализует PayableInterface
// $user - текущий пользователь

/** @var CreatePaymentUseCase $useCase */
$useCase = app(CreatePaymentUseCase::class);

$request = new CreatePaymentRequest(
    userId: $user->id,
    payableId: $payable->id,
    payableType: get_class($payable),
    success_url: 'https://ваш-сайт.ru/payment/success', // URL для возврата после оплаты
    client_email: $user->email,
);

$response = $useCase($request);

return \Redirect::to($response->confirmation_url); // Перенаправляем пользователя на оплату
```

##### Сценарий 2: Оплата с использованием сохраненной карты

[](#сценарий-2-оплата-с-использованием-сохраненной-карты)

Этот сценарий используется для рекуррентных платежей или быстрой оплаты без перехода на сайт платежной системы.

```
use PalPalych\Payments\Classes\Application\Usecase\Payment\CreatePaymentWithPaymentMethodUseCase;
use PalPalych\Payments\Classes\Application\Dto\Request\CreatePaymentWithPaymentMethodRequest;

// $payable - ваша модель, реализующая PayableInterface
// $user - текущий пользователь
// $paymentMethodId - ID сохраненного способа оплаты

/** @var CreatePaymentWithPaymentMethodUseCase $useCase */
$useCase = app(CreatePaymentWithPaymentMethodUseCase::class);

$request = new CreatePaymentWithPaymentMethodRequest(
    userId: $user->id,
    payableId: $payable->id,
    payableType: get_class($payable),
    paymentMethodId: $paymentMethodId,
    client_email: $user->email,
);

$response = $useCase($request); // Платеж будет выполнен автоматически

// Здесь можно обработать результат и показать пользователю сообщение
```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance80

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Recently: every ~54 days

Total

12

Last Release

106d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/74814679?v=4)[Pavel Matkin](/maintainers/Pasha234)[@Pasha234](https://github.com/Pasha234)

---

Top Contributors

[![Pasha234](https://avatars.githubusercontent.com/u/74814679?v=4)](https://github.com/Pasha234 "Pasha234 (12 commits)")

### Embed Badge

![Health badge](/badges/palpalych-payments-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/palpalych-payments-plugin/health.svg)](https://phpackages.com/packages/palpalych-payments-plugin)
```

###  Alternatives

[helsingborg-stad/municipio

A bootstrap theme for creating municipality sites.

4028.6k10](/packages/helsingborg-stad-municipio)[october/rain

October Rain Library

1601.7M99](/packages/october-rain)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45844.8k1](/packages/pressbooks-pressbooks)[drupal/recommended-project

Project template for Drupal projects with a relocated document root

1502.9M1](/packages/drupal-recommended-project)[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k17.3k99](/packages/elgg-elgg)[mediawiki/maps

Adds various mapping features to MediaWiki

85155.1k3](/packages/mediawiki-maps)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
