پرداخت
روشهای پرداختی را که هتل برای رزرو آنلاین میپذیرد فهرست میکند و مرحله پرداخت را برای روش انتخابشده آغاز میکند. کارهای لازم برای هر روش در راهنمای جریان پرداخت شرح داده شده است.
/external/online/payment/typeفهرست روشهای پرداختGET/external/payment/companyاطلاعات درگاه پرداختPOST/external/online/payment/type/{paymentType}شروع مرحله پرداختفهرست روشهای پرداخت#
/external/online/payment/typeاحراز هویت: Authorization: Bearer
روشهای پرداختی را که هتل برای فروش آنلاین فعال کرده است برمیگرداند. شناسههای ثابت روشها: 1 پرداخت در هتل، 3 انتقال بانکی، 9 کارت اعتباری (اطلاعات کارت همراه رزرو ارسال میشود)، 10 پرداخت آنلاین (درگاه پرداخت).
پارامترهای کوئری
hotelIDintegerالزامیپاسخ
200 موفق.
curl "https://test.hms.gen.tr/external/online/payment/type?hotelID=1000" \
-H "Authorization: Bearer $HMS_TOKEN"const res = await fetch("https://test.hms.gen.tr/external/online/payment/type?hotelID=1000", {
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`
}
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/online/payment/type?hotelID=1000');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"count": 3,
"items": [
{
"title": "پرداخت در هتل",
"title_translate": "odeme.otelde_odeme",
"typeID": 1
},
{
"title": "انتقال بانکی",
"title_translate": "odeme.havale",
"typeID": 3
},
{
"title": "پرداخت آنلاین با کارت",
"title_translate": "odeme.online_odeme",
"typeID": 10
}
]
}اطلاعات درگاه پرداخت#
/external/payment/companyاحراز هویت: Authorization: Bearer
ارائهدهنده درگاه پرداخت هتل و اطلاعات پذیرنده را برمیگرداند. فقط زمانی لازم است که بخواهید ارائهدهنده را مستقیماً در سمت خودتان یکپارچه کنید؛ جریان استاندارد از POST …/payment/type/10 استفاده میکند. پاسخ حاوی اطلاعات محرمانه است؛ آن را فقط سمت سرور نگه دارید.
پارامترهای کوئری
hotelIDintegerالزامیپاسخ
200 موفق.
پاسخهای خطا
- 200
hotel_company_info_could_not_found— هیچ درگاه پرداختی برای هتل پیکربندی نشده است.
curl "https://test.hms.gen.tr/external/payment/company?hotelID=1000" \
-H "Authorization: Bearer $HMS_TOKEN"const res = await fetch("https://test.hms.gen.tr/external/payment/company?hotelID=1000", {
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`
}
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/payment/company?hotelID=1000');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"paymentCompany": {
"merchant_id": "4000****",
"store_key": "********",
"terminal_no": "VP00****",
"user": "demo_api",
"password": "********",
"max_installment": 6,
"company_id": 3,
"company_code": "iyzico",
"company_name": "iyzico"
}
}شروع مرحله پرداخت#
/external/online/payment/type/{paymentType}احراز هویت: Authorization: Bearer · بدنه: application/json
کاری را که برای روش پرداخت انتخابشده باید انجام شود برمیگرداند. روشهای 1 و 9 فقط به hotelID نیاز دارند؛ روش 3 حسابهای بانکی را فهرست میکند؛ برای روش 10، پرداخت با اطلاعات مهمان و سبد خرید آغاز میشود و code بازگشتی (HTML) در صفحه مهمان رندر میشود تا او به صفحه پرداخت ارائهدهنده منتقل شود.
پارامترهای مسیر
paymentTypeintegerالزامی13910بدنه درخواست
hotelIDintegerالزامیtotalPricedecimalorderIDstringreturnUrlstringname / surname / email / phonestringcity / addressstringcountryIDintegerid از فهرست کشورها.baskets[]object[]id، name، piece، price.پاسخ
200 روش 10: code یک قطعه HTML است که مهمان را به ارائهدهنده پرداخت منتقل میکند (بسته به ارائهدهنده، فرمی با ارسال خودکار، اسکریپت window.location یا فرم پرداخت تعبیهشده). آن را بدون تغییر در مرورگر مهمان رندر کنید. برای روشهای دیگر، فیلد message کار لازم را مشخص میکند.
پاسخهای خطا
- 200
required_input_info_not_submitted(+errors[]) — فیلدی برای روش 10 ارسال نشده است؛country_info_sent_incorrectly—countryIDنامعتبر است؛there_is_missing_info_in_the_shopping_cart— فیلدی در یکی از آیتمهای سبد خرید ناقص است؛bank_info_is_not_found— هیچ حساب بانکی برای روش 3 تعریف نشده است. - 404
paymentTypeناشناخته.
curl -X POST "https://test.hms.gen.tr/external/online/payment/type/10" \
-H "Authorization: Bearer $HMS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"hotelID": 1000,
"totalPrice": 2330,
"orderID": "4811174883",
"returnUrl": "https://booking.example.com/payment/result",
"name": "Ayşe",
"surname": "Demir",
"email": "[email protected]",
"phone": "05551112233",
"city": "Denizli",
"address": "Kumsal Cad. No: 12",
"countryID": 1,
"baskets": [
{
"id": 2,
"name": "اتاق استاندارد · با صبحانه",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "شام",
"piece": 1,
"price": 400
}
]
}'const res = await fetch("https://test.hms.gen.tr/external/online/payment/type/10", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.HMS_TOKEN}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hotelID": 1000,
"totalPrice": 2330,
"orderID": "4811174883",
"returnUrl": "https://booking.example.com/payment/result",
"name": "Ayşe",
"surname": "Demir",
"email": "[email protected]",
"phone": "05551112233",
"city": "Denizli",
"address": "Kumsal Cad. No: 12",
"countryID": 1,
"baskets": [
{
"id": 2,
"name": "اتاق استاندارد · با صبحانه",
"piece": 1,
"price": 1930
},
{
"id": 12,
"name": "شام",
"piece": 1,
"price": 400
}
]
})
});
const data = await res.json();$ch = curl_init('https://test.hms.gen.tr/external/online/payment/type/10');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('HMS_TOKEN'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'hotelID' => 1000,
'totalPrice' => 2330,
'orderID' => '4811174883',
'returnUrl' => 'https://booking.example.com/payment/result',
'name' => 'Ayşe',
'surname' => 'Demir',
'email' => '[email protected]',
'phone' => '05551112233',
'city' => 'Denizli',
'address' => 'Kumsal Cad. No: 12',
'countryID' => 1,
'baskets' => [
[
'id' => 2,
'name' => 'اتاق استاندارد · با صبحانه',
'piece' => 1,
'price' => 1930,
],
[
'id' => 12,
'name' => 'شام',
'piece' => 1,
'price' => 400,
],
],
]),
]);
$data = json_decode(curl_exec($ch), true);{
"success": true,
"message": "payment_order_code",
"code": "<form method=\"post\" action=\"https://vpos.provider.example/3d\"><input type=\"hidden\" name=\"orderId\" value=\"4811174883\"> … </form><script>document.forms[0].submit()</script>"
}{
"success": true,
"message": "payment_by_bank_transfer",
"banks": [
{
"companyName": "بانک زراعت",
"holder": "Demo Turizm A.Ş.",
"branchName": "Denizli",
"branchNumber": "0123",
"bankAccountNumber": "12345678-5001",
"iban": "TR00 0001 0001 2345 6789 5001 01"
}
]
}{
"success": true,
"message": "credit_card_info_should_be_requested"
}