Skip to content

Плащания чрез агент

Можете да търсите хотел, да изберете стая и да завършите резервацията си чрез вашия AI агент. Свържете го с Wink и портфейл за плащане, след което му кажете къде искате да отседнете. Wink използва Machine Payments Protocol (MPP), за да приеме плащането от портфейла и да върне потвърждението на резервацията ви.

1. Свържете MCP сървърите

Section titled “1. Свържете MCP сървърите”

За пълния процес на резервация вашият агент се нуждае от Wink Booking Engine и портфейл за плащане.

ВръзкаКакво правиКак да я добавите
Wink Booking Engine — задължителноНамира дестинации, търси хотели и цени на стаи, издава оферти и потвърждава резервации, и извлича вашите резервации и разписки.Добавете https://api.wink.travel/mcp/booking-engine като отдалечен HTTP MCP сървър.
Портфейл за плащане — задължително за плащанеОсигурява платежни данни след одобрение на покупката.Свържете портфейл, който поддържа Stripe Shared Payment Tokens. Вижте примера с Link по-долу.
Wink Reference — по изборТърси държави, валути и други справочни данни.https://api.wink.travel/mcp/reference
Wink Docs — по изборПомага на вашия агент да чете документация и API договори.https://docs.mcp.wink.travel/mcp

Booking Engine MCP вече включва необходимите инструменти за процеса на резервация на пътника, когато агентското резервиране и плащане са активирани за тази среда. Отделният Payment MCP на Wink е за финансови операции като счетоводни книги и тегления; той не е необходим за плащане на стая.

Влезте и изберете разрешения

Section titled “Влезте и изберете разрешения”
  1. Отворете настройките на MCP или конектора на вашия агент и добавете горния URL на Booking Engine. Дайте му име, например Wink Booking.
  2. Вашият агент отваря страницата за вход в Wink в браузъра ви. Влезте с Wink акаунта, под който искате да правите резервации.
  3. На екрана за съгласие изберете разрешенията, от които вашият агент се нуждае, след което одобрете връзката.
  4. Върнете се при вашия агент. Той зарежда наличните инструменти и управлява удостоверяването за следващите MCP повиквания.

За този процес изберете:

РазрешениеЗащо е необходимо
Достъп на AI агент (mcp.read)Позволява на вашия агент да се свърже с Wink MCP.
Четене на маркетинг (marketing.read)Позволява на агента да намери конфигурацията за резервации на вашия акаунт, наречена персонализация. Вашият акаунт също трябва да има достъп до тази конфигурация.
Запис на плащане (payment.write)Позволява на агента да плати офертата и да потвърди резервацията.

Запазете разрешенията за вход, поискани от връзката. Вашият MCP клиент управлява достъпните токени; не е нужно да копирате токен в чата или да задавате заглавки на заявки. Ако сте пропуснали необходимо разрешение, свържете се отново чрез процеса на вход на клиента и го одобрете.

Свържете портфейл за плащане

Section titled “Свържете портфейл за плащане”

За плащания чрез Stripe, една опция е портфейлът на агента на Link. Ако вашият клиент поддържа локални MCP сървъри и Node.js е инсталиран, добавете тази конфигурация в MCP настройките му:

{
"mcpServers": {
"link": {
"command": "npx",
"args": ["@stripe/link-cli", "--mcp"]
}
}
}

Помолете вашия агент да свърже вашия Link акаунт, след това следвайте предоставения от него линк за верификация и одобрете връзката. Link осигурява Shared Payment Token, използван за плащане на резервацията. Link в момента поддържа акаунти в САЩ; проверете лимитите за разходи преди резервация. Вижте ръководството за настройка на Link и MCP конфигурацията.

Ако вашият агент вече има свързан съвместим портфейл, използвайте тази връзка. Настройката на портфейла и одобрението на плащането са отделни от влизането в Wink.

2. Помолете агента да намери стая

Section titled “2. Помолете агента да намери стая”

Например:

Намери стая в Банкок за двама възрастни от 15 до 17 януари 2027 г. Покажи ми наличните опции, общата цена и условията за анулация, преди да избера.

Вашият агент може да намери достъпните Wink акаунти и техните конфигурации за резервации. Ако имате няколко, кажете му кой да използва. Ако резервирате чрез предоставен линк за резервация или конфигурация, дайте това на агента вместо това.

Агентът след това определя дестинацията ви, проверява наличните хотели и зарежда цените на стаите за вашите дати. Изберете стая и поискайте оферта.

Този процес на плащане в момента поддържа една стая, ценена в USD, само за възрастни. Офертата има срок на валидност. Искането на оферта не ви таксува и не потвърждава резервация.

3. Прегледайте и одобрете плащането

Section titled “3. Прегледайте и одобрете плащането”

Проверете хотела, стаята, датите, гостите, условията за анулация и общата офертирана сума. Когато сте готови, помолете агента да резервира и да завърши всяко одобрение, поискано от вашия портфейл.

Портфейлът предоставя Stripe Shared Payment Token за плащане на офертата.

Плащания с Tempo stablecoin скоро ще бъдат налични.

След успешното плащане вашият агент ви дава код за потвърждение на резервацията. Той може също да извлече детайлите на резервацията и разписката чрез Booking Engine MCP.

Ако плащането все още се обработва или отговорът е изгубен, нека агентът провери същия опит за плащане. Той трябва да използва отново офертата и платежните данни, вместо да започва второ плащане. Ако плащането е отказано, поискайте нова оферта и я прегледайте преди да опитате отново.

Референция на инструментите за агенти и разработчици

Section titled “Референция на инструментите за агенти и разработчици”

Всички инструменти на Wink по-долу са достъпни чрез Booking Engine MCP. MCP клиентът изпраща удостоверяване автоматично, използвайки разрешенията, одобрени при влизане.

СтъпкаИнструменти и поведение
Избор на контекст за резервацияmanaging_entity_list, след това customization_get_primary или customization_search за избрания акаунт. Използвайте предоставена персонализация, ако вече е известна.
Намиране на дестинацияdestination_lookup_search_suggestions и destination_lookup_get.
Търсене на хотели и стаиinventory_search_city или inventory_search_geo, след това property_inventory_get за цени и наличност.
Офериране на избраната стаяagentic_booking_quote. Подайте детайлите на стаята в аргумента request.
Плащане и потвърждениеПолучете Shared Payment Token от свързания портфейл, след това извикайте agentic_booking_pay с request.quoteId и request.spt. Използвайте същия влязъл Wink потребител за офертата и плащането.
Извличане на резервацията и разпискатаИзползвайте booking_search или booking_search_list, за да намерите потвърдената резервация, след това booking_get и booking_receipt_get с идентификатора на резервацията.

Заявката за оферта изисква hotelIdentifier, roomRateIdentifier, checkIn, checkOut, adults, children и customizationIdentifier. Датите са във формат YYYY-MM-DD; checkOut трябва да е след checkIn. Задайте adults поне на 1 и children на 0.

Офертата връща quoteId, amountUsdCents, currency, expiresAt и mppChallenges. Показвайте центовете в USD като долари: 10000 означава $100.00.

Резултат от плащанеСледваща стъпка
PAYMENT_SUCCEEDEDЗапазете bookingConfirmationCode и chargeReference.
IN_PROGRESSИзчакайте кратко и опитайте отново със същата оферта и данни.
DECLINEDПоискайте нова оферта и я прегледайте преди нов опит за плащане.

Успешното повторение връща съществуващата резервация без повторно таксуване. Третирайте изтичане на време като неизвестен резултат и опитайте отново същото плащане. Ако остава неразрешено, свържете се с поддръжката с ID на офертата.

MCP клиенти с поддръжка на плащания

Section titled “MCP клиенти с поддръжка на плащания”

MCP клиентите с поддръжка на плащания могат да използват agentic_booking_book с полетата на стаята директно в arguments. Първото повикване връща грешка -32042 с платежни предизвикателства. Опитайте отново със същото повикване, като подадете данните на портфейла в params._meta["org.paymentauth/credential"]; успехът включва result._meta["org.paymentauth/receipt"]. Грешка -32043 съдържа неуспешно плащане и предизвикателство: окончателно отказване изисква нова оферта, докато непълният платежен пакет може да опита отново със същото предизвикателство. За -32603, data.failure.reason със стойности payment-in-progress или already-consumed означава опит за повторение със същите данни; самият код на грешката не е достатъчен.

Използвайте REST при изграждане на интеграция, която извиква Wink директно през HTTP. И офертата, и плащането използват POST https://api.wink.travel/api/mpp/booking.

Вашето приложение се нуждае от Wink потребителски достъп токен с разрешение payment.write за плащане. Използвайте същия потребител и за двете повиквания. Изпратете токена в Wink-Authorization, като оставите Authorization свободен за платежните данни на портфейла. Тези заглавки важат за REST; MCP клиентът управлява собственото си удостоверяване.

Запазете избраната стая като booking.json, като замените примерните идентификатори и дати с вашия избор. Полетата на стаята отиват директно в JSON тялото, без обвивка request.

{
"hotelIdentifier": "YOUR_HOTEL_ID",
"roomRateIdentifier": "YOUR_ROOM_RATE_ID",
"checkIn": "2027-01-15",
"checkOut": "2027-01-17",
"adults": 2,
"children": 0,
"customizationIdentifier": "YOUR_CUSTOMIZATION_ID"
}

Задайте WINK_ACCESS_TOKEN на достъпния токен на потребителя и изпратете заявката:

Terminal window
curl -i https://api.wink.travel/api/mpp/booking \
-H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @booking.json

Wink връща 402 Payment Required с WWW-Authenticate: Payment ... предизвикателство за всеки предложен метод. JSON тялото включва quoteId, amount, currency, expiresAt и methods. Тук amount е низ в центове USD: "10000" означава $100.00. Прегледайте офертата преди изтичането ѝ; все още не е направено плащане.

Нека портфейлът изпълни върнатото Stripe предизвикателство, като предостави Shared Payment Token в payload.spt. Използвайте платежните данни от това предизвикателство.

Задайте MPP_CREDENTIAL на кодираните MPP данни на портфейла, които съдържат предизвикателството и платежния пакет. Опитайте отново със същото тяло на заявката, като запазите заглавката за идентичност:

Terminal window
curl -i https://api.wink.travel/api/mpp/booking \
-H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \
-H "Authorization: Payment $MPP_CREDENTIAL" \
-H 'Content-Type: application/json' \
--data-binary @booking.json

При успех Wink връща 200 OK, JSON тяло с bookingConfirmationCode и заглавка Payment-Receipt. Запазете потвърждението и разписката. Успешното повторение връща съществуващата резервация без повторно таксуване.

Обработка на отговори и повторни опити

Section titled “Обработка на отговори и повторни опити”
ОтговорКакво да направите
400Коригирайте невалидни данни за стаята или неправилно форматирани данни за удостоверяване.
401 / 403Проверете удостоверяването на потребителя и разрешението за плащане.
402Прегледайте върнатия проблем и предизвикателство. Окончателен отказ на плащане изисква нова оферта; непълен платежен пакет използва оригиналното предизвикателство. Прегледайте цената преди плащане.
409Резултатът от плащането е неразрешен. Изчакайте кратко, след което опитайте отново със същото тяло и данни на крайна точка за резервация.
429Изчакайте посочените секунди в Retry-After, след което опитайте отново.

Отговор 409 има тяло с application/problem+json. Съпоставете type с тези точни URL адреси:

Тип проблемЗначение
https://api.wink.travel/problems/payment-in-progressОпит за плащане все още се изпълнява или уреждането не може да бъде потвърдено.
https://api.wink.travel/problems/already-consumedПредизвикателството или доказателството за плащане вече е използвано от възможно успешен опит. Това само по себе си не потвърждава резервацията.

И двете означават опитайте отново същото плащане; не плащайте нова оферта. URL адресите идентифицират и документират проблема; те не са крайни точки за плащане или опитване. Опитайте POST /api/mpp/booking отново и използвайте type на проблема, а не свободния текст detail, за да решите какво да направите. Вижте референцията за типове проблеми за всички проблеми с плащанията на Wink.

Изтичане на време, изгубен отговор или сървърна грешка след изпращане на плащане също може да остави резултата неизвестен. Опитайте отново същата заявка за плащане. Ако резултатът остане неразрешен, свържете се с поддръжката с ID на офертата преди да започнете друго плащане.