Обновленный 54 ФЗ ударил без исключения по всем сферам бизнеса. Но намного сильнее досталось мелким интернет магазинам, для которых это оказалось непомерным грузом.
Я хочу рассказать о способе легального приема оплаты с помощью пластиковых карт. Он конечно подойдет не всем, а только пользователям онлайн бухгалтерии Моё Дело, ну или тем кто захочет пользоваться в будущем. Если заинтересует, могу подарить скидку 20%; получить скидку.
Способ довольно прост и позволяет даже облегчить некоторые бухгалтерские моменты.
Выписывание счетов с помощью API сервиса Моё Дело
Идея напрашивалась давно, так как в сервисе Моё Дело к каждому счету можно сгенерировать онлайн ссылку на счет, который можно оплатить с помощью карты или Яндекс деньги.
Дело за малым, изучить API и написать скрипт. Сказано сделано, идем в мануал сервиса и находим инструкции по следующим функциям: Выписка счетов, поиск контаргентов и создание нового контрагента. Другие функции можно использовать, если хотите в дальнейшем развить идею.
Для начала нам нужны исходные данные, название контагента и сумма оплаты:
$name = 'ООО Династия';
$price = 500;
Дальнейшие действия происходят в 3 шага:
1. Поиск контагента в базе
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/kontragents/api/v1/kontragent?name=".urlencode($name));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {
foreach ($value[0] as $key1 => $value1) {
if ($key1 == 'Id') {$KontragentId = $value1;}
}
}
if ($KontragentId > 0) {
//Контрагент найден и его id известно
}
2. Создание нового контрагента
$data_string = '{
"Name": "'.$name.'",
"Type": 1
}';
print_r($data_string);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/kontragents/api/v1/kontragent");
curl_setopt($ch, CURLOPT_POST, true); // -X
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {
if ($key == 'Id') {$KontragentId = $value;}
}
if ($KontragentId > 0) {
//Контрагент создан и его id известно
}
3. Создание счета на оплату
//создание счета
$DocDate = date('Y-m-d');
$date2 = strtotime("+10 day");
$DeadLine = date('Y-m-d', $date2);
$data_string = '{
"Number": "",
"DocDate": "'.$DocDate.'T00:00:00+03:00",
"Type": 1,
"Status": 4,
"KontragentId": '.$KontragentId.',
"DeadLine": "'.$DeadLine.'T00:00:00+03:00",
"AdditionalInfo": "",
"ContractSubject": "",
"NdsPositionType": 1,
"IsCovered": true,
"UseStampAndSign": true,
"Items": [
{
"Name": "Название товара или услуги",
"Count": 1,
"Unit": "шт",
"Type": 2,
"Price": '.$price.',
"NdsType": 0
}
]
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/accounting/api/v1/sales/bill");
curl_setopt($ch, CURLOPT_POST, true); // -X
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
print_r($response);
curl_close($ch);
$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {
if ($key == 'Online') {$url = $value;}
}
if ($url != "") {
// Скрипт возвращает ссылку на счет
}
Минусы метода
Минус в задержке оплаты. Деньги на РС счет приходят на следующий день, а иногда через 2 дня. Но клиенты могут прислать скан платежки, что может ускорить работу с заказами.
Плюсы метода
- Не нужна касса
- Не нужно платить комиссию агрегаторам или банку
- Счет на оплату уже сформирован и базе
Ну в кратце все. Если вопросы возникнут, пишите в комментах ниже.