Pay
https://{Environment}.payture.com/api/PayКоманда Pay используется для выполнения платежа по одностадийной схеме.
Результатом обработки запроса является списание денежных средств с карты Покупателя. Списанные средства могут быть полностью или частично возвращены на карту Покупателя при помощи команды Refund.
Запрос
curl https://sandbox3.payture.com/api/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12480 \
-d OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea \
--data-urlencode "PayInfo=PAN=4111111111100031;EMonth=12;EYear=22;CardHolder=Ivan Ivanov;SecureCode=123;OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea;Amount=12480" \
--data-urlencode "CustomFields=IP=241.22.197.12;Product=Ticket"<?php
$payInfo = http_build_query([
'PAN' => '4111111111100031',
'EMonth' => '12',
'EYear' => '22',
'CardHolder' => 'Ivan Ivanov',
'SecureCode' => '123',
'OrderId' => '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'Amount' => '12480',
], '', ';');
$customFields = http_build_query([
'IP' => '241.22.197.12',
'Product' => 'Ticket',
], '', ';');
$data = http_build_query([
'Key' => 'Merchant',
'Amount' => '12480',
'OrderId' => '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'PayInfo' => $payInfo,
'CustomFields' => $customFields,
]);
$ch = curl_init('https://sandbox3.payture.com/api/Pay');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;const payInfo = new URLSearchParams({
PAN: '4111111111100031',
EMonth: '12',
EYear: '22',
CardHolder: 'Ivan Ivanov',
SecureCode: '123',
OrderId: '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
Amount: '12480',
}).toString().replace(/&/g, ';');
const customFields = new URLSearchParams({
IP: '241.22.197.12',
Product: 'Ticket',
}).toString().replace(/&/g, ';');
const body = new URLSearchParams({
Key: 'Merchant',
Amount: '12480',
OrderId: '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
PayInfo: payInfo,
CustomFields: customFields,
});
const res = await fetch('https://sandbox3.payture.com/api/Pay', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body,
});
console.log(await res.text());import requests
from urllib.parse import urlencode
pay_info = urlencode({
'PAN': '4111111111100031',
'EMonth': '12',
'EYear': '22',
'CardHolder': 'Ivan Ivanov',
'SecureCode': '123',
'OrderId': '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'Amount': '12480',
}).replace('&', ';')
custom_fields = urlencode({
'IP': '241.22.197.12',
'Product': 'Ticket',
}).replace('&', ';')
response = requests.post(
'https://sandbox3.payture.com/api/Pay',
data={
'Key': 'Merchant',
'Amount': '12480',
'OrderId': '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'PayInfo': pay_info,
'CustomFields': custom_fields,
},
)
print(response.text)using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
var payInfo = string.Join(";", new[]
{
"PAN=4111111111100031",
"EMonth=12",
"EYear=22",
"CardHolder=Ivan Ivanov",
"SecureCode=123",
"OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea",
"Amount=12480",
});
var customFields = string.Join(";", new[]
{
"IP=241.22.197.12",
"Product=Ticket",
});
var form = new Dictionary<string, string>
{
["Key"] = "Merchant",
["Amount"] = "12480",
["OrderId"] = "5f63838d-fb03-00c6-c890-c67cfc1c54ea",
["PayInfo"] = payInfo,
["CustomFields"] = customFields,
};
using var client = new HttpClient();
var response = await client.PostAsync(
"https://sandbox3.payture.com/api/Pay",
new FormUrlEncodedContent(form));
Console.WriteLine(await response.Content.ReadAsStringAsync());В запросах наименования параметров чувствительны к регистру
| Параметр | Описание | Формат |
|---|---|---|
| Key | Наименование платежного Терминала Предоставляется с параметрами тестового/рабочего доступа | String Mandatory |
| OrderId | Уникальный идентификатор платежа в системе Продавца Рекомендуемый формат: GUID/UUID или Alphanumeric. Другие форматы могут вызвать сбои в работе банковских сервисов. | String [1..50] Mandatory |
| Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Цифры, не содержащие десятичных или других разделителей | Integer Mandatory |
| PayInfo | Параметры для совершения транзакции Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно) | String Mandatory |
| CustomFields | Дополнительные поля транзакции Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно) | String Optional |
| Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Состав параметра PayInfo
Внимание! Параметры OrderId и Amount передаются дважды в одном запросе: в основных параметрах запроса и в параметре PayInfo.
| Параметр | Описание | Формат |
|---|---|---|
| PAN | Номер карты Цифры без пробелов | String [13..19] Mandatory |
| EMonth | Месяц истечения срока действия карты 2 цифры | Integer Mandatory |
| EYear | Год истечения срока действия карты Последние 2 цифры года | Integer Mandatory |
| OrderId | Уникальный идентификатор платежа в системе Продавца Рекомендуемый формат: GUID/UUID или Alphanumeric. Другие форматы могут вызвать сбои в работе банковских сервисов. | String [1..50] Mandatory |
| Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Цифры, не содержащие десятичных или других разделителей | Integer Mandatory |
| SecureCode | CVC2/CVV2 код 3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала | Integer Optional |
| CardHolder | Фамилия и имя держателя карты Только латинские буквы и пробел | String [1..30] Optional |
Пример параметра PayInfo (decoded):
PAN=4111111111100031;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea;
Amount=12480Пример возможных ключей параметра CustomFields
| Параметр | Описание | Формат |
|---|---|---|
| IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
| Description | Дополнительное описание платежа | String Optional |
Пример параметра CustomFields (decoded):
IP=241.22.197.12;
Description=MyTestTransactionОтвет
XML строка с элементом Pay
Примеры ответов
<Pay OrderId="5f63838d-fb03-00c6-c890-c67cfc1c54ea" Key="Merchant" Success="True" Amount="12480"/>| Параметр | Описание | Формат |
|---|---|---|
| Success | Признак успешности операции. Принимает значения:True — операция успешнаFalse — операция неуспешна3DS — необходима аутентификация 3‑D Secure | String Mandatory |
| OrderId | Идентификатор платежа в системе Продавца Соответствует переданному в запросе | String [1..50] Mandatory |
| Key | Наименование платежного Терминала Соответствует переданному в запросе | String Mandatory |
| Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе | Integer Optional |
| ACSUrl | Адрес сервера аутентификации 3-D Secure Передается, если «Success=3DS» | String Optional |
| PaReq | Запрос на аутентификацию 3-D Secure Передается, если «Success=3DS» | String Optional |
| ThreeDSKey | Уникальный идентификатор транзакции (MD) Передается, если «Success=3DS» | String Optional |
| ThreeDSVersion | Версия протокола 3-D Secure: 1.0 — первая версия 2.1 — вторая версия Передается, если «Success=3DS» | String Optional |
| FinalTerminal | Конечный Терминал, на котором был выполнен платеж Передается, если было перенаправление на другой Терминал | String Optional |
| AddInfo | Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture Описание формата и возможных параметров доступно здесь | Object Optional |
| ErrCode | Код ошибки. См. коды ошибок Передается, если «Success=False» | String Optional |
Payture API
Программный интерфейс Payture API является производительным и удобным решением для автоматизированного выполнения операций электронной коммерции. Платежный шлюз Payture гарантирует высокую надежность и защищенность…
Pay3DS
Команда Pay3DS предназначена для завершения списания средств с платежной карты, защищенной 3-D Secure. Выполняется после запроса Pay и получения результатов 3‑D Secure аутентификации от банка-эмитента.
