Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Есть люди, кто интегрировал 1С со Сбербанк "Спасибо"? Вопрос по бесконтактному считыванию

Есть люди, кто интегрировал 1С со Сбербанк "Спасибо"? Вопрос по бесконтактному считыванию
Я
   Cyberhawk
 
08.02.18 - 13:14
Друзья, есть среди вас такие, кто на 1С успешно реализовал безконтактное считывание банковских карт (или мобильных устройств) через пин-пады Сбербанка (в основном имеются Verifone VX820) для интеграции с процессинговым центром лояльности "Спасибо" (списание этих бонусов с бонусного баланса, ну и возвраты с отменами начислений этих бонусов)?

Если кратко, то:
1. У Сбера есть "новая" версия библиотеки (СОМ-компоненты) sbrfcom.dll (27.0.х.х), которая при первом вызове старого доброго метода "ОплатитьПлатежнойКартой" никакую реальную оплату не осуществляет, а только возвращает хэш номера карты.
2. Далее (по их задумке) 1С, зная хэш, взаимодействуем с бонусной программой (через их локальное ПО или через веб-сервис), списывает бонусы, уменьшает в 1С сумму чека на сумму бонусов (скидка типа) и повторно вызывает метод "ОплатитьПлатежнойКартой" с уменьшенной суммой для оплаты, где уже и происходит реальная оплата (авторизация суммы на карте).
3. Очевидно, что "старая" обработка обслуживания для 1С с "новой" СОМ-компонентой несовместима, т.к. вызывает методы оплаты / отмены / возврата один раз и поэтому реальных операций с картой не происходит.

Собственно, интересует, подружил ли кто 1С с "новой" библиотекой (переписал обработку обслуживания) или как-то еще по-другому реализовал безконактное считывание сберовских карт покупателей для списания "Спасибок"?
Почему упоминаю безконтактное считывание? Да потому что с контактным считыванием все в порядке - это умеет делать и "старая" библиотека Сбера, но тогда, во-первых, всякие ApplePay (оплата с мобильных устройств) идут лесом, а во-вторых клиенту приходится дважды с пин-падом взаимодействовать (сначала вставлять карту чипом в пин-пад, а потом еще раз для оплаты).
 
 
   Cyberhawk
 
6 - 09.02.18 - 16:24
Ну что, у кого есть карточки Сбербанка со "спасибками"?
Вы когда в магазине расплачиваетесь этими спасибками, карточку всегда в пин-пад вставляете чипом?
Где-нибудь в оффлайн-магазине удавалось вам расплатиться  "спасибками" безконтактным способом?
   Flover
 
7 - 09.02.18 - 17:00
(6) расплачиваюсь в бургер кинге ими, прикладываю чипом к терминалу, спасибки автоматом как то потом списываются и показываются в чеке сколько спасибок списалось.
   Cyberhawk
 
8 - 09.02.18 - 17:24
(7) "прикладываю чипом к терминалу" // Чипом карту в терминал только вставляют :) Безконтпктное считывание данных с чипа невозможно.
А ты карту прикладываешь к корпусу терминала (никуда ее не вставляя), правильно понял?
Не обращал внимание, что у них там за кассовое ПО?
   X Leshiy
 
9 - 09.02.18 - 17:27
(8) Я пол часа назад расплачивался спасибками.

Карта бесконтактная.

Вставлять не просили.
   Cyberhawk
 
10 - 09.02.18 - 17:29
(9) Какое ПО на кассе, не обратил внимание?
 
 Рекламное место пустует
   X Leshiy
 
11 - 09.02.18 - 17:30
(10) К сожалению, я в них не разбираюсь (

Точно помню что черно-белое)
   Cyberhawk
 
12 - 09.02.18 - 17:31
(11) А спасибками расплачиваешься полностью (не платя ни копейки "живыми" деньгами) или только часть стоимости чека?
   Cyberhawk
 
13 - 09.02.18 - 17:31
(7) Вопрос аналогичный (12)
   Flover
 
14 - 09.02.18 - 17:33
(8)

(А ты карту прикладываешь к корпусу терминала (никуда ее не вставляя), правильно понял?)
да, верно
(Не обращал внимание, что у них там за кассовое ПО?)

неа

выходит чек после успешной транцакции и на нем написано сколько спасибок оплачено и сколько рублей...
из последнего чека помню, что 100 рублей и 400 спасибок было
   X Leshiy
 
15 - 09.02.18 - 17:34
(12) 1 рубь списали.
   X Leshiy
 
16 - 09.02.18 - 17:36
(12) Спасибок хватало, но все равно 1 руб. списали.
   Cyberhawk
 
17 - 09.02.18 - 17:37
(14) (15) Благодарю!
   NorthWind
 
18 - 09.02.18 - 22:29
(17) В бургер-кинге списывают рубль и размазывают всю стоимость еды по этому рублю. Грубо говоря, бутерброд 6 копеек, кока-кола 4 копейки. По-моему, они это скидкой делают, хотя могу ошибаться, чека сейчас под руками нет. А потом, кажется, в отдельном отрывном купоне указывается сколько списано спасибо, и та же инфа приходит на телефон.
Как-то так.
   NorthWind
 
19 - 09.02.18 - 22:30
то есть фактически производится продажа за нал на минимально возможную сумму все равно есть.
   ejikbeznojek
 
20 - 09.02.18 - 23:26
(0) Я всё делал через sbrf.dll
   Cyberhawk
 
21 - 10.02.18 - 18:27
(20) Делал свою обработку обслуживания (если речь о какой-нибудь типовой с поддержкой торгового оборудования)?
   ejikbeznojek
 
22 - 11.02.18 - 11:07
(21) Угу, делал свою. Не помню, чего мне не хватило в типовой через sbrfcom.dll.
Но это более-менее простая обработка была.
Функция УзнатьХэш() экспорт
    попытка
        ВыхПараметры=новый СписокЗначений;
        ОбъектДрайвера = Новый COMОбъект("SBRFSRV.Server");
        очистить=ОбъектДрайвера.clear();    
        ответ=ОбъектДрайвера.NFun (5002);
        если ответ = 0 тогда
            Хэш=ОбъектДрайвера.GParamString("hash");
            ЭтоСбер=ОбъектДрайвера.GParamString("OWNCArd");
            Пан=ОбъектДрайвера.GParamString("ClientCard");
            Пан="************"+сред(пан,13);
            если ЭтоСбер<>"1" тогда
                ВыхПараметры.Добавить("ЭтожНеСбер");
                ВыхПараметры.Добавить(пан);
                Возврат ВыхПараметры;
            КонецЕсли;
            ОбъектДрайвера.clear();
            ВыхПараметры.Добавить(Хэш);
            ВыхПараметры.Добавить(пан);
            Возврат ВыхПараметры;
        иначе 
            Сообщить("Карта не прочитана, ошибка чтения карты");
            возврат Неопределено;
        КонецЕсли;
    Исключение
        Сообщить("Карта не прочитана, ошибка соединения с терминалом");
        возврат Неопределено;
    КонецПопытки;
КонецФункции



Функция ОплатитьПлатежнойКартой(ОбъектДрайвера, Параметры,
    Сумма, ВыходныеПараметры,чек,форма) Экспорт
    Результат             = ложь;
    
    
    
    ЗаплатилиБаллами=чек.СуммаОплатыБаллами;    
    СуммаВременная        = Неопределено;
    
    КодКарты            = Неопределено;
    СсылочныйНомер        = Неопределено;
    НомерЧека             = Неопределено;
    
    //ОбъектДрайвера.ТипКарты = 0;//.ПоследнийТипКарты;?????????????????

    СуммаВременная = Сумма*100;
    
    очистить=ОбъектДрайвера.clear();    
    ОбъектДрайвера.SParam ("Amount", СуммаВременная);
    ответ=ОбъектДрайвера.NFun (4000);
    
    если ответ<>0 тогда возврат Ложь;
    иначе Результат=Истина;    
    КонецЕсли;
    
    
    
    
    НомерТерминала       = ОбъектДрайвера.GParamString("TermNum");
    MyClientCard       = ОбъектДрайвера.GParamString("ClientCard") ;
    MyClientExpiryDate = ОбъектДрайвера.GParamString("ClientExpiryDate") ;
    MyAuthCode         = ОбъектДрайвера.GParamString("AuthCode");
    MyCardName         = ОбъектДрайвера.GParamString("CardName");
    СлипЧек           = ОбъектДрайвера.GParamString("Cheque");
    MerchantTSN       =ОбъектДрайвера.GParamString("MerchantTSN");
    если чек.хэш="" или чек.хэш=Неопределено тогда
        если ОбъектДрайвера.GParamString("OWNCArd")="0" тогда
            Хэш="ЭтожНеСбер";
            Пан="";
        иначе
            Хэш                      =ОбъектДрайвера.GParamString("Hash");
            Пан=ОбъектДрайвера.GParamString("ClientCard");
            Пан="************"+сред(пан,13);
            форма.хэш=хэш;
            форма.пан=пан;
            
            
        КонецЕсли;
    Иначе 
        Хэш=чек.хэш;
        Пан=чек.пан;
    КонецЕсли;

    Транзакция=чекоб.транзакцииБН.добавить();
    транзакция.ID=MerchantTSN;
    транзакция.вид=Перечисления.ВидТранзакцииБН.Списание;
    Транзакция.видОплаты=Перечисления.ВалютаТранзакцииБН.Рубли;
    Транзакция.СуммаТранзакции=Сумма;
    Транзакция.СуммаТранзакцииИзБанка=Сумма;
    
    
    
    
    
    
    
    
    если  ПараметрыСеанса.КассаККМ.ЭквайринговыйТерминал<>Справочники.ЭквайринговыеТерминалы.ПустаяСсылка()  и хэш<>"ЭтожНеСбер" Тогда 
        если ЗаплатилиБаллами <> 0 тогда
            РезультатОБ=ОплатитьБаллами(хэш,ЗаплатилиБаллами,чек,форма,пан);
        иначе 
            РезультатОБ=Истина
        КонецЕсли; 
        если (РезультатОБ или ЗаплатилиБаллами=0) тогда
        Иначе 
            Сообщить("не прошли операции с баллами");
            ответ=ОбъектДрайвера.NFun (4003);

            //кухарь 24.02.2014 начало

            //иногда могут не вставить карту при отмене

                ////кухарь 28.10.2013 начало

                //Транзакция.отменена=Истина;

                ////кухарь 28.10.2013 конец             

                Если ответ=0 тогда
                    Транзакция.отменена=Истина;
                    //кухарь 17.03.14 начало

                    //обнулим хэш на случай если в чеке используется несколько различных банковских карт

                    форма.Хэш="";
                    форма.Пан="";
                    //кухарь 17.03.14 конец

                КонецЕсли;
            //кухарь 24.02.2014 конец

            
            
            возврат Ложь
        КонецЕсли;    
    КонецЕсли;
    
    
    
    
    

    
    ВыходныеПараметры.Добавить(Новый Массив());
    ВыходныеПараметры[0].Добавить("СлипЧек");
    ВыходныеПараметры[0].Добавить(СлипЧек);
    ВыходныеПараметры.добавить(Новый Массив());
    ВыходныеПараметры[1].добавить("КодАвторизации");
    ВыходныеПараметры[1].добавить(MyAuthCode);
    //ВыходныеПараметры.добавить(Хэш);

    
    
    ОбъектДрайвера.Clear();
    ОбъектДрайвера=Неопределено;
    
    Возврат Результат;
    
КонецФункции
   Лефмихалыч
 
23 - 11.02.18 - 13:47
(0) чо-то какой-то долбаный бред. Не должно быть продавцу ни какого дела до того, какого сорта деньги списывает со своего клиента сбер. Тут как-то все кверх кармашками на рога поставлено. Дятелизм какой-то в исполнении сбера.
   vis_tmp
 
24 - 11.02.18 - 13:51
(23)Да, мне тоже показалось это всё весьма странным
   Cyberhawk
 
25 - 11.02.18 - 14:24
(23) (24) Ну вот такая программа лояльности у Сбера - списание бонусов "Спасибо" инициируется как раз кассовым ПО (торговой точкой). Сделали так, видимо, чтобы превращать бонусы в реальные деньги (как у программ лояльности других банков) было максимально затруднительно. Жиды.
   Лефмихалыч
 
26 - 11.02.18 - 14:32
(25) да просто, когда в голове обе извилины эротическими фантазиями про блокчейн и машинлёнен заняты, тогда в рельаном мире получаются вот такие решения
   Cyberhawk
 
27 - 11.02.18 - 14:37
(22) Спс за пример взаимодействия с СОМ-компонентой sbrf.dll, надеюсь _не_ пригодится :)
В плане удобства новая сберовская компонента sbrfcom.dll будет поудобнее того, что у тебя в коде, но она пока еще багнутая, да и заказчик пока не хочет переписывать действующую логику безналичной оплаты (настройки пин-падов и обработку обслуживания), даже в ущерб удобства покупателей.
Кстати, ты можешь предложить тем своим, которым реализовывал, как раз переписать обработку обслуживания еще разок, чтобы за одно безконтактное считывание все заработало :)
   ejikbeznojek
 
28 - 11.02.18 - 16:38
(27) А мы недавно отказались от спасибо.
А снятие денег работает и сейчас через безконтактное считывание.
Я недавно считал какие это убытки приносит.

У нас 4,5% от оплаты по безналу начислений было. И сберовские 0,5%. + можно принимать к оплате.

Начисление баллов это чистый убыток (за 1 начисленный покупателю балл мы платим сберу 1 рубль).

За списание баллов банк платит нам (1 принятый к оплате балл равен рублю, который нам должен банк). Но есть комиссия 0,5% от оборота. А с учётом того, что в месяц баллов мы принимали на несколько миллионов, это сравнимо с убытком на начисления. У меня получалось убытков 1% от оборота магазинов. + деньги которые за списание баллов, банк отдаёт не сразу, а раз в полгода.
   ejikbeznojek
 
29 - 11.02.18 - 16:48
(0) хах....там самое интересное начинается с возвратами.
Я когда интеграция только начиналась придумал схему.

Покупатель набирает товара на 100000.
получает 5000 бонусов
идёт в бургер кинг и ест на 5000 бонусов.
Возвращается в магазин и делает возврат товара.
И получает обратно свои 100000.

При этом баллы у него списать нельзя, потому что у него уже их нет. Отказать в возврате тоже нельзя.

И выходит что покупатель остался в плюсе на 5000.
Банк остался в плюсе на размер комиссии.
А мы остаёмся в минусе на 5000.

Я позвонил к ним и спросил, что они с такими схемами делают?
Мне что-то невнятно ответили про борьбу с фродингом, и что кто слишком часто так делают, тем блокируют баллы на карте.
В общем сомнительно это всё как-то....
   Cyberhawk
 
30 - 11.02.18 - 18:18
(28) Да уж, теперь понятно, зачем банк организовал весь этот геморрой с вовлечением торговых точек в процесс поощрения клиентов - чтобы оставаться в профите :) Благодарю за информацию!
   NorthWind
 
31 - 11.02.18 - 21:33
(30) интересно, каким образом банк мотивирует торговые точки участвовать во всем этом, раз ничего кроме геморроя для них в этом нет?
   Cyberhawk
 
32 - 11.02.18 - 21:59
(31) Думаю, аргументируют это увеличением клиентуры. Типа на двери магаза будет висеть стикер "Принимаем Спасибо".
   ejikbeznojek
 
33 - 12.02.18 - 10:30
(32) + на сайте сбера висит список кто принимает и начисляет баллы.
Я вот иногда, когда баллов накопится, захожу на сайт и смотрю где  могу их потратить.
И директора магазинов некоторые жаловались, что часть клиентов, когда узнавало что мы перестали баллы принимать, разворачивались и уходили.

(31) Ну это обычные затраты на рекламу, но я вот не знаю как проанализировать, насколько крутая это реклама.
 
 


Список тем форума
  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует