Интеграция с Ккм Через Библиотеку Pilot_nt
-
Upload
kuznetcov-andrey -
Category
Documents
-
view
325 -
download
4
Transcript of Интеграция с Ккм Через Библиотеку Pilot_nt
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 1/7
Предложения по интеграции программного модуля Сбербанка
с ПО ККМ под управлением ОС Windo!
1. Общие положения
Для обслуживания банковских карт Сбербанк предоставляет программную библиотеку
PILOT!T"#LL$ обеспе%ивающую проведение автори&а'и( по картам$ а также
)ормирование карто%н*х %еков и итогов*х от%етов &а ден+"
Для работ* с картами кассов*( аппарат оснащается дополнител+н*м вне,ним
устро(ством - ./01клавиатуро(" 2то устро(ство испол+&уется для с%ит*вания карт$
для ввода ./01кода клиентом$ а также в*полняет )унк'ии криптогра)и%еско(
&ащит* при обмене данн*ми с про'ессингово( системо( Сбербанка" ./01клавиатура
может подклю%ат+ся к свободному СО31порту 4модели 56789:;6 <=>>?$ <=>@@@$
5ABC@$ I;D6;8E: F@G@H или к порту <J 456789:;6 5ABC@$ I;D6;8E: F@G@H" Сбербанк
предоставляет Kто устро(ство бесплатно на период де(ствия договора Kква(ринга с
торгов*м предприятием"
сли кассов*( аппарат 4MM3H оснащен собственн*м ридером для магнитно( полос*$
то в период первона%ал+но( ра&работкиNотладки кассового .О можно обо(тис+ бе&
./01клавиатур*" Для окон%ател+ного тестирования 4а также для реал+но( работ* в
торговом предприятииH ./01клавиатура понадобится обя&ател+но"
2. становка и кон)игурирование библиотеки
дистрибутивн*( комплект библиотеки входят следующие каталогиQ
Docs - содержит документа'июна библиотеку$ Rуководство пол+&ователя и т"д"Config -содержит программу для редактирования настрое%ного )а(ла библиотеки"
Soft\PC\Pilot_nt - собственно исполняем*е )а(л* библиотекиQ
Pilot_nt.dll - основная библиотека$ которую должно в*&*ват+ .О MM3S
Sb_kernel.dll, Gate.dll - служебн*е библиотекиS
LoadParm.exe - утилита для &агру&ки параметров библиотеки и других
технологи%еских опера'и("
.еред на%алом работ* необходимоQ
1. Скопироват+ на MM3 содержимое каталогов Soft\PC\Pilot_nt и Config"
2. сли испол+&уется ./01клавиатура$ тоQ
с помощ+ю программ* Config\TlvEdit.exe отредактироват+ )а(л
Soft\PC\Pilot_nt\Examle!it"Pinad.tlv $ установив требуем*м обра&ом
параметр
Общие параметр* U .араметр* для терминалов на ба&е RС U 0омер СО31порта для ./01
клавиатур*V"
3. Wапустит+ программу Soft\PC\Pilot_nt\LoadParm.exe.
4. Wа(ти в меню Служебн*е опера'ии U 0астро(ка U Xехобслуживание U 4.арол+BGBGBGH U Wагру&ка параметров"
C
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 2/7
5. *брат+ )а(л Examle!it"Pinad.tlv $ если испол+&уется ./01клавиатура$ или
)а(л ExamleTest.tlv - в противном слу%ае"
6. Дождат+ся &авер,ения про'едур* &агру&ки параметров"
Yиблиотека готова к работе" сли в ходе работ* во&никнет необходимост+ и&менит+
какие1либо параметр* библиотеки$ следует повторит+ описанную в*,е про'едуру$
на%иная с ,ага ?"
3. Описание )унк'и( библиотеки
.ри проведении опера'и( по картам испол+&уются следующие )унк'ии и структур*Q
int card_authorize(char* track2, struct auth_answer* auth_ans);
int card_authorize6(char* track2, struct auth_answer6* auth_ans);
int card_authorize7(char* track2, struct auth_answer7* auth_ans);
int card_authorize9(char* track2, struct auth_answer9* auth_ans);
#ragma ack$%&
str'ct a't"_ans(er) int TT*e+ -/01 234 2567869:33 'nsigned long ;mo'nt+ -/01 <=>>6 - 9/4?@96 c"ar Acode B%+ -F/01 9/0 5?8=H2626 6-2/5386:33 c"ar ;IessageB%J + -F/01 </-?<7/? 4/K<7?73? 5?8=H2626
int CT*e+ -F/01 234 9652Fc"ar C"eck+ -F/01 /M568 N?96, 0/O?7 /<-/M/O062H<K Globalree - -F8F-6QR?@ 45/56>>?+
str'ct a't"_ans(erJ) str'ct a't"_ans(er a't"_ans(+ c"ar ;'t"CodeBU+ -F/01 9/0 6-2/5386:33 c"ar CardVDBW+ -F/01 30?723X3962/5 $7/>?5& 9652F int ErrorCode+ -F/01 4/05/M7F@ 9/0 /Y3M93 c"ar TransDateBZ+ -F/01 0626 3 -5?>K /4?56:33 int Trans['mber+ -F/01 7/>?5 /4?56:33 86 0?7H c"ar AA[B%+ -/0-F/01 <<F/N7F@ 7/>?5 45?06-2/5386:33+
str'ct a't"_ans(erU) a't"_ans(er ans+ -/0-F/01 /<7/-7F? 4656>?25F /4?56:33 $<>.-FY?& c"ar ;'t"CodeBU+ -F/01 9/0 6-2/5386:33 c"ar CardVD BW+ -F/01 7/>?5 9652F int Sber](nCard+ -F/01 X6 453760?O7/<23 9652F ^M?5M679=+
str'ct a't"_ans(er) a't"_ans(er ans+ -/0-F/01 /<7/-7F? 4656>?25F /4?56:33 $<>.-FY?& c"ar ;'t"CodeBU+ -F/01 9/0 6-2/5386:33 c"ar CardVD BW+ -F/01 7/>?5 9652F int Sber](nCard+ -F/01 X6 453760?O7/<23 9652F ^M?5M679=c"ar `as"B%+ -F/01 ?Y S`;% /2 7/>?56 9652F - X/5>62? ;SCVV
+
#ragma ack$&
Zунк'ия испол+&уется для проведения оплат*$ предавтори&а'ии$ &авер,ения рас%етапо банковско( карте$ а также при необходимости для во&вратаNотмен* платежа"
?
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 3/7
ходн*е параметр*Q
c"ar track
/O?2 3>?2H 876N?73? [LL 33 </0?5O62H 0677F? @ 0/5/O93 9652F, <N32677F?96<</-/@ 45/56>>/@.
int TT*e
34 /4?56:331% /4626, -/8-562/2>?76 /462F,W% 45?06-2/5386:3K,W 86-?5Y?73? 56<N?26.
'nsigned long ;mo'nt
^=>>6 /4?56:33 - 9/4?@96.
*ходн*е параметр*Q
c"ar ACodeB%
h?8=H262 6-2/5386:33. 76N?73K jZZ 33 jZ /876N6Q2 =<4?Y7=Q 6-2/5386:3Q, QMF?
05=3? /2968 - 6-2/5386:33.
c"ar ;IessageB%J
<=N6? /29686 - 6-2/5386:33 </0?5O32 95629/? <//MR?73? / 453N37? /29686.73>673?1 4/? 7? 3>??2 86-?5Y6QR?/ M6@26 ZZZ.
int CT*e
34 /M<=O?77/@ 9652F. /8>/O7F? 876N?73K1% VS; IasterCard Iaestro ;merican ExressW Diners Cl'bJ VS; Electron
c"ar C"eck
53 =<4?Y7/@ 6-2/5386:33 </0?5O32 /M568 9652/N7// N?96, 9/2/5F@ -F8F-6QR6K45/56>>6 0/O76 /2456-32H 76 4?N62H, 6 862?> /<-/M/032H -F8/-/> X=79:33Globalree$&.
/O?2 3>?2H 876N?73? [LL. 2/> <=N6? 739693 0?@<2-3@ < 73> -F8F-6QR6K45/56>>6 -F4/7K2H 7? 0/O76.
c"ar ;'t"CodeBU
53 =<4?Y7/@ 6-2/5386:33 $4/ >?O0=765/07/@ 9652?& </0?5O32 9/0 6-2/5386:33. 53/4?56:33 4/ 9652? ^M?59652 4/? M=0?2 864/7?7/ <3>-/6>3 pq.
c"ar AA[B%
<4/H8=?2<K 0K 45?06-2/5386:33 3 86-?5Y?73K 56<N?26. ^/0?5O32 =7396H7F@ %876N7F@ <<F/N7F@ 7/>?5, <-K8F-6QR3@ 45?06-2/5386:3Q 3 86-?5Y?73? 56<N?26. 5345?06-2/5386:33 2/ 4/? K-K?2<K -F/07F> $?/ 864/7K?2 M3M3/2?96ilot_nt.dll&, 6 453 86-?5Y?733 56<N?26 -/07F> $876N?73? 0/O7/ MF2H 864/7?7/-F8F-6QR?@ 45/56>>/@+ /7/ 0/O7/ </-46062H </ 876N?73?>, -/8-56R?77F> 45345?06-2/5386:33&.
c"ar CardVDBW
53 =<4?Y7/@ 6-2/5386:33 $4/ >?O0=765/07/@ 9652?& </0?5O32 7/>?5 9652F. K>?O0=765/07F 9652 -<? <3>-/F, 95/>? 4?5-F J 3 4/<?073 , M=0=2 86>?7?7F<3>-/6>3 pq.
int Sber](nCard
^/0?5O32 %, ?<3 /M<=O?776K 96526 -F0676 ^M?5M679/>, 33 Z - 45/23-7/> <=N6?.
c"ar `as"B%
F
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 4/7
53 =<4?Y7/@ 6-2/5386:33 $4/ >?O0=765/07/@ 9652?& </0?5O32 ?Y S`;% /2 7/>?569652F - -30? ;SCVV<25/93 037/@ Z <3>-//-.
int close_day(struct auth_answer *auth_ans);
Zунк'ия испол+&уется для ежедневного &акр*тия смен* по картам и )ормирования
от%етов"
ходн*е параметр*Q
int TT*e
34 /4?56:331 U 8695F23? 07K 4/ 96526>.
'nsigned long ;mo'nt
? 3<4/H8=?2<K.
*ходн*е параметр*Q
c"ar AcodeB%
? 3<4/H8=?2<K.
c"ar ;IessageB%J
? 3<4/H8=?2<K.
int CT*e
? 3<4/H8=?2<K.
c"ar C"eck
^/0?5O32 /M568 /2N?26 4/ 96526>, 9/2/5F@ -F8F-6QR6K 45/56>>6 0/O76 /2456-32H 764?N62H, 6 862?> /<-/M/032H -F8/-/> X=79:33 Globalree$&.
/O?2 3>?2H 876N?73? [LL. 2/> <=N6? 739693 0?@<2-3@ < 73> -F8F-6QR6K45/56>>6 -F4/7K2H 7? 0/O76.
int ReadTrack2(char *Track2);
Zунк'ия по&воляет про%итат+ ?1ю дорожку прои&вол+но( карт*" .ри успе,ном
в*полнении во&вращает @$ при неуда%ном - код о,ибки"
*ходн*е параметр*Q
c"ar Track
u=X?5, 9=06 X=79:3K 8643<F-6?2 45/N32677=Q Q 0/5/O9=. h68>?5 M=X?56 0/O?7 MF2H
7? >?7?? Z M6@2.
int ReadCard!(char *"ast#$i%its, char *&ash);
Zунк'ия по&воляет про%итат+ банковскую карту для испол+&ования в скидо%но(
системе Спасибо от СбербанкаV" Mарта должна б*т+ в*дана Сбербанком$ в
противном слу%ае )унк'ия вернет о,ибку" .ри успе,ном в*полнении во&вращает @$
при неуда%ном - код о,ибки"
*ходн*е параметр*Q
c"ar LastDigitsu=X?5, 9=06 X=79:3K 8643<F-6?2 N?2F5? 4/<?073 :3X5F 7/>?56 9652F. h68>?5 M=X?560/O?7 MF2H 7? >?7?? W M6@2.
[
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 5/7
c"ar `as"
u=X?5, 9=06 X=79:3K 8643<F-6?2 ?Y /2 7/>?56 9652F - ;SCVVX/5>62?. h68>?5 M=X?560/O?7 MF2H 7? >?7?? % M6@26.
int Test'inad()
Zунк'ия проверяет нали%ие пинпада" .ри успе,ном в*полнении во&вращает @
4пинпад подклю%енH$ при неуда%ном - код о,ибки 4пинпад не подклю%ен или
неисправенH"
int usendTr ($+R$ dw-ount, char* uthCode)
Zунк'ия переводит последнюю успе,ную тран&ак'ию в подве,енноеV состояние"
сли тран&ак'ия находится в Kтом состоянии$ то при следующем сеансе свя&и с банком
она будет отменена"
ходн*е параметр*Q
D!]AD d(;mo'nt
^=>>6 /4?56:33 $- 9/4?@96&.
c"ar ;'t"Code
/0 6-2/5386:33.
Zунк'ия сверяет переданн*е и&вне параметр* 4сумму и код автори&а'ииH со
&на%ениями в последне( успе,но( опера'ии$ которая б*ла проведена %ере&
библиотеку" сли хотя б* один параметр не совпадает$ )унк'ия во&вращает код
о,ибки [C[@ и не в*полняет никаких де(стви("
int Co--itTr($+R$ dw-ount, char* uthCode)
Zунк'ия во&вращает последнюю успе,ную тран&ак'ию в нормал+ноеV состояние"
.осле Kтого тран&ак'ия будет вклю%ена в от%ет и спро'ессирована как успе,ная"
.еревести ее снова в подве,енноеV состояние будет уже нел+&я"
ходн*е параметр*Q
D!]AD d(;mo'nt
^=>>6 /4?56:33 $- 9/4?@96&.
c"ar ;'t"Code
/0 6-2/5386:33.
Zунк'ия сверяет переданн*е и&вне параметр* 4сумму и код автори&а'ииH со
&на%ениями в последне( успе,но( опера'ии$ которая б*ла проведена %ере&
библиотеку" сли хотя б* один параметр не совпадает$ )унк'ия во&вращает код
о,ибки [C[@ и не в*полняет никаких де(стви("
int Roll.ackTr($+R$ dw-ount, char* uthCode)
Zунк'ия в*&*вает немедленную отмену последне( успе,но( опера'ии 4во&можно$
ранее переведенную в подве,енноеV состояние$ хотя Kто и не обя&ател+ноH" сли
тран&ак'ия уже б*ла во&вращена в нормал+ноеV состояние )унк'ие( =:\\8]T7A4H$ то)унк'ия ^:__`aEbT7A4H &авер,ится с кодом о,ибки [C[C$ не в*полняя никаких
де(стви("
>
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 6/7
ходн*е параметр*Q
D!]AD d(;mo'nt
^=>>6 /4?56:33 $- 9/4?@96&.
c"ar ;'t"Code
/0 6-2/5386:33.
Zунк'ия сверяет переданн*е и&вне параметр* 4сумму и код автори&а'ииH со
&на%ениями в последне( успе,но( опера'ии$ которая б*ла проведена %ере&
библиотеку" сли хотя б* один параметр не совпадает$ )унк'ия во&вращает код
о,ибки [C[@ и не в*полняет никаких де(стви("
int .ortTransaction()
Zунк'ия прер*вает работу )унк'и( Ea7cad]e:78f6g4H" не,нее .О может в*&ват+
Kту )унк'ию и& отдел+ного треда$ %тоб* досро%но прекратит+ в*полнение любо( и&
)унк'и( Ea7cad]e:78f6g4H" .ри Kтом )унк'ия Ea7cad]e:78f6g4H &авер,ится с кодомо,ибки ?@@@ 4опера'ия прерванаH"
4. .орядок в*&ова )унк'и( библиотеки
.ри оплате 4во&вратеH покупки по банковско( карте кассовая программа должна
в*&ват+ и& библиотеки Сбербанка )унк'ию Ea7cad]e:78f64H$ &аполнив поля TThi6 и
j\:d;] и ука&ав нулев*е &на%ения в остал+н*х полях"
.о окон%ании работ* )унк'ии необходимо проанали&ироват+ поле ^=:c6" сли в нем
содержится &на%ение @V или @@V$ автори&а'ия с%итается успе,но в*полненно($ впротивном слу%ае - отклоненно("
Mроме Kтого$ необходимо проверит+ &на%ение поля =e6Eb" сли оно не равно !LL$
его необходимо отправит+ на пе%ат+ 4в не)искал+ном режимеH и &атем удалит+
в*&овом )унк'ии k_:`a_97664H"
слу%ае$ если вне,няя программа не обеспе%ивает гарантированно( пе%ати
карто%ного %ека и& поля =e6Eb$ она может испол+&оват+ следующую логикуQ
CH *полнит+ )унк'ию Ea7cad]e:78f64H"
?H .осле &авер,ения работ* )унк'ии Ea7cad]e:78f64H$ если тран&ак'ия в*полнена
успе,но$ в*&ват+ )унк'ию <dli6;cT7A4H и приступит+ к пе%ати %ека"
FH сли %ек напе%атан успе,но$ в*&ват+ )унк'ию =:\\8]T7A4H"
[H сли во время пе%ати %ека во&никла неустранимая проблема$ в*&ват+ )унк'ию
^:__`aEbT7A4H для отмен* платежа"
сли в ходе пе%ати %ека прои&о(дет &ависание MM3 или сбо( питания$ то тран&ак'ия
останется в подве,енномV состоянии" .ри следующем сеансе свя&и с банком она
автомати%ески отменится"
m
7/21/2019 Интеграция с Ккм Через Библиотеку Pilot_nt
http://slidepdf.com/reader/full/-pilotnt 7/7
.ри &акр*тии смен* кассовая программа должна в*&ват+ и& библиотеки Сбербанка
)унк'ию E_:l6cah4H$ &аполнив поле TThi6 n G и ука&ав нулев*е &на%ения в остал+н*х
полях"
.о окон%ании работ* )унк'ии необходимо проверит+ &на%ение поля =e6Eb" сли поле
=e6Eb не равно !LL$ его необходимо отправит+ на пе%ат+ 4в не)искал+ном режимеH и
после Kтого удалит+ в*&овом )унк'ии k_:`a97664H"
G