Управление продуктами и ссылками через API
Создание продукта
Запрос
Для создания продукта отправьте POST
запрос на https://api.ecomcharge.com/products
со следующими параметрами:
Параметр | Тип | Описание |
---|---|---|
name * обязательный |
string | Название продукта. |
description * обязательный |
string | Описание продукта. |
currency * обязательный |
string | Валюта транзакции в формате ISO-4217 alpha-3 code. Например, USD . |
amount * обязательный |
integer | Стоимость продукта в минимальных единицах. |
quantity | string | Количество продуктов в наличии. Параметр не передается, если infinite установлен в true |
infinite | boolean | Устанавливается true , если кол-во продуктов неограниченно. Например, если это виртуальный продукт. |
visible_fields | array | Массив, который может содержать значения first_name , last_name , country , state , city , address , zip , phone , birth_date , email , taxpayer_id . Поля, указанные в массиве, отобразятся на странице платежа и будут обязательны для заполнения. |
test | boolean | Если true , продукт будет тестовым. Иначе, false . |
immortal | boolean | true , если время оплаты не ограничено. |
expired_at | string | Дата и время, до которого может быть оплачен продукт. Формат: ISO 8601 вида YYYY-MM-DDThh:mm:ssTZD, где YYYY – год (например, 2019), MM – месяц (например, 02), DD – день (например, 09), hh – часы (например, 18), mm – минуты (например, 20), ss – секунды (например, 45), TZD – временная зона (+hh:mm или –hh:mm) |
return_url | string | URL, на который будет перенаправлен клиент после завершения оплаты. Если параметр не определен, клиент будет перенаправлен на URL магазина, зарегистрированного с eComCharge. |
shop_id | string | Идентификатор магазина. |
language * обязательный |
string | Язык страницы оплаты. По умолчанию - en . Доступные значения параметра language . |
transaction_type | string | Тип транзакции. По умолчанию - payment . Допустимые значения: payment - одновременное сочетание авторизации и списания средств authorization - проверка банковской карты и резервирование суммы платежа. |
Пример запроса для неограниченного количества продуктов и без ограничения времени оплаты
curl https://api.ecomcharge.com/products \
-X POST -u {Your shop id}:{Your shop secret key} \
-H "Content-Type: application/json" \
-d \
'{
"name": "product",
"description": "description",
"currency": "USD",
"amount": "990",
"infinite": true,
"test": false,
"immortal": true,
"return_url": "http://return-url.com",
"shop_id": "1",
"language": "en",
"transaction_type": "payment"
}'
Пример запроса для ограниченного количества продуктов и при ограничении времени оплаты
curl https://api.ecomcharge.com/products \
-X POST -u {Your shop id}:{Your shop secret key} \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d \
'{
"name": "product",
"description": "description of product",
"currency": "USD",
"amount": "990",
"quantity": "10",
"infinite": false,
"test": false,
"immortal": false,
"expired_at": "2023-12-31",
"return_url": "http://return-url.com",
"shop_id": "1",
"language": "en",
"transaction_type": "payment"
}`
Ответ
В ответ на запрос создания продукта система eComCharge вернет код состояния HTTP 201
и соответствующие данные нового продукта с платежными ссылками.
При передаче неверных параметров eComCharge вернет код состояния HTTP 422
и сообщение об ошибке.
Пример ответа при создании продукта, HTTP код 201
{
"id": "prd_ed27b047d3ccd1a6",
"name": "product",
"description": "description of product",
"currency": "USD",
"amount": 990,
"quantity": 10,
"infinite": false,
"language": "en",
"transaction_type": "payment",
"created_at": "2022-12-20T18:54:42.033Z",
"updated_at": "2022-12-20T18:54:42.033Z",
"test": false,
"additional_data": {},
"pay_url": "https://api.ecomcharge.com/products/prd_ed27b047d3ccd1a6/pay",
"payment_url": "https://api.ecomcharge.com/products/prd_ed27b047d3ccd1a6/pay",
"confirm_url": "https://checkout.ecomcharge.com/v2/confirm_order/prd_ed27b047d3ccd1a6/1"
}
Пример ответа на запрос с недопустимыми параметрами, HTTP код 422
{
"message": "Currency is not in ISO 4217 Alpha-3 format. Currency is unknown ISO 4217 Alpha-3 code",
"errors": {
"currency": [
"is not in ISO 4217 Alpha-3 format",
"is unknown ISO 4217 Alpha-3 code"
]
}
}
Получение ссылки на оплату и параметров ранее созданного продукта
Запрос
Для получения параметров продукта направьте клиента через GET
запрос на https://api.ecomcharge.com/products/{product_id}
, где {product_id}
- значение id
, полученное в ответе на запрос создания продукта.
Пример запроса на получение информации о продукте с ID prd_ed27b047d3ccd1a6
curl -u shop_id:secret \
https://api.ecomcharge.com/products/prd_ed27b047d3ccd1a6
Ответ
Если продукт с id
, указанным в запросе, существует, eComCharge вернет 200
код состояния с телом ответа.
При передаче неверных параметров eComCharge вернет 302
код состояния с телом ответа с сообщением об ошибке.
Пример ответа с информацией о продукте, HTTP код 200
{
"id": "prd_ed27b047d3ccd1a6",
"name": "product",
"description": "description of product",
"currency": "USD",
"amount": 990,
"quantity": 10,
"infinite": false,
"language": "en",
"transaction_type": "payment",
"created_at": "2022-12-20T18:54:42.033Z",
"updated_at": "2022-12-20T18:54:42.033Z",
"test": false,
"additional_data": {},
"pay_url": "https://api.ecomcharge.com/products/prd_ed27b047d3ccd1a6/pay",
"payment_url": "https://api.ecomcharge.com/products/prd_ed27b047d3ccd1a6/pay",
"confirm_url": "https://checkout.ecomcharge.com/v2/confirm_order/prd_ed27b047d3ccd1a6/1"
}
Получение параметров всех продуктов
Запрос
Для получение информации о всех продуктах отправьте GET
запрос на https://api.ecomcharge.com/products
.
Пример запроса
curl -u {Your shop id}:{Your shop secret key} \
https://api.ecomcharge.com/products
Ответ
Если права доступа верны, eComCharge вернет 200
код состояния HTTP и продукты.
Пример ответа
[
{
"id": "prd_4e3933e63c7490fc",
"name": "product",
"description": "description of product",
"amount": 100,
"currency": "USD",
"language": "en",
"infinite": true,
"quantity": 0,
"transaction_type": "payment",
"created_at": "2023-05-02T17:35:14.950Z",
"updated_at": "2023-05-02T17:35:14.950Z",
"additional_data": {},
"test": false,
"pay_url": "https://api.ecomcharge.com/products/prd_4e3933e63c7490fc/pay",
"payment_url": "https://api.ecomcharge.com/products/prd_4e3933e63c7490fc/pay",
"confirm_url": "https://checkout.ecomcharge.com/v2/confirm_order/prd_4e3933e63c7490fc/1"
},
{
"id": "prd_1567bece456ac4aa",
"name": "product 2",
"description": "description of product 2",
"amount": 990,
"currency": "EUR",
"language": "it",
"infinite": false,
"quantity": 7,
"transaction_type": "payment",
"created_at": "2023-02-15T11:54:59.579Z",
"updated_at": "2023-02-15T11:54:59.579Z",
"additional_data": {},
"test": false,
"pay_url": "https://api.ecomcharge.com/products/prd_1567bece456ac4aa/pay",
"payment_url": "https://api.ecomcharge.com/products/prd_1567bece456ac4aa/pay",
"confirm_url": "https://checkout.ecomcharge.com/v2/confirm_order/prd_1567bece456ac4aa/1"
},
{
"id": "prd_3c97b6f1bba28db7",
"name": "test product",
"description": "description of test product",
"amount": 100,
"currency": "USD",
"language": "en",
"infinite": true,
"quantity": null,
"transaction_type": "authorization",
"created_at": "2020-01-21T10:46:20.232Z",
"updated_at": "2020-02-17T16:53:43.770Z",
"additional_data": {},
"test": true,
"pay_url": "https://api.ecomcharge.com/products/prd_3c97b6f1bba28db7/pay",
"payment_url": "https://api.ecomcharge.com/products/prd_3c97b6f1bba28db7/pay",
"confirm_url": "https://checkout.ecomcharge.com/v2/confirm_order/prd_3c97b6f1bba28db7/1"
}
]
Обновление продукта
Запрос
Для обновления продукта отправьте PUT
запрос на https://api.ecomcharge.com/products/{product_id}
, где {product_id}
- это идентификатор продукта, параметр id
из ответа на запрос создания продукта.
Параметры запроса идентичны параметрам запроса на создание продукта.
Пример запроса на обновления стоимости продукта с ID prd_1567bece456ac4aa
и кол-ва таких продуктов
curl https://api.ecomcharge.com/products/prd_1567bece456ac4aa \
-X PUT -u {Your shop id}:{Your shop secret key} \
-H "Content-Type: application/json" \
-d \
'
{
"amount": 950,
"infinite": false,
"quantity": "5"
}
Ответ
Если продукт с таким ID существует и права доступа верны, eComCharge вернет 204
код состояния HTTP и пустое тело ответа.