Чтобы иметь возможность проводить рекурретные платежи, необходимо сначала провести обычную покупку или авторизацию средств с передачей флага "зарегистрировать рекарринг"
Последовательность операций
-
запрос
purchase -
обработать уведомление (callback) и взять оттуда
registeredMethods[0].entity.id -
послать запрос
recurringс передачей значения токена
Примеры запросов и ответов
Purchase
POST /card/1-1/operations/purchase HTTP/1.1
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
W1-Signature: TwOksmnq38l5b6kXQ6d5qRCY1S3k6AHnFuzDWKmm68a5ao1ACePHtLlk3LdBNCFpubzi9VnW3TP0qlIZKgnZhiNOsUmNonKgS2rCNCeW5ED1KakZSQE2+klMzHTWCFMdjVPbn15/JjLIxErxqX1YJcbEsDEWMJy+JCh1Yd4/GNULdvhNFtnmJBGHpoPu//1Ml9LvTP3ZRn0VzqpAPSNqyFKZwUf9SmpoFEsJFOznZhUqGuQHEVdV7cnQyV5YSg+gMO3mMIeYUChcCELulRwYwf3+x5gx1wSOcbMRaCzitTud9OtT4ktG2hLG2gJni6gUsEucyOIaP7Kp8aha0GpoYA==
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#66-1788979703070",
"amount" : {
"amount" : 10.55,
"currency" : "USD"
},
"payer" : {
"paymentMethod" : {
"entity" : {
"pan" : "4111111111111111",
"expMonth" : 5,
"expYear" : 2030,
"cvv" : "444"
},
"type" : "CARD"
},
"info" : {
"phone" : "9001234567",
"email" : "no-reply@example.com",
"ip" : "127.0.0.1"
}
},
"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: 182
{
"operationId" : "1-1-a-54",
"status" : "SUCCEEDED",
"type" : "PURCHASE",
"externalId" : "ext#66-1788979703070",
"params" : { },
"actions" : {
"required" : [ ]
}
}
Уведомление клиента со стороны Flexo о покупке (Callback)
POST /test/emptycallback HTTP/1.1
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
W1-Signature: tzgMbpYPmfJm64fvetpX/mgXu6HXIPzNuELKWzfHmYabosRdY1UeyaArCEgTakIWa6kBbPsFUnSLEA4h3M45ttJ8kl6G8xqrC+C9XI+a6IPvRiAUPlQTrO2TY8qGasNAkMqlCq8h1NDmeJdy8aDskJrMgi9dfadER2OwMDH9dxy7pItqNk30UWLoEJaBGpj8QP39sF/Zgz/46moBDDW1irxz+3f13Dfc03Ew5o7cVuhL7FZiWyclc7tVnBU4qCC4S7JIf5H/WiiZaZuwqwCiheqgqX/NTFWub4VYBwnpRYk/N5kPp95XC/UgemYtszErxsT6ex97MEzGSPfgXg5srg==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 832
{
"id" : "1-1-a-54",
"type" : "PURCHASE",
"externalId" : "ext#66-1788979703070",
"successful" : true,
"amount" : {
"amount" : 10.55,
"currency" : "USD"
},
"baseAmount" : {
"amount" : 10.55,
"currency" : "USD"
},
"registeredMethods" : [ {
"entity" : {
"id" : "1-4"
},
"type" : "RECURRING_TOKEN"
}, {
"entity" : {
"id" : "payoutToken-411111-something-1111"
},
"type" : "PAYOUT_TOKEN"
} ],
"merchantParameters" : {
"param1" : "anything you want for callback",
"param2" : null,
"param3" : null
},
"status" : "SUCCEEDED",
"transactions" : [ {
"type" : "PURCHASE",
"status" : "SUCCEEDED"
} ],
"payer" : {
"paymentMethod" : {
"entity" : {
"pan" : "411111XXXXXX1111"
},
"type" : "MASKED_CARD"
}
}
}
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Recurring
POST /card/1-1/operations/recurring HTTP/1.1
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
W1-Signature: VVdOqGDhAoLKvY5Fijyqp5hYkuDylnr2VFNeTnlFnwi2Wqr7koy+UhvC1DbZPrwgZ4tKQE3apB9XMpQhLv0gu2d7BTMHAnMRQQNLxer2/FueWBhJBe+0TncdE1bS3sNknMMX7hicemvrS63Ig8cR802RDe3fcYK//1YP+zn08LgnpCDdCiNnZI2OmfqsSeMUXfBGyOswFh0odkJp+kXlcu5wfPJtZvCwJmFwSZF+cfpdq+sK2xlFqpXEY9nq3EEeLblrc3RxOA7asCMEOKgDZPJJ6Dtk0KXTLfJJwLXgpfg4dffHYpsO8oBatG7GdilVl7BRHXHiApXQjNtVk4niRA==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 465
{
"notification" : {
"url" : "http://127.0.0.1:8080/test/callback/default/",
"version" : 1
},
"externalId" : "ext#67-1788979703645",
"amount" : {
"amount" : 10.55,
"currency" : "USD"
},
"payer" : {
"paymentMethod" : {
"entity" : {
"id" : "1-4"
},
"type" : "RECURRING_TOKEN"
}
},
"merchantParameters" : {
"param1" : "anything you want for callback",
"param2" : null,
"param3" : null
}
}
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 183
{
"operationId" : "1-1-a-55",
"status" : "SUCCEEDED",
"type" : "RECURRING",
"externalId" : "ext#67-1788979703645",
"params" : { },
"actions" : {
"required" : [ ]
}
}
Уведомление клиента со стороны Flexo о рекурренте (Callback)
POST /test/emptycallback HTTP/1.1
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
x-RequestId: acc-test-ffdd655b-202b-4203-9762-1651136c9bbc
W1-Signature: ojXTkyvZnGuUJ3PSDiu0/r1Ywj8sgQAl9NHCHTe3k9CHFWgQukL5qJCrV0MZmaMvLSAoaaT/ibazM5xC7H4JujZ1HCgrhnmPgIhfrW6N0HCpXOGK5k25RFBG7QkQs707rw3HKnyg1fJTAzGDcNFoCUPeKhNoCWPDIEcPWUHYAjnCmM5gENCVfkwf2cnAelgq542TSpM9RNwrEbhu1enH6ZxOxkrU1qcjcY2Hz+OVvCdVM/dxuJYPRwNn4qovysHFbkvJKkpCsm1izTxeE2xR2/yseZDv6faK8bp3uLGhOGvfktxWpkfO+l1AupIkEy+51O3Cj4aAqEg2AYHzB1VktA==
Content-Type: application/json
Host: payment.flexo.systems
Content-Length: 646
{
"id" : "1-1-a-55",
"type" : "RECURRING",
"externalId" : "ext#67-1788979703645",
"successful" : true,
"amount" : {
"amount" : 10.57,
"currency" : "USD"
},
"baseAmount" : {
"amount" : 10.55,
"currency" : "USD"
},
"registeredMethods" : [ ],
"merchantParameters" : {
"param1" : "anything you want for callback",
"param2" : null,
"param3" : null
},
"status" : "SUCCEEDED",
"transactions" : [ {
"type" : "RECURRING",
"status" : "SUCCEEDED"
} ],
"payer" : {
"paymentMethod" : {
"entity" : {
"pan" : "411111XXXXXX1111"
},
"type" : "MASKED_CARD"
}
}
}
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers