Перевірка статусу платежу: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
(Не показані 3 проміжні версії цього користувача)
Рядок 1: Рядок 1:
{{APINav}}
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
<p style="border: 1px solid #9ACD32; background-color: rgba(192, 255, 192, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
     <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
     <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
Рядок 234: Рядок 235:
</syntaxhighlight>
</syntaxhighlight>


<div style="width: 100%; display: flex; justify-content: space-between; gap: 20px; box-sizing: border-box; padding: 12px 0;">
<div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;">
 
   <!-- Ліва кнопка -->
   <!-- Ліва кнопка -->
   <div style="
   <div style="
    position: relative;
     flex: 1;  
     flex: 1;  
     min-width: 180px;  
     min-width: 150px;  
     background: rgba(135, 206, 250, 0.1);  
     background: rgba(135, 206, 250, 0.1);  
     padding: 14px 20px;  
     padding: 8px 14px;  
     border-radius: 10px;  
     border-radius: 8px;  
     border: 1px solid #007BFF;  
     border: 1px solid #007BFF;  
     color: #007BFF;  
     color: #007BFF;  
     font-weight: bold;  
     font-weight: bold;  
     font-size: 18px;  
     font-size: 1em; /* пропорційний розмір */
     display: flex;  
     display: flex;  
     align-items: center;  
     align-items: center;  
Рядок 252: Рядок 255:
     cursor: pointer;
     cursor: pointer;
   ">
   ">
[[Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом]]
<!-- Текст у кутку --><span style="position: absolute; top: 6px; left: 8px;">← Назад</span>
    <!-- Основний текст -->
<br>
<span>[[Підтвердження платежу клієнтом. Введення смс. Проходження 3DS перевірки|Підтвердження платежу клієнтом]]</span>
 
</div>
</div>
   <!-- Права кнопка -->
   <!-- Права кнопка -->
   <div style="
   <div style="
    position: relative;
     flex: 1;  
     flex: 1;  
     min-width: 180px;  
     min-width: 150px;  
     background: rgba(135, 206, 250, 0.1);  
     background: rgba(135, 206, 250, 0.1);  
     padding: 14px 20px;  
     padding: 8px 14px;  
     border-radius: 10px;  
     border-radius: 8px;  
     border: 1px solid #007BFF;  
     border: 1px solid #007BFF;  
     color: #007BFF;  
     color: #007BFF;  
     font-weight: bold;  
     font-weight: bold;  
     font-size: 18px;  
     font-size: 1em; /* пропорційний розмір */
     display: flex;  
     display: flex;  
     align-items: center;  
     align-items: center;  
Рядок 271: Рядок 280:
     cursor: pointer;
     cursor: pointer;
   ">
   ">
[[Скасування платежу#Вступ|Скасування платежу]]
 
</div>
 
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span>
    <!-- Основний текст -->
<span>[[Скасування платежу#Вступ|Скасування платежу]]</span>
  </div>
 
</div>
</div>

Поточна версія на 12:42, 14 серпня 2025

Merchant API

Головна сторінка

(Токенізація з передачею даних картки у запиті

POST /api/merchant/orderState

Request

headers:
"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="

body
{
   "serviceKey":"MERCHANT-TEST",
   "orderId":"test_20240524-0015",
   "transactionId":"1413668587"
}


Response

headers:
відсутній 

body:
"merchantKey":"easypay-test",
  "transactionId":1413668587,
  "orderId":"test_20240524-0015",
  "amount":3.000000,
  "paymentState":"declined",
  "refundTransactionId":1413673292,
  "":
  "paymentsList":[
    
  ],
  "refunds":[
    {
      "refundTransactionId":1413669380,
      "paymentState":"accepted",
      "refundAmount":1.10,
      "dateAccepted":"2024-05-24T16:14:45+03:00",
      "dateDeclined":null,
      "datePost":"2024-05-24T16:14:39+03:00"
    },
    {
      "refundTransactionId":1413673292,
      "paymentState":"accepted",
      "refundAmount":1.90,
      "dateAccepted":"2024-05-24T16:19:40+03:00",
      "dateDeclined":null,
 "datePost":"2024-05-24T16:19:33+03:00"
    }
  ],
  "error":null
}


Опис параметрів

Фінальний статус? Значення/ подальші дії
accepted так платіж прийнято
declined так платіж відхилений
pending ні платіж знаходиться в обробці, необхідно повторити запит статусу пізніше
none - статус платежу не визначено, необхідно повторити запит статусу до отримання кінцевого статусу


Нетипові відповіді запит статусу:

  • Якщо платіж не знайдено, прийде відповідь:
{
"error":{
"errorCode":"MERCHANT_ORDERID_NOT_FOUND",
"title":null,
"description":null,
"errorMessage":"MERCHANT_ORDERID_NOT_FOUND",
"fieldErrors":[   ]
}
  • Якщо платіж (сторінка, замовлення) не були відкриті клієнтом або не було спроби оплати, прийде відповідь:
{
"merchantKey": "easypay-test",
"transactionId": 0,
"orderId": "Some orderId2",
"amount": 0,
"paymentState": "pending",
"refundTransactionId": null,
"paymentsList": [],
"error": null
}
  • Якщо отримано помилку на замовлення на етапі визначення реквізитів:
{
  "merchantKey": "easypay-test",
  "transactionId": 0,
  "orderId": "Some orderId",
  "amount": 0,
  "paymentState": "declined",
  "refundTransactionId": null,
  "paymentsList": [],
  "error": {
    "errorCode": "PROVIDER_ACCOUNT_INVALID", (ерор код може (має) відрізнятися від того, що в прикладі)
    "title": "Помилка системи",
    "description": "Акаунт не знайдено",
    "errorMessage": "string"
  }
}


При виконанні запиту статусу на замовлення, у яких є спліт (платіжна опція) - повертається наступна модель:

Request:

headers:

"Content-Type": "application/json"
"PartnerKey": "partnerName"
"locale": "ua"
"AppId": "a5806a5f-dbb8-496a-a23f-aab6d2fcbce1"
"PageId": "2ce7dba6-4600-456e-b9c8-f13cacf1c85d"
"Sign": "e0v1vIOMyNt2qSmrG5+sjAq8wOhvgDDUEyfVP21mRU4="

body
{
   "serviceKey":"easypay-test",
   "orderId":"full_split_11",
   "transactionId":""
}

Response

headers
відсутній

body
{
    "merchantKey": "easypay-test",
    "transactionId": 991379504,
    "orderId": "full_split_11",
    "amount": 3.150000,
    "paymentState": "accepted",
    "refundTransactionId": null,
    "paymentsList": [
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379509,
            "orderId": "full_split_11",
            "amount": 1.030000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379508,
            "orderId": "full_split_11",
            "amount": 0.050000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379507,
            "orderId": "full_split_11",
            "amount": 1.020000,
 "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        },
        {
            "merchantKey": "easypay-test",
            "transactionId": 991379506,
            "orderId": "full_split_11ID",
            "amount": 1.050000,
            "paymentState": "accepted",
            "refundTransactionId": null,
            "date": "2021-09-15T14:07:38+03:00",
            "error": null
        }
    ],
    "error": null
}

Опис параметрів

Параметр Характеристика
paymentsList список платежів у структурі спліту з деталізацією.


У випадку зі сплітованими платежами, в основному тілі відповіді OrderState - параметру transactionId присвоюється внутрішній технічний номер (нефінансової) операції.

"urls": {
   "success": "string",
   "failed": "string"
}