- Настройка учетной записи интернет-магазина
- Формирование платежной формы
- Защита платежной формы
- Выбор доступных способов оплаты
- Настройка отправки чеков в налоговую в соответствии с ФЗ-54
- Обработка уведомления о результате оплаты
- Настройка отчетов
- Генерация ссылки на оплату
Шаг 1. Настройка учетной записи интернет-магазина
После регистрации учетной записи необходимо указать информацию о магазине, которая будет отображаться клиентам при оплате. Сделать это можно в личном кабинете в разделе «Настройки», вкладка «О магазине»:
Шаг 2. Формирование платежной формы
После того как покупатель выберет товары на сайте интернет-магазина и сформирует корзину заказа, интернет-магазин направляет его на страницу оплаты заказа. Страница оплаты должна содержать следующие обязательные поля:
Название параметра | Описание |
---|---|
WMI_MERCHANT_ID | Идентификатор интернет-магазина |
WMI_PAYMENT_AMOUNT | Сумма заказа |
WMI_CURRENCY_ID | Идентификатор валюты заказа (ISO 4217) |
WMI_CUSTOMER_EMAIL | Email плательщика |
WMI_ORDER_ITEMS | json объект для передачи фискальных данных. Подробное описание в Шаге 5. |
Платежная форма содержит идентификатор интернет-магазина, сумму, валюту заказа и почту плательщика, а также ссылки на страницы интернет-магазина, на которые будет отправлен покупатель после успешной или не успешной оплаты, и параметр, отвечающий за передачу фискальных данных.
Пример:
<form method="post" action="https://wl.walletone.com/checkout/checkout/Index"> <input name="WMI_MERCHANT_ID" value="123456789012"/> <input name="WMI_PAYMENT_AMOUNT" value="100.00"/> <input name="WMI_CURRENCY_ID" value="643"/> <input name="WMI_DESCRIPTION" value="Оплата демонстрационного заказа"/> <input name="WMI_SUCCESS_URL" value="https://myshop.ru/w1/paid.php"/> <input name="WMI_FAIL_URL" value="https://myshop.ru/w1/fail.php"/> <input name="WMI_CUSTOMER_EMAIL" value="Test@mail.ru"/> <input name="WMI_ORDER_ITEMS" value='[{"Title":"Тестовый товар", "Quantity":"1.00", "UnitPrice":"100.00","SubTotal":"100.00", "TaxType":"tax_ru_1","Tax":"0.00"}]'/> <input type="submit"/> </form>
Платежная форма может содержать дополнительные параметры, которые влияют на доступные способы оплаты, срок действия заказа, язык торгового интерфейса и т.п. Полный перечень параметров платежной формы приведен ниже:
Название параметра | Описание |
---|---|
WMI_MERCHANT_ID | Идентификатор интернет-магазина, полученный при регистрации. |
WMI_PAYMENT_AMOUNT | Сумма заказа — число округленное до 2-х знаков после «запятой», в качестве разделителя используется «точка». Наличие 2-х знаков после «запятой» обязательно. |
WMI_CURRENCY_ID | Идентификатор валюты (ISO 4217):
|
WMI_PAYMENT_NO | Идентификатор заказа в системе учета интернет-магазина. Значение данного параметра должно быть уникальным для каждого заказа. |
WMI_DESCRIPTION | Описание заказа (список товаров и т.п.) — отображается на странице оплаты заказа, а также в истории платежей покупателя. Максимальная длина 255 символов. |
WMI_SUCCESS_URL WMI_FAIL_URL |
Адреса (URL) страниц интернет-магазина, на которые будет отправлен покупатель после успешной или неуспешной оплаты. |
WMI_RESULT_LINK_EXPIRE | Время истечения действия ссылок WMI_SUCCESS_URL, WMI_FAIL_URL на которые покупатель будет отправлен после успешной или не успешной оплаты. Время указывается в секундах и должно быть в диапазоне от 30 до 2678000 (31 день). В случае не передачи данного параметра, будет установлено значение равное 30 секундах. |
WMI_EXPIRED_DATE | Срок истечения оплаты. Дата указывается в западно-европейском часовом поясе (UTC+0) и должна быть больше текущей (ISO 8601), например: 2013-10-29T11:39:26.
Обратите внимание: срок действия счёта не может превышать 30 дней с момента выставления! |
WMI_PTENABLED WMI_PTDISABLED |
С помощью этих параметров можно управлять доступными способами оплаты. Подробнее в разделе «Выбор доступных способов оплаты». |
WMI_RECIPIENT_LOGIN | Логин плательщика по умолчанию. Значение данного параметра будет автоматически подставляться в поле логина при авторизации. Возможные форматы: электронная почта, номер телефона в международном формате. |
WMI_CUSTOMER_PHONE | Номер мобильного телефона плательщика в международном формате. Например, +71234567890. Значение этого поля будет использоваться в следующих целях:
|
WMI_CUSTOMER_FIRSTNAME WMI_CUSTOMER_LASTNAME WMI_CUSTOMER_EMAIL |
Имя, фамилия и e-mail плательщика. Значения данных параметров будут автоматически подставляться в формы некоторых способов оплаты. |
WMI_CULTURE_ID | Язык интерфейса определяется автоматически, но можно задать его:
|
WMI_AUTO_LOCATION | Позволяет показывать пользователю способы оплаты, соответствующие его стране нахождения.
|
WMI_SIGNATURE | Подпись платежной формы, сформированная с использованием «секретного ключа» интернет-магазина. Необходимость проверки этого параметра устанавливается в настройках интернет-магазина. Подробнее в разделе «Защита платежной формы». |
… | Все остальные поля платежной формы, не имеющие префикс «WMI_», будут сохранены и переданы в интернет-магазин. |
Во избежание проблем при использовании национальных символов при передаче параметра WMI_DESCRIPTION существует возможность кодирования параметра строкой BASE64 (UTF-8).
Формат передачи: BASE64:<кодированное в BASE64 значение>
Пример: BASE64:0J7Qv9C70LDRgtCwINC30LDQutCw0LfQsA==
Обратите внимание! Если вы зарегистрировали персональный проект, то на странице платежной формы будет отображаться информация о том, что платеж принимается в пользу физического лица.
В тестовом режиме используются специальные платёжные инструменты. Счёт будет оплачен, но движения денежных средств по балансу не произойдёт. Виды инструментов: TestCardRUB.
Параметры CardholderName, ExpiredDate, CVV отвечают общим условиям валидации. Обязателен параметр Email (может передаваться как WMI_CUSTOMER_EMAIL).
Приводим список карт и соответствующих моделей поведения:
- 5457 2100 0100 0019 — Успешная оплата, без 3DS
- 5457 2100 0100 0043 — Успешная оплата, c 3DS
- 4024 0071 0471 6096 — Успешная оплата, ошибка при возврате
- 4847 0000 6602 5312 — Неуспешная оплата, неверные данные карты
- 5329 3728 6227 2032 — Неуспешная оплата, фрод
- 4189 0692 9106 7072 — Неуспешная оплата, истёкшая карта
- 5326 7268 9031 5936 — Неуспешная оплата, неверный владелец
- 5304 4927 9124 6052 — Неуспешная оплата, неверный cvv
- 5312 2498 1443 1065 — Неуспешная оплата, карта не поддерживается
- 4539 6574 9236 2685 — Неуспешная оплата, недостаточно денежных средств
- 4716 7187 0398 6236 — Неуспешная оплата, ошибка авторизации карты
Каждому виду ошибки соответствует код, возвращаемый в составе запроса.
Обратите внимание: в тестовом режиме передача иных способов оплаты невозможна. В этом случае формирование платёжной формы завершится с ошибкой.
Шаг 3. Защита платежной формы
Параметры заказа интернет-магазина передаются в Единую кассу через web-браузер покупателя, поэтому, чтобы предотвратить изменение параметров на стороне покупателя, интернет-магазину необходимо подписать параметры платежной формы.
Для этого интернет-магазину необходимо добавить в платежную форму параметр WMI_SIGNATURE, сформированный с использованием выбранного метода формирования ЭЦП и «секретного ключа» интернет-магазина.
Метод формирования ЭЦП и «секретный ключ» интернет-магазина можно настроить в личном кабинете Единой кассы в разделе «Настройки» во вкладке «Интеграция» как показано на рисунке:
Обратите внимание! После генерации секретного ключа обязательно нажмите кнопку «Сохранить» внизу страницы. Это необходимое условие для корректной работы ЭЦП.
Параметр WMI_SIGNATURE формируется путем объединения значений всех остальных параметров формы в алфавитном порядке их имен (без учета регистра) с добавлением в конец «секретного ключа» интернет-магазина. Если форма содержит несколько полей с одинаковыми именами, такие поля сортируются в алфавитном порядке их значений.
Полученное после объединения параметров и «секретного ключа» значение, представленное в кодировке Windows-1251, хешируется выбранным методом формирования ЭЦП и его байтовое представление кодируется в Base64.
WMI_SIGNATURE = Base64(Byte(MD5(Windows1251(Sort(Params) + SecretKey))));
Пример (PHP):
<?php //Секретный ключ интернет-магазина $key = "XkZMYW56NzVbNV1aekxGNVxvT3xwVHExZ005"; $fields = array(); // Добавление полей формы в ассоциативный массив $fields["WMI_MERCHANT_ID"] = "119175088534"; $fields["WMI_PAYMENT_AMOUNT"] = "100.00"; $fields["WMI_CURRENCY_ID"] = "643"; $fields["WMI_PAYMENT_NO"] = "12345-001"; $fields["WMI_DESCRIPTION"] = "BASE64:".base64_encode("Payment for order #12345-001 in MYSHOP.com"); $fields["WMI_EXPIRED_DATE"] = "2019-12-31T23:59:59"; $fields["WMI_SUCCESS_URL"] = "https://myshop.com/w1/success.php"; $fields["WMI_FAIL_URL"] = "https://myshop.com/w1/fail.php"; $fields["MyShopParam1"] = "Value1"; // Дополнительные параметры $fields["MyShopParam2"] = "Value2"; // интернет-магазина тоже участвуют $fields["MyShopParam3"] = "Value3"; // при формировании подписи! //Если требуется задать только определенные способы оплаты, раскоментируйте данную строку и перечислите требуемые способы оплаты. //$fields["WMI_PTENABLED"] = array("UnistreamRUB", "SberbankRUB", "RussianPostRUB"); //Сортировка значений внутри полей foreach($fields as $name => $val) { if(is_array($val)) { usort($val, "strcasecmp"); $fields[$name] = $val; } } // Формирование сообщения, путем объединения значений формы, // отсортированных по именам ключей в порядке возрастания. uksort($fields, "strcasecmp"); $fieldValues = ""; foreach($fields as $value) { if(is_array($value)) foreach($value as $v) { //Конвертация из текущей кодировки (UTF-8) //необходима только если кодировка магазина отлична от Windows-1251 $v = iconv("utf-8", "windows-1251", $v); $fieldValues .= $v; } else { //Конвертация из текущей кодировки (UTF-8) //необходима только если кодировка магазина отлична от Windows-1251 $value = iconv("utf-8", "windows-1251", $value); $fieldValues .= $value; } } // Формирование значения параметра WMI_SIGNATURE, путем // вычисления отпечатка, сформированного выше сообщения, // по алгоритму MD5 и представление его в Base64 $signature = base64_encode(pack("H*", md5($fieldValues . $key))); //Добавление параметра WMI_SIGNATURE в словарь параметров формы $fields["WMI_SIGNATURE"] = $signature; // Формирование HTML-кода платежной формы print "<form action='https://wl.walletone.com/checkout/checkout/Index' method='POST'>"; foreach($fields as $key => $val) { if(is_array($val)) foreach($val as $value) { print "$key: <input type='text' name='$key' value='$value'/>"; } else print "$key: <input type='text' name='$key' value='$val'/>"; } print "<input type='submit'/></form>"; ?>
Пример (Perl):
#!/usr/bin/perl use Digest::MD5 qw(md5_base64); use MIME::Base64; # Секретный ключ интернет-магазина $key = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; my %fields; # Добавление полей формы в ассоциативный массив $fields{"WMI_MERCHANT_ID"} = "123456789012"; $fields{"WMI_PAYMENT_AMOUNT"} = "100.00"; $fields{"WMI_CURRENCY_ID"} = "398"; $fields{"WMI_PAYMENT_NO"} = "12345-001"; $fields{"WMI_DESCRIPTION"} = encode_base64("Payment for order #12345-001 in MYSHOP.com", ""); $fields{"WMI_EXPIRED_DATE"} = "2019-12-31T23:59:59"; $fields{"WMI_SUCCESS_URL"} = "https://myshop.com/w1/success.php"; $fields{"WMI_FAIL_URL"} = "https://myshop.com/w1/fail.php"; $fields{"MyShopParam1"} = "Value1"; # Дополнительные параметры $fields{"MyShopParam2"} = "Value2"; # интернет-магазина тоже участвуют $fields{"MyShopParam3"} = "Value3"; # при формировании подписи! # Формирование сообщения, путем объединения значений формы, # отсортированных по именам ключей в порядке возрастания. my $fieldValues = ""; for my $key (sort { lc($a) cmp lc($b) } keys %fields) { $fieldValues .= $fields{$key}; } # Формирование значения параметра WMI_SIGNATURE, путем # вычисления отпечатка, сформированного выше сообщения, # по алгоритму MD5 и представление его в Base64. my $signature = md5_base64($fieldValues, $key) . '=='; # Добавление параметра WMI_SIGNATURE в словарь параметров формы. $fields{"WMI_SIGNATURE"} = $signature; # Формирование HTML-кода страницы с платежной формой. print "Content-type: text/html; charset=UTF-8nn"; print "<form action="https://wl.walletone.com/checkout/checkout/Index" method="POST" >"; for my $key (sort { lc($a) cmp lc($b) } keys %fields) { print "$key: <input name="$key" value="$fields{$key}"/>"; } print "<input type="submit"/></form>n";
Пример (С#):
using System; using System.Web; using System.Text; using System.Security.Cryptography; using System.Collections.Generic; public class PaymentForm : IHttpHandler { public void ProcessRequest(HttpContext context) { // Секретный ключ интернет-магазина string merchantKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" // Добавление полей формы в словарь, сортированный по именам ключей. SortedDictionary<string, string> formField = new SortedDictionary<string, string>(); formField.Add("WMI_MERCHANT_ID", "123456789012"); formField.Add("WMI_PAYMENT_AMOUNT", "100.00"); formField.Add("WMI_CURRENCY_ID", "643"); formField.Add("WMI_PAYMENT_NO", "12345-001"); formField.Add("WMI_DESCRIPTION", "BASE64:" + Convert.ToBase64String(Encoding.UTF8.GetBytes("Payment for order #12345-001 in MYSHOP.com"))); formField.Add("WMI_EXPIRED_DATE", "2019-12-31T23:59:59"); formField.Add("WMI_SUCCESS_URL", "https://myshop.com/w1/success.php"); formField.Add("WMI_FAIL_URL", "https://myshop.com/w1/fail.php"); formField.Add("MyShopParam1", "Value1"); // Дополнительные параметры formField.Add("MyShopParam2", "Value2"); // магазина тоже участвуют formField.Add("MyShopParam3", "Value3"); // при формировании подписи! // Формирование сообщения, путем объединения значений формы, // отсортированных по именам ключей в порядке возрастания и // добавление к нему "секретного ключа" интернет-магазина StringBuilder signatureData = new StringBuilder(); foreach (string key in formField.Keys) { signatureData.Append(formField[key]); } // Формирование значения параметра WMI_SIGNATURE, путем // вычисления отпечатка, сформированного выше сообщения, // по алгоритму MD5 и представление его в Base64 string message = signatureData.ToString() + merchantKey; Byte[] bytes = Encoding.GetEncoding(1251).GetBytes(message); Byte[] hash = new MD5CryptoServiceProvider().ComputeHash(bytes); string signature = Convert.ToBase64String(hash); // Добавление параметра WMI_SIGNATURE в словарь параметров формы formField.Add("WMI_SIGNATURE", signature); // Формирование платежной формы StringBuilder output = new StringBuilder(); output.AppendLine("<form method="POST" action="https://wl.walletone.com/checkout/checkout/Index">"); foreach (string key in formField.Keys) { output.AppendLine(String.Format("{0}: <input name="{0}" value="{1}"/>", key, formField[key])); } output.AppendLine("<input type="submit"/></form>"); context.Response.ContentType = "text/html; charset=UTF-8"; context.Response.Write(output.ToString()); } }
Пример Python:
from collections import defaultdict import binascii from hashlib import md5 def get_signature(params, secret_key): """ Base64(Byte(MD5(Windows1251(Sort(Params) + SecretKey)))) params - list of tuples [('WMI_CURRENCY_ID', 643), ('WMI_PAYMENT_AMOUNT', 10)] """ icase_key = lambda s: unicode(s).lower() lists_by_keys = defaultdict(list) for key, value in params: lists_by_keys[key].append(value) str_buff = '' for key in sorted(lists_by_keys, key=icase_key): for value in sorted(lists_by_keys[key], key=icase_key): str_buff += unicode(value).encode('1251') str_buff += secret_key md5_string = md5(str_buff).digest() return binascii.b2a_base64(md5_string)[:-1]
Пример NodeJS:
var iconv = require('iconv-lite'); var crypto = require('crypto'); // Секретный ключ интернет-магазина var key = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'; var fields = { WMI_MERCHANT_ID: '123456789012', WMI_PAYMENT_AMOUNT: '100.00', WMI_CURRENCY_ID: '643', WMI_PAYMENT_NO: '12345-001', WMI_DESCRIPTION: 'BASE64:' + new Buffer('Payment for order #12345-001 in MYSHOP.com').toString('base64'), WMI_EXPIRED_DATE: '2019-12-31T23:59:59', WMI_SUCCESS_URL: 'https://myshop.com/w1/success.php', WMI_FAIL_URL: 'https://myshop.com/w1/fail.php', // Если требуется задать только определенные способы оплаты, раскоментируйте данную строку и перечислите требуемые способы оплаты. // WMI_PTENABLED: ['UnistreamRUB', 'SberbankRUB', 'RussianPostRUB'], MyShopParam1: 'Value1', MyShopParam2: 'Value2', MyShopParam3: 'Value3' }; var comparator = function(a, b){ var a = a.toLowerCase(); var b = b.toLowerCase(); return a > b ? 1 : a < b ? -1 : 0; }; var createInput = function(name, value){ return ''; }; var inputs = ''; var values = ''; // Формирование сообщения, путем объединения значений формы, // отсортированных по именам ключей в порядке возрастания Object.keys(fields).sort(comparator).forEach(function(name){ var value = fields[name]; if (Array.isArray(value)) { values += value.sort(comparator).join(''); inputs += value.map(function(val){ return createInput(name, val); }).join(''); } else { values += value; inputs += createInput(name, value); } }); // Формирование значения параметра WMI_SIGNATURE, путем // вычисления отпечатка, сформированного выше сообщения, // по алгоритму MD5 и представление его в Base64 inputs += createInput('WMI_SIGNATURE', crypto.createHash('md5').update(iconv.encode(values + key, 'win1251')).digest('base64')); //Формирование HTML-кода платежной формы. console.log('');
Убедитесь, что все параметры, которые присутствуют в платежной форме, за исключением WMI_SIGNATURE, участвуют при формировании подписи. Например, если кнопка «submit» имеет установленный атрибут «name», платежная форма также будет содержать значение атрибута «value» этой кнопки.
Убедитесь, что ваша функция MD5 возвращает массив байт, а не их представление в HEX. Если все сделано правильно, длина параметра WMI_SIGNATURE составляет ровно 24 символа.
Если параметр WMI_DESCRIPTION содержит кириллицу, убедитесь, что форма отправляется на сервер в кодировке UTF-8. Для этого форма должна иметь атрибут accept-charset=»UTF-8″.
Шаг 4. Выбор доступных способов оплаты
После передачи платежной формы в Единую кассу покупатель может выбрать удобный для него способ оплаты. Интернет-магазин может ограничить список доступных способов оплаты или явно определить один из них.
Для управления доступными способами оплаты используются параметры платежной формы WMI_PTENABLED и WMI_PTDISABLED. Каждый из этих полей может присутствовать в платежной форме несколько раз и должен содержать один из способов оплаты.
Например, этот заказ можно оплатить только CreditCard:
<form method="post" action="https://wl.walletone.com/checkout/checkout/Index" accept-charset="UTF-8"> <input name="WMI_MERCHANT_ID" value="123456789012"/> <input name="WMI_PAYMENT_AMOUNT" value="100.00"/> <input name="WMI_CURRENCY_ID" value="643"/> <input name="WMI_DESCRIPTION" value="Оплата демонстрационного заказа"/> <input name="WMI_PTENABLED" value="CreditCardRUB"/> <input name="WMI_PTENABLED" value="CreditCardUAH"/> <input name="WMI_PTENABLED" value="CreditCardGLD"/> <input name="WMI_SUCCESS_URL" value="https://myshop.ru/w1/paid.php"/> <input name="WMI_FAIL_URL" value="https://myshop.ru/w1/fail.php"/> <input type="submit"/> </form>
Обратите внимание: в тестовом режиме передача иных способов оплаты невозможна. В этом случае формирование платёжной формы завершится с ошибкой.
Следующий пример показывает, как запретить оплату заказа определенным способом:
<form method="post" action="https://wl.walletone.com/checkout/checkout/Index" accept-charset="UTF-8"> <input name="WMI_MERCHANT_ID" value="123456789012"/> <input name="WMI_PAYMENT_AMOUNT" value="100.00"/> <input name="WMI_CURRENCY_ID" value="643"/> <input name="WMI_DESCRIPTION" value="Оплата демонстрационного заказа"/> <input name="WMI_PTDISABLED" value="W1RUB"/> <input name="WMI_SUCCESS_URL" value="https://myshop.ru/w1/paid.php"/> <input name="WMI_FAIL_URL" value="https://myshop.ru/w1/fail.php"/> <input type="submit"/> </form>
Электронные деньги
Способ оплаты | Идентификатор |
---|---|
Единый кошелек | WalletOne |
W1 RUB | WalletOneRUB |
W1 UAH | WalletOneUAH |
W1 BYR | WalletOneBYR |
W1 GEL | WalletOneGEL |
W1 KZT | WalletOneKZT |
W1 TJS | WalletOneTJS |
ЮMoney | YandexMoneyRUB |
QIWI Кошелек | |
QIWI Кошелек | QiwiWalletRUB |
B-Pay | BPayMDL |
EasyPay | EasyPayBYR |
LiqPayMoneyUAH | LiqPayMoneyUAH |
OKPAY | OkpayRUB |
Микрозайм Kviku | KvikuRUB |
Мобильная коммерция
Способ оплаты | Идентификатор |
---|---|
Мобильный платеж «Билайн» (Россия) | BeelineRUB |
Мобильный платеж «МТС» (Россия) | MtsRUB |
Мобильный платеж «Мегафон» (Россия) | MegafonRUB |
Мобильный платеж «Tele2» (Россия) | Tele2RUB |
Мобильный платеж «Yota» (Россия) | YotaRUB |
КиевСтар.Мобильные деньги (Украина) | KievStarUAH |
Наличные
Способ оплаты | Идентификатор |
---|---|
Платежные терминалы | CashTerminal |
Платежные терминалы Беларуси | CashTerminalBYR |
Платежные терминалы Грузии | CashTerminalGEL |
Платежные терминалы Казахстана | CashTerminalKZT |
Платежные терминалы Молдовы | CashTerminalMDL |
Платежные терминалы России | CashTerminalRUB |
Платежные терминалы Украины | CashTerminalUAH |
Платежные терминалы Таджикистана | CashTerminalTJS |
ATM | ATM |
Прием наличных (UAH) | AtmUAH |
Салоны связи | MobileRetails |
Салоны связи «Связной» | SvyaznoyRUB |
Салоны связи «Цифроград» | CifrogradRUB |
Салоны связи «Сотовый мир» | CellularWorldRUB |
Отделения банков | BankOffice |
Отделения Сбербанка России | SberbankRUB |
Отделения Сбербанка в Казахстане | SberbankKZT |
Отделения Приватбанка в Украине | PrivatbankUAH |
Отделения Правэкс-Банка в Украине | PravexBankUAH |
Отделения УкрСиббанка в Украине | UkrsibBankUAH |
Отделения Казкоммерцбанка Казахстане | KazkomBankKZT |
Отделения Liberty Bank в Грузии | LibertyBankGEL |
Отделения Почты России | RussianPostRUB |
Денежные переводы | MoneyTransfer |
Денежные переводы «ЛИДЕР» | LiderRUB |
Денежные переводы Unistream (RUB) | UnistreamRUB |
Безналичные
Способ оплаты | Идентификатор |
---|---|
Интернет-банки | OnlineBank |
Интернет-банк «Альфа-Клик» («Альфа-Банк») | AlfaclickRUB |
Интернет-банк «Тинькофф» | TinkoffRUB |
Интернет-банк «Приват24» | Privat24UAH |
Интернет-банк «PSB-Retail» («Промсвязьбанк») | PsbRetailRUB |
Сбербанк ОнЛ@йн | SberOnlineRUB |
Faktura.ru | FakturaruRUB |
Интернет-банк Банка «Русский Стандарт» | RsbRUB |
Единое Расчетное Информационное Пространство (ЕРИП) | EripBYR |
Банковский перевод | BankTransfer |
Банковский перевод в китайских юанях | BankTransferCNY |
Банковский перевод в лари | BankTransferGEL |
Банковский перевод в тенге | BankTransferKZT |
Банковский перевод в леях | BankTransferMDL |
Банковский перевод в рублях | BankTransferRUB |
Банковский перевод в гривнах | BankTransferUAH |
Банковские карты | |
Карты Smartivi | SmartiviGEL |
VISA | VISA |
VISA BYR | CreditCardBYR |
VISA RUB | CreditCardRUB |
VISA UAH | CreditCardUAH |
MasterCard | MasterCard |
MasterCard BYR | CreditCardBYR |
MasterCard RUB | CreditCardRUB |
MasterCard UAH | CreditCardUAH |
Maestro | Maestro |
Maestro RUB | CreditCardRUB |
МИР | |
МИР | CreditCardRUB |
Тестовые способы оплаты
Способ оплаты | Идентификатор |
---|---|
TestCardRUB | TestCardRUB |
Шаг 5. Настройка отправки чеков в налоговую в соответствии с ФЗ-54
Для добавления возможности передачи данных чека необходимо внести небольшие доработки при отправке запроса на создание инвойса, а именно, в обязательном порядке нужно передавать:
- данные плательщика: WMI_CUSTOMER_EMAIL
- информацию о товаре (услуге): WMI_ORDER_ITEMS.
Параметр WMI_ORDER_ITEMS представляет собой json объект следующей структуры:
[ { "Title": "Position 1", "Quantity": 3.00, "UnitPrice": 150.00, "SubTotal": 450.00, "TaxType": "tax_ru_3", "Tax": 45.00 }, { "Title": "Position 2", "Quantity": 1.00, "UnitPrice": 70.00, "SubTotal": 70.00, "TaxType": "tax_ru_3", "Tax": 7.00 } ]
Содержит коллекцию объектов, характеризующих конкретный товар в чеке.
Объект товара
{ "Title": "Position 1", "Quantity": 3.000, "UnitPrice": 150.00, "SubTotal": 450.00, "TaxType": "tax_ru_3", "Tax": 45.00 }
Параметр | Тип | Описание | Обязательное требование |
---|---|---|---|
Title | Строка, 128 символов | Описание товара | Да |
Quantity | Десятичное число с точностью 3 символа после запятой |
Количество товара | Да |
UnitPrice | Десятичное число с точностью 2 символа после запятой |
Цена единицы товара | Да |
SubTotal | Десятичное число с точностью 2 символа после запятой |
Цена товара | Да |
TaxType | Строка, 9 символов |
Ставка НДС, возможные значения:
|
Да |
Tax | Десятичное число с точностью 2 символа после запятой |
Сумма налога | Да |
Обратите внимание, в случае если Вы выбрали вендора фискальных данных Wcheck, а не Атол, то для параметров «TaxType — Ставка НДС» и «Tax — Сумма налога» необходима передача следующих значений:
«TaxType»: «tax_ru_1»
«Tax»: 0.00
После успешной оплаты счета указанные данные будут отправлены в налоговую инспекцию.
Шаг 6. Обработка уведомления о результате оплаты
После того как покупатель завершит оплату заказа, Единая касса выполняет POST-запрос на адрес, указанный в данных для отправки результатов транзакции в настройках интернет-магазина. Запрос содержит параметры платежной формы, информацию о результате оплаты и некоторые дополнительные параметры:
Название параметра | Описание |
---|---|
WMI_MERCHANT_ID | Идентификатор интернет-магазина |
WMI_PAYMENT_AMOUNT | Сумма заказа |
WMI_COMMISSION_AMOUNT | Сумма удержанной комиссии |
WMI_CURRENCY_ID | Идентификатор валюты заказа (ISO 4217) |
WMI_TO_USER_ID | Двенадцатизначный номер кошелька плательщика |
WMI_PAYMENT_NO | Идентификатор заказа в системе учета интернет-магазина |
WMI_ORDER_ID | Идентификатор заказа в системе учета Единой кассы |
WMI_DESCRIPTION | Описание заказа |
WMI_INVOICE_OPERATIONS | json массив из объектов INVOICEOPERATION c полями CreateDate, PaymentId, Amount, AmountEntryId. Скоуп информации об операциях в составе инвойса. Если операций по инвойсу несколько, каждой из них будут соответствовать свои поля. AmountEntryId соответствует TransferId, отображаемому в выписке. |
WMI_SUCCESS_URL WMI_FAIL_URL |
Адреса (URL) страниц интернет-магазина, на которые будет отправлен покупатель после успешной или неуспешной оплаты. |
WMI_EXPIRED_DATE | Срок истечения оплаты в западно-европейском часовом поясе (UTC+0) |
WMI_CREATE_DATE WMI_UPDATE_DATE |
Дата создания и изменения заказа в западно-европейском часовом поясе (UTC+0) |
WMI_ORDER_STATE | Состояние оплаты заказа:
|
WMI_SIGNATURE | Подпись уведомления об оплате, сформированная с использованием «секретного ключа» интернет-магазина. |
WMI_TEST_MODE_INVOICE | Параметр, передаваемый в составе уведомлений, получаемых при оплате тестовыми способами. По умолчанию имеет значение 1. |
… | Все остальные параметры платежной формы, не имеющие префикс «WMI_». |
Интернет-магазин должен обработать запрос оповещения о результате оплаты и вернуть ответ. Обработка запроса для интернет-магазина происходит также, как будто он получил POST-запрос от обычной HTML-формы, только вместо страницы он должен вернуть строку следующего содержания:
WMI_RESULT=OK
или
WMI_RESULT=RETRY&WMI_DESCRIPTION=Сервер временно недоступен
Параметр WMI_RESULT в ответе интернет-магазина должен содержать результат обработки запроса и может принимать одно из следующих значений:
- OK — все в порядке, интернет-магазин обработал уведомление и принял заказ.
- RETRY — интернет-магазин не может в данный момент обработать уведомление. Единая касса повторит запрос позже.
Параметр WMI_DESCRIPTION в ответе интернет-магазина может содержать комментарий, который будет сохранен в логах Единой кассы. Рекомендуется возвращать его в случае ошибки. Значение данного параметра должно быть в кодировке UrlEncode:
#!/usr/bin/php <?php function print_answer($result, $description) { print "WMI_RESULT=" . strtoupper($result) . "&"; print "WMI_DESCRIPTION=" .urlencode($description); exit(); } ?>
По различным причинам Единая касса может не получить ответ от интернет-магазина и отправить повторный запрос, интернет-магазин должен ответить на повторный запрос также как при первом.
Проверка источника данных
Для того чтобы убедиться, что запрос поступил от Единой кассы и поступившей информации можно доверять, интернет-магазину необходимо вычислить цифровую подпись запроса с использованием своего «секретного ключа» и сравнить ее с параметром WMI_SIGNATURE, полученным в запросе.
Сделать это можно по алгоритму, описанному в разделе «Защита платежной формы», объединив все значения параметров запроса (кроме WMI_SIGNATURE) в алфавитном порядке их имен с «секретным ключом» интернет-магазина и вычислив хеш-отпечаток этого значения выбранным методом формирования ЭЦП.
Пример (PHP):
#!/usr/bin/php <?php // Секретный ключ интернет-магазина (настраивается в кабинете) $skey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; // Функция, которая возвращает результат в Единую кассу function print_answer($result, $description) { print "WMI_RESULT=" . strtoupper($result) . "&"; print "WMI_DESCRIPTION=" .$description; exit(); } // Проверка наличия необходимых параметров в POST-запросе if (!isset($_POST["WMI_SIGNATURE"])) print_answer("Retry", "Отсутствует параметр WMI_SIGNATURE"); if (!isset($_POST["WMI_PAYMENT_NO"])) print_answer("Retry", "Отсутствует параметр WMI_PAYMENT_NO"); if (!isset($_POST["WMI_ORDER_STATE"])) print_answer("Retry", "Отсутствует параметр WMI_ORDER_STATE"); // Извлечение всех параметров POST-запроса, кроме WMI_SIGNATURE foreach($_POST as $name => $value) { if ($name !== "WMI_SIGNATURE") $params[$name] = $value; } // Сортировка массива по именам ключей в порядке возрастания // и формирование сообщения, путем объединения значений формы uksort($params, "strcasecmp"); $values = ""; foreach($params as $name => $value) { $values .= $value; } // Формирование подписи для сравнения ее с параметром WMI_SIGNATURE $signature = base64_encode(pack("H*", md5($values . $skey))); //Сравнение полученной подписи с подписью W1 if ($signature == $_POST["WMI_SIGNATURE"]) { if (strtoupper($_POST["WMI_ORDER_STATE"]) == "ACCEPTED") { // TODO: Пометить заказ, как «Оплаченный» в системе учета магазина print_answer("Ok", "Заказ #" . $_POST["WMI_PAYMENT_NO"] . " оплачен!"); } else { // Случилось что-то странное, пришло неизвестное состояние заказа print_answer("Retry", "Неверное состояние ". $_POST["WMI_ORDER_STATE"]); } } else { // Подпись не совпадает, возможно вы поменяли настройки интернет-магазина print_answer("Retry", "Неверная подпись " . $_POST["WMI_SIGNATURE"]); } ?>
Шаг 7. Настройка отчетов
Для проведения сверки предусмотрен механизм отправки реестров платежей.
Подписаться на рассылку реестров платежей можно в личном кабинете во вкладке «Магазин» раздел «Интеграция» как показано на рисунке:
Также можно выбрать периодичность получения сверок (ежедневно, еженедельно или ежемесячно) и их формат (xml или csv).
Формат реестров:
Название параметра | Описание |
---|---|
Id | Номер счета |
ExternalId | Идентификатор заказа в системе учета интернет-магазина |
Direction | Направление |
UserId | Двенадцатизначный номер кошелька плательщика |
CurrencyId | Идентификатор валюты заказа (ISO 4217) |
Amount | Сумма заказа |
State | Состояние счета |
PaymentDate | Дата оплаты |
PaymentTypeId | Способ оплаты |
Description | Описание |
CommissionAmount | Сумма удержанной комиссии |
ApprovalCode | Код авторизации банка (только для платежей банковскими картами) |
CardNumber | Маскированный номер банковской карты |
Примеры реестров платежей:
- 01112012000000-15032013000000.119973638979.csv.zip
- 01112012000000-15032013000000.119973638979.xml.zip
В случае если в настройках включен метод формирования ЭЦП, письмо будет содержать второй файл с тем же именем, но с расширением «.key», в котором будет содержаться ЭЦП.
Генерация ссылки на оплату
Сгенерировать ссылку для оплаты заказа можно в специальном разделе сайта.
Возможные коды ошибок
Это не полный перечень возможных ошибок, а лишь часто встречающихся.
Код ошибки | Описание | Комментарий |
---|---|---|
INTERNAL_SERVER_ERROR | Внутренняя ошибка сервера | При возникновении ошибки данного типа подробности нужно уточнять у технической поддержки Wallet One. |
SERVER_ERROR | Внешняя ошибка | Возникает при взаимодействии с платежным шлюзом. Пример — сетевая ошибка. |
SUSPECTED_FRAUD | Подозрение на мошенничество | |
INSUFFICIENT_BALANCE_ERROR | Недостаточно средств | На балансе плательщика отсутствует достаточное количество средств для оплаты счета. |
OPERATION_LIMIT_EXCEED | Лимит операции | Может возникать при превышении допустимого количества операций, суммы операций либо некоторых внутренних ограничений. |
AUTHORIZATION_ERROR | Ошибка авторизации |
Оценка: 1
Не проходит оплата… Все заполнила, нажимаю оплатить — высвечивается: Не сработало
Похоже, это был технический сбой — попробуйте ещё раз, пожалуйста. На Яндекс никогда такого не было.((
Другие отзывы о компании ЮKassa (Яндекс Касса)
Я выбирал систему оплаты на сайт руководствуясь надёжностью и известностью, что бы у клиентов не возникало сомнений. Юкасса – это в прошлом Яндекс, до ребрендинга, и люди ей доверяют. А ещё платежи сертифицируются… Читать далее »
11 января 2023, 00:00
Не рекомендую. Подключил ЮKassa к сайту, заплатив программистам за интеграцию. Все работало примерно месяц. Потом Юкасса, без лишних объяснений, отключила мне оплату банковскими картами. Если бы я что-то… Читать далее »
15 декабря 2022, 19:35
Давно собирался оставить отзыв по своему опыту сотрудничества с компанией теперь уже ЮКаssа. К работе эквайринга за 2 года претензий нет, все работает исправно, не виснет, платежи не теряются. Спасибо… Читать далее »
02 ноября 2022, 10:33
«Не получилось, похоже, это техническая ошибка. Попробуйте заплатить ещё раз» — вот такое сообщение сегодня я вижу целый день, статус моего кошелька «Идентифицированный», согласно описанию насчёт пополнения с карт VISA — написано, что обслуживаются все банки мира. Делаю пополнение с польской карты (раньше всё было ок) и в итоге ничего не получается и выдаёт именно это сообщение, думал что проблема в этой карте — нет, попробовал другую польскую карту — результат тот же.
Позвонил в тех.поддержку, ответила девушка, вроде бы приятный голос, но как будто была расстроена чем-то (руководства Яндекс-офисов, пожалейте своих сотрудников! Хоть пару добрых слов выдавить из себя можно!). Я продиктовал ей номер своего кошелька, сообщил что вижу такое сообщение и пополнение происходит с польской карты. Далее она попросила ожидать, около 2 минут ожиданий. Далее уточнила номер карты, я сказал что обе карты привязаны к счёту. продиктовал последние цифры. В итоге она составил а обращение в службу поддержки и сказала ждать.
Что меня не устраивает? Меня не устраивает:
-Постоянное ожидание везде и всюду.
Как правило, если человек к вам обращается по поводу проблем с переводами и в целом вопросов финансовых, то этот человек нуждается в этом прямо СЕЙЧАС. Он не может ждать час, два, три, день, неделю.
-Идентификацию пройти в итоге обязательно. Когда я создавал Яндекс кошелёк, я нуждался в мелких переводах с карты на кошелёк, но дело в том, что как только вы несколько раз пополняете свой кошелёк на сумму больше 500 руб. — вам блокируют кошелёк до тех пор, пока вы не пройдёте идентификацию. Деньги замораживаются и не возвращаются обратно. Пройти идентификацию живя зарубежом и не имея гражданства РФ — невозможно, т.к. необходимо прийти лично в офис Яндекса и заполнить анкету (которую можно было бы заполнить в интернет-форме с таким же успехом, если бы не бюрократия Яндекса). В итоге мои средства были заморожены около 6 месяцев. В тот момент они были нужны мне срочно, но «Спасибо» Яндексу за «заботу».
-Тех.поддержка крайне медленная. Обращаясь в тех.поддержку учитывайте сразу, что период решения вашего вопроса будет около 3-4 дней в среднем. На моём опыте максимальный срок ожидания составил 7 дней. Минимальный срок ожидания 1 день.
Под сроками ожидания я подразумеваю момент наступления прямого диалога между вами и специалистом, т.к. система автоматически всегда высылает вам технические сообщения от робота о разных статусах ваших обращений.
Итого, моя оценка:
-Скорость ответа тех.поддержки 1 балл
-Качество обслуживания специалистами 1 балл (вы даже не пытаетесь вникнуть в суть проблемы и войти в положения своего клиента).
-Процесс идентификации 0 баллов. Такой бюрократии я не видел нигде в мире, чтобы пройти идентификацию нужно было бы ехать в Россию.
В процессе платежа что-то может пойти не так. Например, пользователю может не хватить денег для оплаты, эмитент может быть недоступен, ЮKassa может заподозрить попытку мошенничества. В этом случае платеж будет отменен и перейдет в статус canceled
.
Чтобы вы могли лучше понимать, что произошло и что с этим делать, ЮKassa пришлет в
объекте платежа
комментарий к отмене платежа (cancellation_details
). В нём будут указаны инициатор (cancellation_details.party
) и причина отмены (cancellation_details.reason
). Вы можете использовать эти данные для анализа и решения проблем, вывода сообщений пользователю и любых других целей.
Значение | Описание |
---|---|
merchant | Продавец товаров и услуг (вы) |
yoo_money | ЮKassa |
payment_network | Любые участники процесса платежа, кроме ЮKassa и вас (например, эмитент, сторонний платежный сервис) |
Значение | Описание |
---|---|
3d_secure_failed | Не пройдена аутентификация по 3-D Secure. При новой попытке оплаты пользователю следует пройти аутентификацию, использовать другое платежное средство или обратиться в банк за уточнениями |
call_issuer | Оплата данным платежным средством отклонена по неизвестным причинам. Пользователю следует обратиться в организацию, выпустившую платежное средство |
canceled_by_merchant | Платеж отменен по API при оплате в две стадии |
card_expired | Истек срок действия банковской карты. При новой попытке оплаты пользователю следует использовать другое платежное средство |
country_forbidden | Нельзя заплатить банковской картой, выпущенной в этой стране. При новой попытке оплаты пользователю следует использовать другое платежное средство. Вы можете настроить ограничения на оплату иностранными банковскими картами |
deal_expired | Для тех, кто использует Безопасную сделку: закончился срок жизни сделки. Если вы еще хотите принять оплату, создайте новую сделку и проведите для нее новый платеж |
expired_on_capture | Истек срок списания оплаты у двухстадийного платежа. Если вы еще хотите принять оплату, повторите платеж с новым ключом идемпотентности и спишите деньги после подтверждения платежа пользователем |
expired_on_confirmation | Истек срок оплаты: пользователь не подтвердил платеж за время, отведенное на оплату выбранным способом. Если пользователь еще хочет оплатить, вам необходимо повторить платеж с новым ключом идемпотентности, а пользователю — подтвердить его |
fraud_suspected | Платеж заблокирован из-за подозрения в мошенничестве. При новой попытке оплаты пользователю следует использовать другое платежное средство |
general_decline | Причина не детализирована. Пользователю следует обратиться к инициатору отмены платежа за уточнением подробностей |
identification_required | Превышены ограничения на платежи для кошелька ЮMoney. При новой попытке оплаты пользователю следует идентифицировать кошелек или выбрать другое платежное средство |
insufficient_funds | Не хватает денег для оплаты. Пользователю следует пополнить баланс или использовать другое платежное средство |
internal_timeout | Технические неполадки на стороне ЮKassa: не удалось обработать запрос в течение 30 секунд. Повторите платеж с новым ключом идемпотентности |
invalid_card_number | Неправильно указан номер карты. При новой попытке оплаты пользователю следует ввести корректные данные |
invalid_csc | Неправильно указан код CVV2 (CVC2, CID). При новой попытке оплаты пользователю следует ввести корректные данные |
issuer_unavailable | Организация, выпустившая платежное средство, недоступна. При новой попытке оплаты пользователю следует использовать другое платежное средство или повторить оплату позже |
payment_method_limit_exceeded | Исчерпан лимит платежей для данного платежного средства или вашего магазина. При новой попытке оплаты пользователю следует использовать другое платежное средство или повторить оплату на следующий день |
payment_method_restricted | Запрещены операции данным платежным средством (например, карта заблокирована из-за утери, кошелек — из-за взлома мошенниками). Пользователю следует обратиться в организацию, выпустившую платежное средство |
permission_revoked | Нельзя провести безакцептное списание: пользователь отозвал разрешение на автоплатежи. Если пользователь еще хочет оплатить, вам необходимо создать новый платеж, а пользователю — подтвердить оплату |
unsupported_mobile_operator | Нельзя заплатить с номера телефона этого мобильного оператора. При новой попытке оплаты пользователю следует использовать другое платежное средство. Список поддерживаемых операторов |
Пример объекта платежа в статусе canceled
{
"id": "22979b7b-000f-5000-9000-1a603a795739",
"status": "canceled",
"paid": false,
"amount": {
"value": "2.00",
"currency": "RUB"
},
"created_at": "2018-05-23T15:24:43.812Z",
"metadata": {},
"payment_method": {
"type": "bank_card",
"id": "22979b7b-000f-5000-9000-1a603a795739",
"saved": false
},
"recipient": {
"account_id": "100500",
"gateway_id": "100700"
},
"refundable": false,
"test": false,
"cancellation_details": {
"party": "payment_network",
"reason": "payment_method_restricted"
}
}
Коды ответа (состояния) HTTPПроведение платежейСпособы оплатыТестирование платежей
★★★ Novice
февраля 2020
Похоже, это техническая ошибка. Попробуйте заплатить ещё раз. Яндекс касса. Не могу пополнить счет. Что делать?
Сообщение 1 из 3
(4 465 просмотров)
Hero
февраля 2020
— последнее изменение
февраля 2020
@2D_tyano4ka но не увлекайтесь частым повторением платежей) Это может вызвать бан аккаунта.
Если проблема повторится, свяжитесь сразу с ТП по телефону:
+7 (495) 660-5317
Или закажите обратный звонок, если проживаете в РФ: http://help.ea.com/ru/contact-us/new/?product=origin&platform=pc (кнопка обратного звонка активна в рабочие часы с понедельника по пятницу с 12:00 до 21:00 по московскому времени).
Если проживаете не в РФ, воспользуйтесь для звонка на этот номер скайпом. Два цента за минуту.
——————————————————————————-
Сталкер багов не боится! Игравшего в народную солянку вылетами на рабочий стол не возьмешь!
Не являюсь сотрудником ЕА. HERO — это статус волонтера. Не являюсь техническим специалистом, нянькой, жилеткой для нытья. Не отвечаю на вопросы в личных сообщениях. Не сюсюкаю и не утешаю. Все, что я пишу на форуме, является моим субъективным имхо и не отражает чьей-либо официальной позиции.
Win 10 x64 HP / i5-3550 / asus P8Z77-V LE / DDR3 2x8Gb 1600 МГц Corsair / GTX970 EVGA SSC ACX 2.0+ / SSD 250 Гб Samsung 860 Evo +1.5 Тб Seagate Barracuda + 3Тб Hitachi Deskstar / AeroCool Vx-9 PRO / Corsair TX650W / 23.8″ Philips 242V8A
Сообщение 3 из 3
(4 411 просмотров)
Hero
февраля 2020
@2D_tyano4ka
Добрый.
Вам просто через часик нужно попробовать еще раз
________________________________________________
Сообщение 2 из 3
(4 442 просмотров)
Hero
февраля 2020
— последнее изменение
февраля 2020
@2D_tyano4ka но не увлекайтесь частым повторением платежей) Это может вызвать бан аккаунта.
Если проблема повторится, свяжитесь сразу с ТП по телефону:
+7 (495) 660-5317
Или закажите обратный звонок, если проживаете в РФ: http://help.ea.com/ru/contact-us/new/?product=origin&platform=pc (кнопка обратного звонка активна в рабочие часы с понедельника по пятницу с 12:00 до 21:00 по московскому времени).
Если проживаете не в РФ, воспользуйтесь для звонка на этот номер скайпом. Два цента за минуту.
——————————————————————————-
Сталкер багов не боится! Игравшего в народную солянку вылетами на рабочий стол не возьмешь!
Не являюсь сотрудником ЕА. HERO — это статус волонтера. Не являюсь техническим специалистом, нянькой, жилеткой для нытья. Не отвечаю на вопросы в личных сообщениях. Не сюсюкаю и не утешаю. Все, что я пишу на форуме, является моим субъективным имхо и не отражает чьей-либо официальной позиции.
Win 10 x64 HP / i5-3550 / asus P8Z77-V LE / DDR3 2x8Gb 1600 МГц Corsair / GTX970 EVGA SSC ACX 2.0+ / SSD 250 Гб Samsung 860 Evo +1.5 Тб Seagate Barracuda + 3Тб Hitachi Deskstar / AeroCool Vx-9 PRO / Corsair TX650W / 23.8″ Philips 242V8A
Сообщение 3 из 3
(4 412 просмотров)
Если при оплате через платежный шлюз ЮMoney возникает ошибка «Не получилось Похоже это техническая ошибка. Попробуйте заплатить еще раз.«:
При оплате банковскими картами эта ошибка может возникать в нескольких случаях:
- карта выпущена банком высокорисковой страны (в настоящий момент платежным шлюзом ЮMoney поддерживаются карты следующих стран: Россия, Украина, Беларусь, Казахстан, Турция, Азербайджан, Армения, Грузия, Кыргызстан, Латвия, Литва, Молдова, Таджикистан, Туркменистан, Узбекистан, Эстония и некоторые другие);
- карта не поддерживает современные стандарты безопасности 3-D Secure;
- эмитент карты (банк, выпустивший карту) по какой-то причине отклоняет транзакцию (например часто отклоняются операции по корпоративным картам и картам отдельных эмитентов, которые как правило решаются обращением с поддержку банка).
- антифрод эквайера блокирует операцию из-за повышенного риска (несоответствие локации кардхолдера, блеклисты украденных карт, использование средств подмены ip-адресов, VPN, proxy и пр.)
Есть несколько вариантов для решения:
1. Проверьте, что вы не используете средства подмены IP-адреса (VPN, proxy). Попробуйте воспользоваться другим браузером или провести платеж с другого устройства. Если используете мобильную связь — перезагрузите устройство (некоторые shared IP-адреса мобильных операторов могут быть в черных списках антифрод-систем).
2. Обратитесь в поддержку вашего банка для снятия установленных им ограничений или воспользуйтесь картой другого банка.
3. Вы можете завести кошелек ЮMoney, и пополнить его с карты (для пополнений кошельков у них нет жестких ограничений) или другим способом. Это займет всего несколько минут.
4. Вы можете оплатить картой через другой карточный шлюз (например, Qiwi или Digiseller) или любым другим способом, которых у нас доступно более 20.
Метаданные статьи
Связанные статьи
Добрый день. Перестала работать оплата на сайте через Юкасса (дополнение YandexKassa Gateway). Написал в поддержку, их ответ ниже. Подскажите пожалуйста, в чем может быть проблема и как ее можно решить? Спасибо!
На CheckOrder вы ответили корректно.
Вы не можете просматривать опубликованные ссылки
Сейчас мы ожидаем ответа от вашего сервера на запрос PaymentAviso,
согласно документации в рамках технического протокола на запрос PaymentAviso ваш сервер должен ответить так же успехом.
Пример ответа который мы ожидает от вас на наш запрос:
Подробнее:
Вы не можете просматривать опубликованные ссылки
Сейчас же на запрос Payment Aviso нет ответа, ниже лог ЮКасса , как видно в теле ответа пусто, с каждой итерацией время повторной попытки доставить PaymentAviso увеличивается,
[[CommonHttpRequestService] [] sendHttpRequestSync(): merchantResponse=
Вам необходимо скорректировать ответ вашего сервера, и при следующем запросе PaymentAviso получив от вашего сервера корректный ответ, платеж перейдет в статус успеха.
Вы можете обратиться в техническую поддержку вашего модуля, так же уточнить у хостинг провайдера все ли в порядке на их стороне. К сожалению, мы не можем проверить все ли в порядке на вашей стороне.
добрый день, ранее подключение работало нормально?
Андрей CS сказал(а)
добрый день, ранее подключение работало нормально?
Да, работало нормально. Недавно в плагине WP Recall отключились все дополнения (возможно после обновления версии Вордпресс, не заметил точный момент), подключил заново, оплата перестала проходить.
Андрей CS сказал(а)
добрый день, ранее подключение работало нормально?
Подскажите, в чем может быть проблема и как ее можно решить?
проверьте все настройки подключения, как на стороне плагина, так и на стороне платежной системы, если все настроено верно, то проблем быть не должно
Андрей CS сказал(а)
проверьте все настройки подключения, как на стороне плагина, так и на стороне платежной системы, если все настроено верно, то проблем быть не должно
Переподключил дополнение, проверил все настройки в в плагине и платежной системе — та же проблема.
Судя по ответу поддержки платежной системы нет ответа на запрос Payment Aviso, с чем это может быть связано?
какое дополнение вы точно используете? yandex-kassa или yookassa?
откройте файл index.php используемого дополнения, найдите метод result
допишите в начале метода строку
rcl_mail_payment_error();
пробуйте провести платеж, на эл. почту админа пришло письмо?
если пришло, то скидывайте его содержимое
если не пришло, значит запрос от платежной системы не может дойти до сервера вашего сайта, надо выяснять причину
Редакции сообщения
16.03.2022 18:02Андрей CSПричина: не указано
Андрей CS сказал(а)
какое дополнение вы точно используете? yandex-kassa или yookassa?
откройте файл index.php используемого дополнения, найдите метод result
допишите в начале метода строку
rcl_mail_payment_error();
пробуйте провести платеж, на эл. почту админа пришло письмо?
если пришло, то скидывайте его содержимое
если не пришло, значит запрос от платежной системы не может дойти до сервера вашего сайта, надо выяснять причину
Дополнение YandexKassa Gateway, он же раньше работал. Пробовал ставить ЮKassa Gateway, но он просто вылетает при попытке оплаты. Выглядит так:
Вы не можете просматривать опубликованные ссылки
В дополнениях папка commerce насколько я понимаю, других подходящих нет:
Вы не можете просматривать опубликованные ссылки
Нашел result, письмо не пришло, но не уверен, что правильно вставил код, вот так пробовал:
1)
Вы не можете просматривать опубликованные ссылки
2)
Вы не можете просматривать опубликованные ссылки
файлы дополнения находятся в папке /wp-content/wp-recall/add-on/
Андрей CS сказал(а)
файлы дополнения находятся в папке /wp-content/wp-recall/add-on/
Нашел, вставил:
Вы не можете просматривать опубликованные ссылки
Емейл не пришел
значит запрос от платежки не может попасть на ваш сервер, не может быть им обработан, проблема не в дополнении, а в чем то другом
возможные причины:
— указан неверный путь до страницы result
— ваш сервер закрыт для сторонних запросов
Если ранее все работало, значит настройки в порядке, возможно, что вы меняли сами, включали какие то плагины, вносили изменения в htaccess и тп. Вспоминайте.
Смотрите логи access на сервере, ищите там запросы от платежной системы.
Редакции сообщения
17.03.2022 15:03Андрей CSПричина: не указано
Проблема решена — разобрался с дополнением ЮКасса, ранее неправильно указывал настройки, из-за чего оно деактивировалось. После создание нового магазина в платежном сервисе и указания корректных настроек прием оплаты заработал.
Илья сказал(а)
Проблема решена — разобрался с дополнением ЮКасса, ранее неправильно указывал настройки, из-за чего оно деактивировалось. После создание нового магазина в платежном сервисе и указания корректных настроек прием оплаты заработал.
Закройте заявку
Вы не можете просматривать опубликованные ссылки
Пригласить эксперта
Ответы на вопрос 1
В таких случаях надо обращаться в техническую поддержку. Помочь могут только они.
-
Да я прекрасно это знаю. Но они спят, а сроки тем временем горят. Я просто думал что сама либа не работает также как и их Yandex.Checkout
-
Плюс еще есть предупреждение в личном кабинете, которое я не совсем понимаю:
Your payment plugin cannot send the details for receipt
(we recommend checking with developers). -
FulTupFul, на интеграцию с платёжными системами надо закладывать сроки с запасом. У каждого из моих коллег был хоть раз опыт длительного подключения. У меня лично были случаи недельного подключения к сберовскому эквайрингу и двухнедельного к ассисту.
Похожие вопросы
-
Показать ещё
Загружается…
11 апр. 2023, в 01:06
6000 руб./за проект
11 апр. 2023, в 00:41
15000 руб./за проект
10 апр. 2023, в 23:03
3000 руб./за проект
Минуточку внимания
2
Не получилось Похоже, это техническая ошибка, Юмани, что значит?
Не получилось
Похоже, это техническая ошибка. Попробуйте заплатить ещё раз, что это значит на Юмани? Как исправить?
Ошибка на ЮMoney: Не получилось, техническая ошибка. Как исправить?
Техническая ошибка на Ю Money, попробуйте заплатить еще раз, что означает? Почему всплывает такое предупрежден7ие? Что делать, чтобы исправить?
Ошибка на Юмани, техническая, как зайти и совершить платеж?
2 ответа:
3
0
У меня подобное предупреждение всплывало еще в то время, когда Юмани были Яндекс Деньгами. Интерфейс после смены владельца пока особо не меняли, предупреждение об ошибке по-прежнему появляется.
Чаще всего это происходит после того, как выхожу из аккаунта. Нажимаю на «Выход», далее появляется рамка с ошибкой. Если ошибка появляется после выхода из аккаунта, то переживать по этому поводу не стоит. Это какой-то незначительный баг, который никак не влияет на осуществление действий в системе. Возможно, когда-нибудь его устранят. Я просто закрываю сайт в таких случаях и не акцентирую свое внимание на этом моменте.
Если в процессе операции всплывает рамка, то стоит проверить для начала прошел ли перевод или оплата, обновив страницу или перейдя на страницу своего аккаунта. Если операция прервана и платеж не прошел, то придется повторять все заново. Скорее всего, это ошибка на сайте. Ну или проблема с вашей стороны и можно попробовать, например, зайти в кошелек с другого браузера и провести платеж заново. Обновить браузер или проверить систему на вирусы. Выйти и зайти заново в кошелек. Или просто попробовать оплатить через некоторое время.
1
0
У меня довольно регулярно высвечивается у Youmoney «техническая ошибка, попробуйте заплатить еще раз». Причем, проходит платеж только после нескольких попыток с отказами. Исправить самостоятельно это невозможно, это какой-то баг системы. Но расскажу, что мне помогает.
Если два раза подряд выскакивает техническая ошибка на Юмани, я просто делаю перерыв в несколько минут, затем снова захожу в систему и пробую оплатить услугу. И тогда платеж обычно проходит. Кому-то помогает выйти и снова авторизоваться в аккаунте.
Хочу заметить, что с Яндекс.Деньгами у меня подобного не было, хотя кошельку много лет — около 10. Я думаю, это временные трудности с переходом на новую систему, и в ближайшее время программисты Яндекса все исправят. Хотелось бы надеяться на это.
Читайте также
Заблокировать Яндекс кошелёк можно 2 способами:
- Полное удаление вашего личного аккаунта, почты. Вместе со всеми Вашими данными стирается и ВСЯ персональная информация. Процесс необратим, а зарегистрировать новую (такую же) учётную запись с тем же логином, можно будет минимум через месяц;
- Блокировка. Она так же бывает двух видов, или самостоятельная, по волеизъявлению владельца, или по воле администрации ввиду нарушения правил и пр.
Для того, что-бы воспользоваться первым способом, необходимо войти в свою учётную запись в Яндекс,→ перейти в раздел «Яндекс Деньги»,→ прокрутить страницу в самый низ,→ найти пункт » Другие настройки»→ нажать «Удалить Аккаунт».
→ Вводите свои персональные данные (Пароль и секретное кодовое слово). Всё. Готово. Следующую аналогичную страницу сможете создать через 30 дней (31);
Способ 2:
Заходите в раздел поддержки: money.yandex.ru/feed<wbr />back → вводите имя (логин),выбираете один из двух возможных пунктов: «идентификация» или «мошенничество». И описываете конкретно вашу ситуацию, и причину, по которой у вас возникла необходимость блокировки вашего аккаунта ЯД.
Также рекомендую отправить дубликат заявки на адрес supp@money.yandex.ru ( поддержка Яндекс Денег).
Можно ли создать несколько кошельков Яндекс денег?
В системе всё достаточно просто на этот счёт, и к одному зарегистрированному аккаунту привязывается автоматически 1 ЯК. Более 1 кошелька завести невозможно чисто физически. для этого Вам необходимо иметь несколько разных аккаунтов, на каждый из которых будет приходиться 1 ЯК.
Если каждый из своих кошельков в разных аккаунтах вы хотите индивидуально идентифицировать на свои паспортные данные, то проблем не возникнет. Это возможно. Каждый из ваших ЯК может иметь необходимый вам статус: » Идентифицированный» или » профессиональный». Между собой они никак связаны не будут, не смотря на оформление на одно физ.лицо.
Ни один из пользователей никогда не сможет узнать о пренадлежащим вам двум, трём и более кошельков. Это нигде не отображается, и знать будете ТОЛЬКО ВЫ!
Однако есть одно «НО», в случае грубого нарушения правил использования Яндекс кошельков, к примеру такие как мошенничество, могут быть заблокированы все имеющиеся у вас кошельки, т.к. администрация разумеется знает привязву вашего IP и железа. Для этого нужно настроить анонимный доступ.
Я прошла Индефикацию благодаря кабинету Сбербанка и карте. Уже не помню как и что делала, но ищите на сайте кошелька Индефикацию через Сбербанк.
Всё делается быстро и с подсказками. Что-то тут пользователь напутал про Индефикацию за 1 руб. Сколько я имею кошелёк Яндекс, столько и сообщение там висит, что Индефикацию можно пройти в Евросети за 50 руб.
Непосредственно переместить биткоины на Яндекс-кошелек невозможно. однако существует большое количество специализирующихся на переводе средств сайтов (один из них extra-change.ru), где можно обменять по курсу биткоины в том числе и на яндекс-деньги, а их перевести уже на кошелек.
Это совершить нельзя. Ну можно, но только на вебмани, и то сайт тот не сотрудничает со стимом
Я знаю самый простой и эффективный способ вывода с Яндекс денег — это открытие Яндекс карты. Платите за нее 150 и пользуйтесь на здоровье.
При этом нал снимать необязательно.
Расплачивайтесь яндекс-картой в магазинах — вот вам и вывод денег.
Все отзывы >> Компании >> ООО РНКО «Единая касса» — Отзывы
Последний отзыв13:3420.05.2020
0 | отзывов | |
38 | отзывов | |
5 | отзывов | |
5 | отзывов | |
2 | отзыва | |
37 | отзывов |
87
Телефон: +7 495 640-73-40
Адрес: г Москва, ул Горбунова, д 2 стр 204
Аудит компании для владельцев бизнеса
Наши эксперты проведут бесплатный аудит актуальности контактов и репутации вашей компании в геосервисах.
Не упустите эту возможность и перестаньте терять клиентов из-за отсутствия на картах, ошибок в данных или низкого рейтинга!
Мониторинг отзывов с 25 источников
Управление актуальностью информации на геосервисах
Защита данных от изменения третьими лицами
Автоматические отчеты на почту
Мотивация клиентов оставить отзыв
Статистика целевых действий в карточках компании
–
Настройка и запуск «под ключ»
–
Обучение по работе с геосервисами и системой Repometr
–
Персональный менеджер
–
Добавление индивидуальных источников для мониторинга отзывов
Мониторинг отзывов с 25 источников
Управление актуальностью информации на геосервисах
Защита данных от изменения третьими лицами
Автоматические отчеты на почту
Мотивация клиентов оставить отзыв
Статистика целевых действий в карточках компании
Настройка и запуск «под ключ»
Обучение по работе с геосервисами и системой Repometr
Персональный менеджер
Добавление индивидуальных источников для мониторинга отзывов
Доработка системы под ваши задачи
Доступ к API
Мы нашли 87 отзывов о компании ООО РНКО «Единая касса», расположенной по адресу г Москва, ул Горбунова, д 2 стр 204.
Средний рейтинг компании 2,9 баллов из 5.
Рейтинг компании низкий. За счет обработки негативных отзывов и мотивации довольных клиентов оставлять рекомендацию, можно увеличить рейтинг компании. Согласно исследованиям рекламного агентства Go Fish Digital, организации теряют от 22% клиентов за счет негативного рейтинга в интернете.
Отзывы о компании собраны с сервисов Google Maps, Яндекс Карты, Yell.ru в период с 01.07.2016 по 20.05.2020.
За последние 30 дней о компании не было оставлено отзывов. Мотивировать клиентов оставлять отзыв о вашей компании можно за счет системы поощрений и скидок, почтовых и sms рассылок. Если клиент оставляет положительный отзыв, то вероятность того, что он вернется за услугой повторно, заметно возрастает.
Процент ответов на отзывы — 37%.
Представителям компании ООО РНКО «Единая касса» нужно чаще отвечать на отзывы клиентов, так как только 32 отзыва из 87 с ответами. По исследованиям, 86% пользователей изучают отзывы о компании перед покупкой и для 89% из них имеет значение то, как компания реагирует на отзывы.
Количество отзывов в месяц
Yell —
2 последних отзыва из 87
Да, тоже пользуюсь этим сервисом. Пока все устраивает вполне. Отличная техподдержка, комиссия низкая, зачисления мгновенные. Очень удобное приложение, в частности личный кабинет. За него отдельное спасибо разработчикам)
… Отзыв полностью
Свернуть отзыв
20.05.2020
Yell
Я тоже пользуюсь этим сервисом. Скачал себе на смартфон приложение, идентифицировался, разобрался. Все очень удобно, все понятно в приложении. Переводы проводятся быстро, деньги не теряются и не застревают. Комиссия минимальная по рынку.
… Отзыв полностью
Свернуть отзыв
15.05.2020
Yell
Отзывы со всех популярных сайтов — в одном месте
Удобная навигация, сортировка и фильтрация
Система аналитики поможет понять причины и следствия
Система комментариев поможет улучшить рейтинг
Средняя оценка пользователей:
3
3 | ||
1 | ||
0 | ||
1 | ||
3 |
Добавить свой отзыв
-
0
yusherus.com
17 апреля 2022 08:15
Единая Касса перестала работать.
На указанном ресурсе поддержки webasyst.club нет возможности зарегистрироваться.
Пишу проблему здесь…
После оформления заказа клиентом, при переходе им на платёжный сервис Единой Кассы для оплаты, выскакивает ошибка 500.
Техническая поддержка Единой Кассы сообщила следующее:Ответ от службы поддержки
Вами некорректно передается параметры:WMI_DESCRIPTION — передается Вами пустым,
Title — Строка, 128 символов,
Quantity- Десятичное число с точностью 3 символа после запятой,
Tax — Десятичное число с точностью 2 символа после запятой.Так же получаем от Вас ITEM_NUMBER и WMI_AUTO_ACCEPT, выберите в документации подходящий параметр, в зависимости от того, что Вы хотите передать в них.
Подробное техническое описание:
https://www.walletone.com/ru/merchant/documentation/Техническая поддержка Wallet One.
Прошу разработчика срочно исправить ошибку!
Для пояснений, дополнительной информации прошу разработчика связываться со мной по контактным данным указанным в профиле и на наших сайтах.
Webasyst.Club
РазработчикИсправлено в версии 2.1.0
- Продукт «Единая Касса» обновлен до версии 2.1.0 21 октября 2021.
-
0
aad
18 декабря 2015 05:07
Все мне нравиться, но комиссия очень большая и сразу хрен разберешься. Пример: оплачивают мне 1900 р. с клиента берут 38 р. Мне зачисляется на счет Единной кассы 1862 р. После их вывода на карту Сбера снимается еще раз комиссия и на карту приходит 1809 р.
Итог: товар стоит 1900 р. С клиента берут 38 р., а я в итоге имею 1809 р. Очень дорого. -
0
Dimon DIS
11 декабря 2015 11:21
Здравствуйте!
Все работает, то что люди пишут плохая касса, не знаю почти 2 года работаю все отлично. Лучше сервиса нет!
А теперь о минусе:
Палгин не работает если заказ создна в бэкенде и в результате после оплаты не ставиться статус оплачено!
Пожалуйста перепроверьте, и обновите его. -
0
Виктор
2 августа 2015 06:03
Плюсы:
— невысокие проценты
— неплохой современный интерфейс системы
Недостатки:
— Пока не подпишешь договор, средства выводить не сможете.
— Договор на стольких страницах, что я потратил кучу времени на его заполнение, а в итоге просто бросил, так как голову сломаешь пока заполнишь… -
+2
Эдуард
20 июля 2015 09:18
Касса ужасная! Хотите потерять 20-30% своих денег в Украине и нервы на несколько дней… Пробуйте =)
-
0
Stanislav
29 мая 2015 04:49
Начал пользоваться плагином еще до публикации его в магазине WebaSyst скачав его по ссылке на сайте W1. Было совсем не много способов оплаты. Сейчас же, после обновления появились все способы оплаты из которых можно выбрать только те, которые будут интересны клиентам и не предлагать клиентам из России оплатить банковским переводом в казахстанских тенге и наоборот. Давно уже об этом писал по плагину для Интеркассы, но там этого так и не сделали в течении длительного времени.
-
0
photo@y-net.ru
25 мая 2015 04:36
Не работал плагин, сейчас всё исправлено, плагин работает! Спасибо авторам.
-
0
samcolor
30 апреля 2015 03:22
Господа разработчики! 5 за плагин, 3 — за то, что контакты Ваши искать с собаками по ночной Москве приходится! Обеспечьте нормальную тех поддержку, пожалуйста, и оценка, я верю, будет выше!:) Итоговая средняя — 4