Редирект арқылы біріктіру
- Клиент Интернет-дүкенде өнімді таңдап, Сатып алу түймесіне басады.
- Интернет-дүкеннің сервері сатып алуға сұратымды алады.
- Интернет-дүкеннің сервері төлем шлюзінің серверімен байланысады.
- Төлем шлюзінің сервері тапсырысты жасап, төлеуге сілтемені құрастырады да, оны интернет-дүкеннің серверіне жібереді.
- Интернет-дүкен клиентті алынған сілтеме бойынша қайта бағыттайды.
- Төлем шлюзі төлем сілтемесін ашады.
- Клиент карта нөмірін, оның қолданылу мерзімін және 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