Оплата по ссылке, платежный шлюз сбербанка

1. instrument6625 14.10.19 16:56 Сейчас в теме
Ищу пример генерирования ссылок для оплаты в СБЕРБАНКе. Возможно кто то реализовал.
Интерфейс выполню сам.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VictorRGB2 14 14.10.19 17:20 Сейчас в теме
примерно так формировал квитанции для с qr кодом для оплаты через банкоматы сбера (часть кода, в основе лежит БСП 2)

// перед печатью заполняем обязательные реквизиты структуры QR кода
&НаСервере
Функция ЗаполнитьСтруктуруРеквизитовQRКода(пСтруктураРеквизитовQRКода)
	
	пСтруктураРеквизитовQRКода = Новый Структура();
	пСтруктураРеквизитовQRКода.Вставить("Name");           // организация получатель
	пСтруктураРеквизитовQRКода.Вставить("PersonalAcc");    // рассчетный счет получателя
	пСтруктураРеквизитовQRКода.Вставить("BankName");       // банк получателя
	пСтруктураРеквизитовQRКода.Вставить("BIC");            // БИК банка полкучателя
	пСтруктураРеквизитовQRКода.Вставить("CorrespAcc");     // корреспондетский счет получателя
	пСтруктураРеквизитовQRКода.Вставить("PayeeINN");       // ИНН организации получателя
	пСтруктураРеквизитовQRКода.Вставить("LastName");       // ФИО клиента плательщика
	пСтруктураРеквизитовQRКода.Вставить("PayerAddress");   // адрес клиента плательщика
	пСтруктураРеквизитовQRКода.Вставить("Purpose");        // описание платежа
	пСтруктураРеквизитовQRКода.Вставить("Sum");            // сумма платежа в копейках (без пробелов разделителей разрядов)
	
	пСтруктураРеквизитовQRКода.Name 		= СокрЛП(Объект.Организация.Наименование);
	пСтруктураРеквизитовQRКода.PersonalAcc 	= СокрЛП(Объект.РасчетныйСчет.НомерСчета);
	пСтруктураРеквизитовQRКода.BankName	 	= СокрЛП(Объект.РасчетныйСчет.Банк.Наименование);
	пСтруктураРеквизитовQRКода.BIC		 	= СокрЛП(Объект.РасчетныйСчет.Банк.Код);
	пСтруктураРеквизитовQRКода.CorrespAcc 	= СокрЛП(Объект.РасчетныйСчет.Банк.КоррСчет);
	пСтруктураРеквизитовQRКода.PayeeINN	 	= СокрЛП(Объект.Организация.ИНН);
	
	Возврат пСтруктураРеквизитовQRКода;
КонецФункции

&НаСервере
Функция ДополнитьСтруктуруРеквизитовQRКода(пСтруктураРеквизитовQRКода, пКонтрагент, пАдресКонтрагента, пДатаДок, пКОплатеИтого)
	
	пСтруктураРеквизитовQRКода.lastName		= СокрЛП(пКонтрагент.Наименование);       
	пСтруктураРеквизитовQRКода.PayerAddress = СокрЛП(пАдресКонтрагента);   
	пСтруктураРеквизитовQRКода.Purpose		= "за " + ВернутьМесяцПрописью(пДатаДок);        
	пСтруктураРеквизитовQRКода.Sum			= Строка(пКОплатеИтого);            
	
	Возврат пСтруктураРеквизитовQRКода;
	
КонецФункции

&НаСервере
Функция СформироватьСтрокуQRКодаПоСтруктуре(пСтруктураРеквизитовQRКода, пДокумент)
	
	строкаQRКода = "";
	
	Для Каждого Элемент Из пСтруктураРеквизитовQRКода Цикл
		ЗначениеСтрокой = СокрЛП(Элемент.Значение);
		
		строкаQRКода = строкаQRКода + "|" + Элемент.Ключ + "=" + ЗначениеСтрокой;
	КонецЦикла;
	
	Возврат строкаQRКода;
	
КонецФункции

&НаСервере
Функция СуммаВКопейкахСтрокой(пКОплатеИтого)
	прибавитьКСтрокеКопейки = Ложь;
	Если пКОплатеИтого - Цел(пКОплатеИтого) = 0 Тогда
		прибавитьКСтрокеКопейки = Истина;
	КонецЕсли;
	
	лРезультат = Строка(пКОплатеИтого);
	лРезультат = БезПробелов(лРезультат);
	лРезультат = лРезультат + ?(прибавитьКСтрокеКопейки, ",00", "");
	лРезультат = СтрЗаменить(лРезультат, ".", "");
	лРезультат = СтрЗаменить(лРезультат, ",", "");
	
	Возврат лРезультат;
КонецФункции


&НаСервере
Функция ПроверитьДопустимуюДлинуОбязательныхРеквизитов(пСтруктураРеквизитовQRКода)
	лСтрока = "";
	
	лСтрока = лСтрока + пСтруктураРеквизитовQRКода.Name;
	лСтрока = лСтрока + "|" + пСтруктураРеквизитовQRКода.PersonalAcc;
	лСтрока = лСтрока + "|" + пСтруктураРеквизитовQRКода.BankName;
	лСтрока = лСтрока + "|" + пСтруктураРеквизитовQRКода.BIC;
	лСтрока = лСтрока + "|" + пСтруктураРеквизитовQRКода.CorrespAcc;
	
	Если СтрДлина(лСтрока) > 300 Тогда
		Шаблон = НСтр("ru = 'Невозможно создать QR-код для печати %1
			|Строка обязательных реквизитов должна быть меньше 300 символов:
			|""%2""'");
		ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, "", лСтрока);
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
		Возврат Ложь;
	Иначе
		Возврат Истина
	КонецЕсли;
	
КонецФункции

// на сервере
&НаСервере
Функция ПечатьНаСервере(пДок, пМакет, пУспешно, пСтруктураРеквизитовQRКода)

	// формируем QR код
	ОшибкаQRКода = Ложь;
	Если пМакет = "МакетQR" И Объект.ДобавитьQRКод Тогда
		// формируем строку QR кода
		пСтруктураРеквизитовQRКода = ДополнитьСтруктуруРеквизитовQRКода(пСтруктураРеквизитовQRКода, пДок.Контрагент, АдресКонтрагента, пДок.Дата, СуммаВКопейкахСтрокой(лКОплатеИтого));
		
		QRКодСтрока = СформироватьСтрокуQRКодаПоСтруктуре(пСтруктураРеквизитовQRКода, пДок);
		Если ПустаяСтрока(QRКодСтрока) Тогда
			ОшибкаQRКода = Истина; // Возникли ошибки
		КонецЕсли;
		
		Если НЕ ОшибкаQRКода Тогда
			// для формирования QR кода использум встроенный механизм
			ДанныеQRКода = УправлениеПечатью.ДанныеQRКода("ST00012" + "|" + QRКодСтрока, 0, 190);
			Если НЕ ТипЗнч(ДанныеQRКода) = Тип("ДвоичныеДанные") Тогда
				Шаблон = Нстр("Не удалось сформировать QR-код для документа %1");
				ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, пДок);
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
				ОшибкаQRКода = Истина;
			КонецЕсли;
			
			Шапка.Рисунки.QRКод.Картинка =  Новый Картинка(ДанныеQRКода);
		КонецЕсли;
	КонецЕсли;

КонецФункции
Показать
3. instrument6625 15.10.19 07:12 Сейчас в теме
Добрый день , это конечно хорошо но хотелось сделать такую ссылку
Прикрепленные файлы:
4. VictorRGB2 14 15.10.19 08:42 Сейчас в теме
(3) тут помочь не могу, с подобными задачами не сталкивался
5. instrument6625 17.10.19 16:19 Сейчас в теме
Предлагаю кому то взяться за это дело
+рубли
6. EVKash 15 17.10.19 16:41 Сейчас в теме
(5) https://developer.sberbank.ru/doc/v1/acquiring/easy-connection-one-line
Для получения доступа к генератору ссылок обратитесь по эл.адресу: support@ecom.sberbank.ru
7. instrument6625 18.10.19 08:07 Сейчас в теме
Я прошу помочь генерировать такую ссылку, сейчас мы генерируем его в личном кабинете. Потом эту ссылку отправляем для оплаты.
т.е в 1с сразу подставляем поля сумма, электронку, и текст типа "Оплата заказа 123456789 ФИО"
8. EVKash 15 18.10.19 08:36 Сейчас в теме
(7) генерация ссылки в любом случае будет на стороне сбера.
Для генерации сторонними программами у них должно быть свое API. Оно есть у вас?
9. instrument6625 18.10.19 15:07 Сейчас в теме
токен, логин и пароль есть
11. etmarket 896 14.01.20 14:52 Сейчас в теме
(10) упс... неверную ссылку добавил. Исправляю:
https://infostart.ru/public/1176609/
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот