Init
https://{Environment}.payture.com/apim/InitКоманда инициализации одностадийного или двухстадийного платежа. Результатом выполнения запроса является создание платежной сессии и подготовка к перенаправлению Покупателя на страницу платежного шлюза Payture для ввода данных банковской карты.
Запрос
curl https://sandbox3.payture.com/apim/Init \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
--data-urlencode "Data=SessionType=Pay;OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea;Amount=12480;Product=Ticket;Total=124.8;Phone=79156783333;Description=MyTestTransaction;Url=https://payture.com/result?orderid={orderid}&result={success};AdditionalField1=Value1;AdditionalField2=Value2"<?php
$initData = http_build_query([
'SessionType' => 'Pay',
'OrderId' => '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'Amount' => '12480',
'Product' => 'Ticket',
'Total' => '124.8',
'Phone' => '79156783333',
'Description' => 'MyTestTransaction',
'Url' => 'https://payture.com/result?orderid={orderid}&result={success}',
'AdditionalField1' => 'Value1',
'AdditionalField2' => 'Value2',
], '', ';');
$data = http_build_query([
'Key' => 'Merchant',
'Data' => $initData,
]);
$ch = curl_init('https://sandbox3.payture.com/apim/Init');
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 initData = new URLSearchParams({
SessionType: 'Pay',
OrderId: '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
Amount: '12480',
Product: 'Ticket',
Total: '124.8',
Phone: '79156783333',
Description: 'MyTestTransaction',
Url: 'https://payture.com/result?orderid={orderid}&result={success}',
AdditionalField1: 'Value1',
AdditionalField2: 'Value2',
}).toString().replace(/&/g, ';');
const body = new URLSearchParams({
Key: 'Merchant',
Data: initData,
});
const res = await fetch('https://sandbox3.payture.com/apim/Init', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body,
});
console.log(await res.text());import requests
from urllib.parse import urlencode
init_data = urlencode({
'SessionType': 'Pay',
'OrderId': '5f63838d-fb03-00c6-c890-c67cfc1c54ea',
'Amount': '12480',
'Product': 'Ticket',
'Total': '124.8',
'Phone': '79156783333',
'Description': 'MyTestTransaction',
'Url': 'https://payture.com/result?orderid={orderid}&result={success}',
'AdditionalField1': 'Value1',
'AdditionalField2': 'Value2',
}).replace('&', ';')
response = requests.post(
'https://sandbox3.payture.com/apim/Init',
data={
'Key': 'Merchant',
'Data': init_data,
},
)
print(response.text)using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
var initData = string.Join(";", new[]
{
"SessionType=Pay",
"OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea",
"Amount=12480",
"Product=Ticket",
"Total=124.8",
"Phone=79156783333",
"Description=MyTestTransaction",
"Url=https://payture.com/result?orderid={orderid}&result={success}",
"AdditionalField1=Value1",
"AdditionalField2=Value2",
});
var form = new Dictionary<string, string>
{
["Key"] = "Merchant",
["Data"] = initData,
};
using var client = new HttpClient();
var response = await client.PostAsync(
"https://sandbox3.payture.com/apim/Init",
new FormUrlEncodedContent(form));
Console.WriteLine(await response.Content.ReadAsStringAsync());В запросах наименования параметров чувствительны к регистру
| Параметр | Описание | Формат |
|---|---|---|
| Key | Наименование платежного Терминала Предоставляется с параметрами тестового/рабочего доступа | String Mandatory |
| Data | Параметры платежа Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно) | String Mandatory |
Состав параметра Data
Параметры
{success},{orderid}указываются в нижнем регистре.
| Параметр | Описание | Формат |
|---|---|---|
| SessionType | Тип платежа. Определяет количество стадий платежа:Pay — одностадийный платежBlock — двухстадийный платеж | String Mandatory |
| OrderId | Уникальный идентификатор платежа в системе Продавца Рекомендуемый формат: GUID/UUID или Alphanumeric. Другие форматы могут вызвать сбои в работе банковских сервисов. | String [1..50] Mandatory |
| Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Цифры, не содержащие десятичных или других разделителей | Integer Mandatory |
| Url | Адрес возврата Покупателя после совершения платежа на стороне Payture. В адресе возврата дополнительно могут передаваться параметры Success и OrderIdВ общем случае адрес возврата можно настроить для платежного Терминала через службу поддержки Payture и не передавать | String Optional |
| Product | Название оплачиваемой покупки, которое будет выведено Покупателю на странице оплаты | String [1..50] Optional |
| Total | Сумма заказа, которая будет выведена Покупателю на странице оплаты Используйте это поле, если хотите изменить формат суммы по умолчанию | String [1..50] Optional |
| TemplateTag | Название используемого шаблона страницы оплаты Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default». См. подробнее о шаблонах страниц оплаты | String [1..50] Optional |
| Language | Язык шаблона страницы оплаты Необходимо передавать, если для шаблона используется несколько языков. Если параметр не передан, используется язык шаблона «Default». См. подробнее о шаблонах страниц оплаты | String [1..50] Optional |
| Phone | Номер телефона Покупателя Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента] | String Optional |
| Description | Дополнительное описание платежа | String Optional |
| IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
| Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
| Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно | — Optional |
Пример параметра Data (decoded):
SessionType=Pay;
OrderId=5f63838d-fb03-00c6-c890-c67cfc1c54ea;
Amount=12480;
Total=124.8;
Product=Ticket;
Phone=79156783333;
Description=MyTestTransaction;
Url=https://payture.com/result?orderid={orderid}&result={success};
AdditionalField1=Value1;
AdditionalField2=Value2Пример параметра Url (адрес возврата):
https://server.com/result?orderid={orderid}&result={success}Ответ
XML строка с элементом Init
Примеры ответов
<Init Success="True" OrderId="5f63838d-fb03-00c6-c890-c67cfc1c54ea" Amount="12480" SessionLifeTime="60" AttemptsCount="5" SessionId="c8cc6c5c-30da-d7e1-e090-46f25ae30626"/>| Параметр | Описание | Формат |
|---|---|---|
| Success | Признак успешности операции. Принимает значения:True — операция успешнаFalse — операция неуспешна | String Mandatory |
| OrderId | Идентификатор платежа в системе Продавца Соответствует переданному в запросе | String [1..50] Mandatory |
| Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Передается, если «Success=True». Соответствует переданному в запросе | Integer Optional |
| SessionLifeTime | Срок жизни платежной сессии с момента получения в ответе Init (в минутах) Передается, если «Success=True». По умолчанию 60 минут. Значение может быть изменено через службу поддержки Payture | Integer Optional |
| AttemptsCount | Количество попыток оплаты, которое будет у Покупателя на странице оплаты в рамках текущей сессии Передается, если «Success=True». По умолчанию 5 попыток. Количество может быть изменено через службу поддержки Payture | Integer Optional |
| SessionId | Идентификатор платежной сессии в системе Payture Передается, если «Success=True» | String [36] Optional |
| ErrCode | Код ошибки. См. коды ошибок Передается, если «Success=False» | String Optional |
