В случае, если карта покупателя участвует в программе 3dsecure, то в ответе на запрос к методам purchase или auth
будут присутствовать параметры для перехода на страницу банка, выпустивщего карту покупателя.
Последовательность операций
-
запрос
purchase -
переадресация покупателя на
acsUrlиз ответа со следующими параметрами-
PaReq- получено из запроса -
TermUrl-URLстраницы клиента, на которую будет возвращен покупатель после прохождения проверки -
MD- сгенерированные клиентом параметр, который будет передан обратно при возврате наTermUrl. Обычно используется идентификации покупателя
-
-
запрос
complete3dsс параметромpaRes, полученным при возврате наTermUrl.URLформируется с подстановкойoperationId, полученного в ответе на запросpurchase
Примеры запросов и ответов
Purchase
POST /card/1-1/operations/purchase HTTP/1.1
x-RequestId: acc-test-f3be1eca-1e8a-428e-971a-8cf62cb3d580
x-RequestId: acc-test-f3be1eca-1e8a-428e-971a-8cf62cb3d580
W1-Signature: OWh0aKyQJwdBW9u19l3c685eU8Sbu4tLkv0IP+8cctoaq0Yx4rvLNzTU3doCxFFLSYY/pdFWdSMe3cO3cUTXV9Jxxn41GMmbAJBps209uGWiu1TxaPnz2gUBWyvNvcNhphlpodCVFQ1MCv8p53ACs5/MTUradO607I55NMDxPdxdu9LIzjK2O0BKssVHel4DUdHZiwv0Ub2IvZ6flMM/pL7RMGpYpBIVXnwYia2Kv2VCAXpNL8x3fMs2LJk1ElNLTzlqbfXsN8vL0RBLvODRiWH5c7Ma4lAnD/kVY2AwW/sgZC5PkOQgjycHsxACSNAei8FQPkDSrC5WsrOO15Xv1g==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 764
{
"notification" : {
"url" : "http://127.0.0.1:8080/test/callback/default/",
"version" : 1
},
"externalId" : "ext#14-1791069025170",
"amount" : {
"amount" : 10.55,
"currency" : "USD"
},
"payer" : {
"paymentMethod" : {
"entity" : {
"pan" : "4916798373459761",
"expMonth" : 5,
"expYear" : 2030,
"cvv" : "444"
},
"type" : "CARD"
},
"info" : {
"phone" : "9001234567",
"ip" : "127.0.0.1",
"email" : "no-reply@example.com"
}
},
"merchantParameters" : {
"param1" : "anything you want for callback",
"param2" : null,
"param3" : null
},
"registerRecurring" : true,
"tds" : {
"notificationUrl" : "http://tds.notification.url:6789"
}
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 309
{
"operationId" : "1-1-a-12",
"status" : "WAITING_FOR_CONFIRMATION",
"type" : "PURCHASE",
"externalId" : "ext#14-1791069025170",
"params" : {
"acsUrl" : "http://testacs:9191/test/acs/3ds1",
"PaReq" : "good"
},
"actions" : {
"required" : [ {
"type" : "complete3ds"
} ]
}
}
Complete3ds
POST /card/1-1/operations/1-1-a-55/complete3ds HTTP/1.1
x-RequestId: acc-test-312b35e3-7811-497c-931b-9f9a790e6d26
x-RequestId: acc-test-312b35e3-7811-497c-931b-9f9a790e6d26
W1-Signature: sVsdUjOuhLTOnwRUfQO//1iu7SG1QGIxU8hcxhyvyUaJGjK8TTaM7tEgjuqyTy1p8tuhJWEChYP7TaMwvXpxpdxtpK4N2uvVyspmMldwnzoJhGcYhQKwGgxep0FDSPqFgGyqTkE1h3NIbirIBS1ozdrq6jRhp9kcNY2n4i3b1qLM2Sc9BWd95Wla1broqByxRUbZ2UVtDquVua493+w6V57x/gOA8QzIbD7NJI/D9ANW7bKFQ9faJ/D8Vdqu7XY22EP20OXR8IiT3eoy7AO+Ttw1aKSl5NRO8pmjSO4sK4dxFpyJxiaPD30r8/TvUU+q46Pws9v1aqf54NlNw8gY4g==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 26
{
"paRes" : "verified"
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 182
{
"operationId" : "1-1-a-55",
"status" : "SUCCEEDED",
"type" : "PURCHASE",
"externalId" : "ext#64-1791069064236",
"params" : { },
"actions" : {
"required" : [ ]
}
}
Уведомление клиента со стороны Flexo (Callback)
POST /test/emptycallback HTTP/1.1
x-RequestId: acc-test-f3be1eca-1e8a-428e-971a-8cf62cb3d580
x-RequestId: acc-test-f3be1eca-1e8a-428e-971a-8cf62cb3d580
W1-Signature: vOBHjNCWavzqAjjImBAQAJpOdl223khi5VtzIJkyrYXt0b+C+EX7d6T+jB2iMCoyKHqd2WDD4niley9Tkxir/TsOGkzOVHLHH6SniCnV78TAaAA/N94vbrqqSX9+HDN/xkxjVFR5XVnk1+s9EHh3niHVnOOI2AYKbjXs05rv0FbZYTz8GQ0pbj+ZeDmmj1oByY6FZZyGyX999IBcfQ94hkS8L0Rnstf6+OsTmNcVg6iMafxvBw3TIw/IYWszq/dpoBJPaDqQbd2g9Efkp6ABJG78KOYi+F814lZgB2v5FRIrmWn4lXo0lnljuicQ01Z+TUAGATkz2I2b/Qmn+huiLA==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 894
{
"id" : "1-1-a-12",
"type" : "PURCHASE",
"externalId" : "ext#14-1791069025170",
"successful" : true,
"amount" : {
"amount" : 10.55,
"currency" : "USD"
},
"baseAmount" : {
"amount" : 10.55,
"currency" : "USD"
},
"registeredMethods" : [ {
"entity" : {
"id" : "1-1"
},
"type" : "RECURRING_TOKEN"
}, {
"entity" : {
"id" : "payoutToken-491679-something-9761"
},
"type" : "PAYOUT_TOKEN"
} ],
"merchantParameters" : {
"param1" : "anything you want for callback",
"param2" : null,
"param3" : null
},
"status" : "SUCCEEDED",
"transactions" : [ {
"type" : "PURCHASE",
"status" : "SUCCEEDED"
}, {
"type" : "COMPLETE3DS",
"status" : "SUCCEEDED"
} ],
"payer" : {
"paymentMethod" : {
"entity" : {
"pan" : "491679XXXXXX9761"
},
"type" : "MASKED_CARD"
}
}
}
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers