Сынақ карталар
Сынақ өткізу мақсатында келесі сынақ карталарды пайдалануға болады.
Сілтеме арқылы төлем
Төленетін шот ( сол жақ навигациялық мәзірдегі) бөлімі сатып алушыға электрондық пошта арқылы тауар немесе қызмет үшін төлем жасауға шотты ұсынуға мүмкіндік береді. Шот ұсынылған соң, сатып алушы электрондық хабарды алып, ішіндегі сілтеме арқылы төлем бетіне өтеді.
Электрондық пошта арқылы төлем пішініне сілтемені жіберу
Клиентке шотты ұсыну және электрондық пошта арқылы төлем бетіне сілтемені жіберу үшін келесі әрекеттерді орындаңыз.
Жеке кабинеттегі Төлем жасауға шот бөліміне өтіңіз. Жіберу параметрін енгізу беті көрсетіледі:
Төмендегі кесте бойынша параметрлерді реттеңіз.
Реттеу | Сипаттама |
---|---|
Төлеу түрі | Екі әдістің біреуін таңдаңыз.
|
Клиенттің аты-жөні | Клиенттің аты, тегі, әкесінің аты. Осы өріске енгізілген деректер төлем бетіне өткізетін сілтемесі бар хатта көрсетіледі. |
Электрондық пошта | Төлем жасауға сілтеме жіберілетін электрондық поштаның мекенжайы. |
Төлеу мерзімі | Шот бойынша төлем жасаудың соңғы күні мен уақыты. Осы мерзім аяқталған соң, ұсынылған шот бойынша төлем жасау мүмкін болмайды. |
Төлем сипаттамасы | Еркін түрде ұсынылған төлемнің сипаттамасы. |
Төлем сомасы | Төлем сомасын көрсетіңіз. Тапсырыста алдын ала толтырылған тауарлар себеті болса, осы өріс автоматты түрде толтырылады. |
-
Жіберу түймесін басыңыз.
Сәтті жіберілген жағдайда, төменде төлем жасау пішініне сілтеме пайда болады:
Төлем жасауға сілтеме түймесін басып, клиентке жіберілген төлем бетін қарап шығуыңызға болады.
Төлем жасауға шотты ұсынған кезде тауарлар себетін құру
Төлем жасауға шотты құру кезінде тапсырыс бойынша тауарлар себетін көрсетуге болады. Себет бөлімі төлем жасауға сілтемені құру пішінінің астында орналасқан:
1. Тауарлар себетін толтыру үшін Тауарды қосу түймесін басыңыз. Қосылатын тауардың параметрлері бар жолақ көрсетіледі. 2. Төмендегі кесте бойынша қажетті өрістерді толтырыңыз.
Өріс | Сипаттама |
---|---|
ID | Себеттегі тауар позициясының идентификаторы. Автоматты түрде толтырылады. |
Атауы | Тауардың не қызметтің атауы. |
Бағасы | Бір тауар позициясының бағасы. |
Саны | Осы тауар позициясы бойынша тауарлардың саны. |
Өлш. бір. | Өлшем бірліктері, мысалы: л — литр, дн. — дана. |
Сома | Толық тауар позициясының жолағы бойынша жалпы сома. Бағасы және Саны өрістерін толтырған кезде автоматты түрде есептеледі. |
Артикул | Тауар позициясының артикулы. |
- Тауарлар себетдегі әр позиция үшін қажетті әрекеттерді қайталаңыз. Қосылған позицияны жойғыңыз келсе, түймесін басыңыз.
Тауарлар себетін толтырған соң, клиентке шотты ұсыныңыз.
Сынақ төлем жасау
Сынақ төлем ретінде клиент тарапынан төлем процесін өз бетімен жасап көруіңізге болады. Бұл үшін:
1. Клиентке ұсынылатын шотты жасаңыз.
2. Шоттың сәтті ұсынылғаны туралы хабардағы Төлем жасауға сілтеме түймесін басып, төлем бетіне өтіңіз.
- Сынақ карталарының біреуін таңдап, деректемелерін енгізіңіз. Cardholder name өрісін бос қалдырыңыз.
- Төлем жасау түймесін басыңыз. Операцияны растау үшін сынақ картасы үшін көрсетілген 3-D Secure кодын пайдаланыңыз.
Редирект арқылы біріктіру
- Клиент Интернет-дүкенде өнімді таңдап, Сатып алу түймесіне басады.
- Интернет-дүкеннің сервері сатып алуға сұратымды алады.
- Интернет-дүкеннің сервері төлем шлюзінің серверімен байланысады.
- Төлем шлюзінің сервері тапсырысты жасап, төлеуге сілтемені құрастырады да, оны интернет-дүкеннің серверіне жібереді.
- Интернет-дүкен клиентті алынған сілтеме бойынша қайта бағыттайды.
- Төлем шлюзі төлем сілтемесін ашады.
- Клиент карта нөмірін, оның қолданылу мерзімін және CVV/CVC-кодын енгізіп, Төлеу түймесін басады.
- Төлем шлюзі төлеуге сұратымды өңдеп, клиентке төлемнің сәтті жасалғаны туралы хабарламаны көрсетеді.
- Клиент Интернет-дүкеннің бетіне қайта оралады немесе браузердің қойыншасын жабады.
Редирект арқылы біріктіруге түсініктеме
Тапсырысты тіркеу мысалы.
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/register.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data currency=978 \
--data userName=test_user \
--data password=test_user_password \
--data returnUrl=finish.html \
--data description=my_first_order \
--data language=en
{
"orderId": "0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0",
"formUrl": "https://3dsec.berekebank.kz/payment/merchants/rbs/payment_en.html?mdOrder=0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0"
}
Операция нәтижесін қарап шығу үшін дүкен қызметкері сатушы порталындағы жеке кабинеттен тапсырыстың күйін (қолмен) жүйелі түрде тексеріп тұрады.
Кері шақыру (callback) хабарландыруы арқылы біріктіру
Мерчант Редирект арқылы біріктіру соңғы қадамының орнына келесі нұсқалардың біреуін таңдай алады:
* returnUrl
параметрін пайдалану:returnUrl
ішіндегі мекенжай бойынша орналасқан (мысалы, https://www.merchantlogin.com/?back&orderId=61c33664-85a0-7d6b-af26-09ee009c4000&lang=en
) мерчант беті картаның иесін төлеуге әрекет жасағаннан кейін шлюзден қайта бағыттауды сәйкестендірген кезде, мерчант getOrderStatusExtended
сұратымы арқылы төлемнің күйін тексере алады.
Бұл нұсқа оңайырақ, бірақ ең сенімді емес, себебі қайта бағыттау орындалмауы мүмкін (мысалы, қосылым ажыраған кезде немесе карта иесі браузердің қойындысын жапқан жағдайда). Егер қайта бағыттау орындалмаса, онда returnUrl
ішіндегі бетте «триггер» жұмыс істемейді, сәйкесінше getOrderStatusExtended
сұратымы да болмайды.
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/getOrderStatusExtended.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=016b6f47-4628-7ea2-80f5-6c6e00a7d8c0 \
--data language=en
{
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "11008",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 2000,
"currency": "978",
"date": 1618577250840,
"orderDescription": "my_first_order",
"merchantOrderParams": [
{
"name": "browser_language_param",
"value": "en"
},
{
"name": "browser_os_param",
"value": "UNKNOWN"
},
{
"name": "user_agent",
"value": "curl/7.75.0"
},
{
"name": "browser_name_param",
"value": "DOWNLOAD"
}
],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "016b7747-c4ed-70b3-bc36-fdd400a7d8c0"
}
],
"cardAuthInfo": {
"maskedPan": "555555**5599",
"expiration": "202412",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "555555**5599"
},
"authDateTime": 1618577288377,
"terminalId": "123456",
"authRefNum": "931793605827",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 2000,
"depositedAmount": 2000,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryCode": "UNKNOWN",
"bankCountryName": "<Unknown>"
}
}
- Шлюздің кері қоңырау шалу туралы қол қойылмаған хабарландыруын пайдалану:
Сатушының профилінcallbackUrl
блогынан алдын ала баптауға болады (ол үшін шлюздің қолдау көрсету қызметіне сұратым жіберу қажет), шлюз бұл профильді төлегеннен кейін бірден сатушыға хабарландыруы бар сұратымды жіберу үшін пайдаланатын болады. Кері қоңырау шалудың әр хабарландыруын жеткізуге кепілдік беріледі.
Хабарландыруға шлюз сертификатының көмегімен қол қойылмағандықтан, хабарландыруларды жаман оймен пайдалануды болдырмау үшін, сатушыға тапсырыстың күйін сатушы порталы арқылы қайта тексеруге табанды түрде кеңес беріледі.
https://myshop.com/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&operation=deposited&status=1
- Шлюздің кері қоңырау шалу туралы қол қойылған хабарландыруын пайдалану:
Егер мерчанттың сандық сертификаттармен және қолтаңбалармен жұмыс істеу бойынша құзыреті бар болса, кері қоңырау шалудың сандық қолтаңба мен бақылау сомасы бар хабарландыруларын тексеру мен қауіпсіздік мақсатында пайдалануға болады. Сатушы хабарландырудың қолтаңбасын тексергеннен кейін,getOrderStatusExtended
жіберудің қажеті жоқ, себебі хабарландырудың өзінде тапсырыстың күйі туралы ақпарат қамтылады.
https://myshop.ru/callback/?mdOrder=1234567890-098776-234-522&orderNumber=0987&checksum=DBBE9E54D42072D8CAF32C7F660DEB82086A25C14FD813888E231A99E1220AB3&operation=deposited&status=1
Тікелей біріктіру
- Интернет-дүкеннің тікелей өзінің веб-сайты арқылы карта деректерін жинауға арналған жеке меншікті төлем беті болады. Интернет-дүкен кейбір тауарларды әр ай сайын мерзімді жеткізіп тұрады.
- Бірінші қадам — картада қаражатты кейінге сақтап қойып, тауар бірнеше күннен кейін нақты жіберілген кезде соманы «аудару».
Егер тауар бүлінген күйде келсе, онда интернет-дүкен қаражатты ішінара қайтаруды бастайды.
Жеткізулер мерзімді түрде орындалатындықтан, интернет-дүкен карта иелері үшін жазылымдарды ұсынып, олардың карталарынан қаражатты автоматты түрде есептен шығару қызметін қоса алады (cardholder not present).
Қаражаттарды резервтеу және байлаулы картасын құру
- Клиент Интернет-дүкенде өнімді таңдап, Сатып алу түймесіне басады.
- Интернет-дүкеннің сервері сатып алуға сұратымды алып, төлем бетін ашады.
- Сатып алушы интернет-дүкеннің төлем бетінде өз картасының деректерін енгізеді.
- Интернет-дүкеннің сервері карта деректерін жинайды.
- Интернет-дүкеннің сервері
clientId
нөмірімен тапсырысты тіркейді, сосын төлем шлюзіне деректерді жібереді.
- Төлем шлюзі ACS серверіне қатынасуға рұқсат алу үшін Directory Server-мен өзара әрекет етеді. Ол ACS серверінен интернет-дүкенге қайта бағыттау үшін қажетті барлық деректерді қайтарады.
- Интернет-дүкеннің сервері төлем шлюзіне клиентті қайта бағыттайды.
- Төлем шлюзі клиентті ACS серверіне қайта бағыттайды.
- Карта иесі тапсырысты растайды, сосын ACS сервері оны төлем шлюзіне қайта бағыттайды.
- Клиент Интернет-дүкеннің бетіне қайта оралады немесе браузердің қойыншасын жабады.
- Төлем шлюзі кері қоңырау шалу туралы хабарландыруды интернет-дүкеннің серверіне бейсинхронды түрде жібереді.
- Интернет-дүкеннің сервері тапсырыстың күйін тексереді, нәтижесінде, кейінгі рекуррентті төлемдерде пайдаланылатын
bindingId
алады.
clientId тапсырысты тіркеу
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/registerPreAuth.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data currency=978 \
--data userName=test_user \
--data password=test_user_password \
--data returnUrl=finish.html \
--data description=my_second_order \
--data clientId=659753456 \
--data 'jsonParams={"recurringFrequency": "5", "recurringExpiry": "20240101"}' \
--data language=en
{
"orderId": "017908cc-57c6-739a-ad25-df0d00a7d8c0",
"formUrl": "https://3dsec.berekebank.kz/payment/merchants/rbs/payment_en.html?mdOrder=017908cc-57c6-739a-ad25-df0d00a7d8c0"
}
paymentOrder сұратымының әдісі
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/paymentorder.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data MDORDER=019dbf02-e9f4-7fe2-b1c2-d50500a7d8c0 \
--data '$PAN=4012001038166662' \
--data '$CVC=123' \
--data YYYY=2024 \
--data MM=12 \
--data 'TEXT=TEST CARDHOLDER' \
--data 'ip=185.230.240.201' \
--data language=en
{
"info": "Your order is proceeded, redirecting...",
"errorCode": 0,
"acsUrl": "https://web.rbsuat.com/acs/auth/start.do",
"paReq": "eJxVUtFu4jAQ/BWU92DHcSCpFle946ryAEd7FKl9OZl4gbSNA05ypP36s0NSWsmSd8br3fGO4brJ3wb/0JRZoSdeMKTeAHVaqEzvJt7j6taPvWsBq71BnP7BtDYoYI5lKXc4yNTEG48kj5KN8jfxOPH5NqZ+kiTURxYlSEMaxtvUE7C8ecCjgK6RsH2GDEgPbUWT7qWuBMj0+GO2EJyNR5QC6SDkaGZTEfGQhRzIGYGWOYpSarUpmr95VwJIS0Na1Loy72LEQyA9gNq8iX1VHa4IqbCshmmRA3EkkIuGZe2i0hZpMiUWH/en39NZs3j5xearHZ+vnk6LD7tPnyZAXAYoWaFglAWUB8mAjq/simIgLQ8yd93tefugM4CD63Hz9eQrA3bQxvrQy+8RYHMoNLo7QD5jeHDGCNgaPNZtXgTkAgC1OmdYiZwGNLB3ewpIv19e/fPO+ZBWdsYvxamWr6rcnNaqWMuQrbF+zqLlXbQ7OHfaJKcqs9NlPDjLcgCIK0M640n3Z2z07S/9Bypv08k=",
"termUrl": "https://3dsec.berekebank.kz/payment/rest/finish3ds.do?lang=en"
}
ACS серверіне қайта бағыттау
Интернет-дүкен paReq
, MD
(MDORDER
мәнімен бірдей) және termUrl
параметрлерін POST әдісімен acsUrl
серверіне жіберуі қажет.
Балама ретінде Интернет-дүкен карта иесін ACS эмитентіне дәл сондай қайта бағыттауды орындайтын acsRedirect
шлюз әдісін пайдалануы мүмкін.
https://3dsec.berekebank.kz/payment/acsRedirect.do?orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0
Тапсырыс күйін алу және bindingId
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/getOrderStatusExtended.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
--data language=en
{
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "11044",
"orderStatus": 1,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 2000,
"currency": "978",
"date": 1618815949170,
"orderDescription": "my_second_order",
"ip": "185.230.240.201",
"merchantOrderParams": [
{
"name": "browser_language_param",
"value": "en"
},
{
"name": "recurringExpiry",
"value": "20240101"
},
{
"name": "recurringFrequency",
"value": "5"
},
{
"name": "browser_os_param",
"value": "UNKNOWN"
},
{
"name": "user_agent",
"value": "curl/7.75.0"
},
{
"name": "browser_name_param",
"value": "DOWNLOAD"
}
],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "017908cc-57c6-739a-ad25-df0d00a7d8c0"
}
],
"cardAuthInfo": {
"maskedPan": "401200**6662",
"expiration": "202412",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "401200**6662"
},
"bindingInfo": {
"clientId": "659753456",
"bindingId": "0162d467-bbfe-77f3-9c21-415c00a7d8c0"
},
"authDateTime": 1618816213981,
"terminalId": "123456",
"authRefNum": "012851192298",
"paymentAmountInfo": {
"paymentState": "APPROVED",
"approvedAmount": 2000,
"depositedAmount": 0,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryCode": "UNKNOWN",
"bankCountryName": "<Unknown>"
}
}
Тауарлар іс жүзінде тиелген кезде қаражатты есептен шығару жүргізіледі
- Интернет-дүкеннің қызметкері интернет-дүкеннің жеке кабинетінде тапсырысты таңдайды.
- Интернет-дүкеннің басқару панелі есептен шығаруға сұратымды өзінің серверіне жібереді.
- Интернет-дүкеннің сервері
deposit.do
сұратымын жібереді.
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/deposit.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data amount=2000 \
--data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
--data language=en
{
"errorCode": "0",
"errorMessage": "Success"
}
Бірнеше күннен кейін сатушы бүлінген күйінде жеткізілген тауарлар үшін қаражатты ішінара қайтаруды бастайды.
- Интернет-дүкеннің қызметкері интернет-дүкеннің жеке кабинетінде тапсырысты таңдайды.
- Интернет-дүкеннің басқару панелі қайтаруға сұратымды өзінің серверіне жібереді.
- Интернет-дүкеннің сервері
refund.do
сұратымын жібереді.
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/refund.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
--data amount=2000 \
--data language=en
{
"errorCode": "0",
"errorMessage": "Success"
}
Сатушы ай сайынғы тұрақты төлемді іске қосады
- Интернет-дүкеннің сервері тапсырысты тіркейді, сосын
bindingId
көрсету арқылы төлемді іске қосады.
- Интернет-дүкен төлемнің күйін тексеруі немесе қол қойылған callback-хабарландыруды күтуі мүмкін.
Кейінгі рекуррентті төлемді тіркеу
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/register.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data amount=2000 \
--data currency=978 \
--data userName=test_user \
--data password=test_user_password \
--data returnUrl=finish.html \
--data clientId=259753456 \
--data description=my_first_order \
--data language=en \
--data features=AUTO_PAYMENT
{
"orderId": "01791274-d9ca-7103-b148-7dc000a7d8c0",
"formUrl": "https://3dsec.berekebank.kz/payment/merchants/rbs/payment_en.html?mdOrder=01791274-d9ca-7103-b148-7dc000a7d8c0"
}
Тапсырысты тіркеуге берген formUrl
жауабында елемеуге болады. Рекуррентті төлеу үшін ол қажет емес.
Сосын, рекуррентті төлемді аяқтау үшін өзіңіздің серверіңізден paymentOrderBinding.do
сұратымын жіберіңіз.
bindingId идентификаторымен рекуррентті төлем
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/paymentOrderBinding.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data mdOrder=01791274-d9ca-7103-b148-7dc000a7d8c0 \
--data bindingId=01491394-63a6-7d45-a88f-7bce00a7d8c0 \
--data ip=1d0d:db8:6:1::77 \
--data language=en
{
"redirect": "https://3dsec.berekebank.kz/payment/merchants/rbs/finish.html?orderId=01791274-d9ca-7103-b148-7dc000a7d8c0&lang=en",
"info": "Your order is proceeded, redirecting...",
"errorCode": 0
}
Кейінгі рекуррентті төлемнің күйін тексеру
curl --request POST \
--url https://3dsec.berekebank.kz/payment/rest/getOrderStatusExtended.do \
--header 'content-type: application/x-www-form-urlencoded' \
--data userName=test_user \
--data password=test_user_password \
--data orderId=01791274-d9ca-7103-b148-7dc000a7d8c0 \
--data language=en
{
"errorCode": "0",
"errorMessage": "Success",
"orderNumber": "11045",
"orderStatus": 2,
"actionCode": 0,
"actionCodeDescription": "",
"amount": 2000,
"currency": "978",
"date": 1618816612879,
"orderDescription": "my_first_order",
"ip": "1d0d:db8:6:1::77",
"merchantOrderParams": [
{
"name": "browser_language_param",
"value": "en"
},
{
"name": "browser_os_param",
"value": "UNKNOWN"
},
{
"name": "user_agent",
"value": "curl/7.75.0"
},
{
"name": "browser_name_param",
"value": "DOWNLOAD"
}
],
"transactionAttributes": [],
"attributes": [
{
"name": "mdOrder",
"value": "01791274-d9ca-7103-b148-7dc000a7d8c0"
}
],
"cardAuthInfo": {
"maskedPan": "555555**5599",
"expiration": "202412",
"cardholderName": "TEST CARDHOLDER",
"approvalCode": "123456",
"pan": "555555**5599"
},
"bindingInfo": {
"clientId": "259753456",
"bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
},
"authDateTime": 1618816705914,
"terminalId": "123456",
"authRefNum": "947633173729",
"paymentAmountInfo": {
"paymentState": "DEPOSITED",
"approvedAmount": 2000,
"depositedAmount": 2000,
"refundedAmount": 0
},
"bankInfo": {
"bankCountryCode": "UNKNOWN",
"bankCountryName": "<Unknown>"
}
}