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
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
ChequeИнформация о чеке в формате JSON, закодированная в Base64String
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