PHPackages                             omnipay/ym - 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. omnipay/ym

ActiveLibrary[Payment Processing](/categories/payments)

omnipay/ym
==========

Yandex.Money gateway for Omnipay payment processing library

v1.0.1(11y ago)138791MITPHP

Since Dec 25Pushed 11y ago2 watchersCompare

[ Source](https://github.com/lazychaser/omnipay-ym)[ Packagist](https://packagist.org/packages/omnipay/ym)[ RSS](/packages/omnipay-ym/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (3)Used By (0)

Omnipay: Yandex.Money
=====================

[](#omnipay-yandexmoney)

**Библиотека для приема платежей с помощью пластиковых карт на сайте.**

[![Build Status](https://camo.githubusercontent.com/1bcab44511cbb1a63f764a3c779261a1bf9aae63e772631118f0476e1bd23bd9/68747470733a2f2f7472617669732d63692e6f72672f6c617a796368617365722f6f6d6e697061792d796d2e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/lazychaser/omnipay-ym)[![Latest Stable Version](https://camo.githubusercontent.com/49e2dc7de8c09168eead744635b9dd0d689bcc59f3a07a6ab00b5932f7235a19/68747470733a2f2f706f7365722e707567782e6f72672f6f6d6e697061792f796d2f76657273696f6e2e706e67)](https://packagist.org/packages/omnipay/ym)[![Total Downloads](https://camo.githubusercontent.com/f6c90523031b6fa873ffc926028aae1d2f6e8d618a259d7323777e859820816b/68747470733a2f2f706f7365722e707567782e6f72672f6f6d6e697061792f796d2f642f746f74616c2e706e67)](https://packagist.org/packages/omnipay/ym)

Как это работает?
-----------------

[](#как-это-работает)

Для того, чтобы совершать запросы к API, необходимо [зарегистрировать](https://sp-money.yandex.ru/myservices/new.xml "Регистрация приложения") приложение. Средства будут зачисляться прямиком на указанный кошелек.

- Пользователь нажимает кнопку "оплатить", с помощью API формируется запрос на оплату;
- Пользователь перенаправляется на сайт Яндекс.Деньги для ввода данных карты;
- Если необходимо, данные дополнительно проверяются банком;
- Если платеж прошел успешно, пользователь возвращается на `returnUrl`, где проверяется статус платежа;
- Можно сохранить токен карты для платежей без ввода данных;
- Если платеж не прошел, пользователь перенаправляется на `cancelUrl`, где также необходимо проверять статус платежа.

Больше информации можно найти на [официальном сайте](https://tech.yandex.ru/money/apps/ "Описание API на сайте Яндекс.Деньги") Яндекс.Деньги.

Установка
---------

[](#установка)

```
composer require omnipay/ym:~1.0

```

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

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

Для начала необходимо создать гейт, через который уже будут выполняться запросы API:

```
$gateway = Omnipay::create('YM_External');

$gateway->setInstanceId($instanceId);
```

Для любого запроса необходим параметр `instanceId`. Данный параметр генерируется для каждого приложения отдельно на основе `client_id`, который был получен при регистрации приложения. Чтобы сгенерировать новый `instanceId`:

```
$instanceId = $gateway->obtainInstanceId($clientId);

// сохранить где-нибудь для последующего использования
```

### Формирование счета

[](#формирование-счета)

```
$response = $gateway->requestPayment(array(
    'walletId' => '12345678910', // ID кошелька, на который поступят средства
    'amount' => 256.0, // Сумма в рублях
    'description' => 'Оплата услуг',

))->send();

if ( ! $response->isSuccessful())
{
    // Произошла ошибка
}

// Получаем идентификатор транзакции, его нужно где-нибудь сохранить, т.к. он нам понадобится
$transaction = $response->getTransactionReference();
```

Теперь необходимо перенаправить пользователя на страницу ввода данных, для этого нужно запросить статус платежа:

```
$response = $gateway->processPayment(array(
    'transactionReference' => $transaction,
    'returnUrl' => 'http://example.com/success',
    'cancelUrl' => 'http://example.com/fail',

)->send();

if ($response->isRedirect()) $response->redirect();

// Произошла ошибка
```

### Проверка статуса платежа

[](#проверка-статуса-платежа)

После того, как пользователь успешно совершил платеж, либо отменил операцию (банк отклонил платеж), он будет перенаправлен либо на `returnUrl` при успешности, либо на `cancelUrl` при ошибке. Если нет какой-то особой дополнительной логики, то можно просто выводить сообщение об успешности/ошибочности платежа. Иначе необходимо обязательно проверять статус платежа.

```
$response = $gateway->processPayment(array(
    'transactionReference' => $transaction,
    'returnUrl' => '...',
    'cancelUrl' => '...',

)->send();

if ($response->isSuccessful())
{
    // Платеж совершен!
}
elseif ($response->isPaymentRefused())
{
    // Платеж отклонен!
}
else
{
    // Произошла ошибка при запросе
}
```

Обратите внимание, что для получение статуса платежа, необходим номер транзакции, который был получен при формировании платежа. Он передается при перенаправлении пользователя под именем `cps_context_id`. Но лучше его сохранять на сервере и восстанавливать когда пользователь возвращается на сайт.

### Сохранение карты

[](#сохранение-карты)

Если пользователь успешно совершил платеж, то есть возможность сохранить введенные им данные и использовать уже их при других платежах.

```
$response = $gateway->createCard(array(
    'transactionReference' => $transaction,
    'returnUrl' => '...',
    'cancelUrl' => '...',

))->send();

if ($cardRef = $response->getCardReference())
{
    // Токен карты успешно получен, нужно его сохранить куда-нибудь

    // Другие данные:
    $response->getCardType(); // VISA, MasterCard
    $response->getCardNumber(); // Маскированный номер карты
}
```

### Проведение платежа с помощью сохраненной карты

[](#проведение-платежа-с-помощью-сохраненной-карты)

Сам платеж проходит по той же схеме, что и раньше, то есть сначала формируется платеж, но при первом запросе статуса передается токен карты, а также защитный код `cvv` с обратной стороны карты (который должен вводить пользователь):

```
$response = $gateway->processPayment(array(
    'transactionReference' => $transaction,
    'returnUrl' => '...',
    'cancelUrl' => '...',
    'cardReference' => $cardRef,
    'cvv' => $cvv,

))->send();

if ($response->isSuccessful())
{
    // Платеж прошел!
}
elseif ($response->isRedirect())
{
    // Дополнительная авторизация
    $response->redirect();
}
else
{
    // Произошла ошибка
}
```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 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 ~4 days

Total

2

Last Release

4155d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2094856?v=4)[Alexander Kalnoy](/maintainers/lazychaser)[@lazychaser](https://github.com/lazychaser)

---

Top Contributors

[![lazychaser](https://avatars.githubusercontent.com/u/2094856?v=4)](https://github.com/lazychaser "lazychaser (10 commits)")

### Embed Badge

![Health badge](/badges/omnipay-ym/health.svg)

```
[![Health](https://phpackages.com/badges/omnipay-ym/health.svg)](https://phpackages.com/packages/omnipay-ym)
```

###  Alternatives

[league/omnipay

Omnipay payment processing library

6.1k9.7M166](/packages/league-omnipay)[silverstripe/silverstripe-omnipay

SilverStripe Omnipay Payment Module

38106.0k15](/packages/silverstripe-silverstripe-omnipay)

PHPackages © 2026

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