映画館での支払いと注文
映画館のチェックアウト機能を構築し、上映、会場、座席、チケットの配送、飲食、支払いコンテキストを管理する。
チケット、割り当てられた座席、飲食、支払い情報を1つの注文ライフサイクルにまとめる。DEUNAは、チケットの発行と顧客へのサポートに必要なイベントコンテキストを維持しながら、映画館チームが完全な訪問を販売できるようにする。
上映に合わせたチェックアウトイベントの日付、会場、都市、国、上映の識別子を関連付ける。座席とチケットホルダー割り当てられた座席と、デジタルチケットを受け取るメールアドレスを保持する。チケットと飲食入場料と食品アイテムを、アイテムレベルでの価格と税金で組み合わせる。
映画館の注文全体#
イベントの詳細を shipping_options.detailsに保存し、チケットと飲食は、オペレーションと照合に必要な個別の項目として保持する。
完全な注文ペイロード
映画館
上映、会場、指定席、チケット送付、売店商品を 1 つの注文ライフサイクルで扱います。
itemsshipping_options.details.event_dateevent_seatingrecipient_emailリクエスト本文JSON
{
"order_type": "DEUNA_CHECKOUT",
"order": {
"order_id": "cinema-77821",
"store_code": "mx-polanco-12",
"currency": "MXN",
"items_total_amount": 42000,
"sub_total": 42000,
"total_tax_amount": 6720,
"total_amount": 48720,
"items": [
{
"id": "show-20261115-1930-screen-05",
"sku": "ADULT-2D",
"name": "Two adult tickets",
"description": "Evening screening · Screen 5",
"options": "Seats E10 and E11",
"quantity": 2,
"category": "movie_tickets",
"type": "event",
"taxable": true,
"unit_price": {
"amount": 15000,
"currency": "MXN",
"currency_symbol": "$"
},
"total_amount": {
"amount": 30000,
"original_amount": 30000,
"currency": "MXN",
"currency_symbol": "$",
"total_discount": 0
},
"tax_amount": {
"amount": 4800,
"currency": "MXN",
"currency_symbol": "$"
}
},
{
"id": "concession-combo-02",
"sku": "POPCORN-COMBO-L",
"name": "Large popcorn combo",
"quantity": 1,
"category": "concessions",
"taxable": true,
"unit_price": {
"amount": 12000,
"currency": "MXN",
"currency_symbol": "$"
},
"total_amount": {
"amount": 12000,
"original_amount": 12000,
"currency": "MXN",
"currency_symbol": "$",
"total_discount": 0
},
"tax_amount": {
"amount": 1920,
"currency": "MXN",
"currency_symbol": "$"
}
}
],
"shipping_options": {
"type": "pickup",
"method": "digital_ticket",
"requires_shipping": false,
"details": {
"store_id": "mx-polanco-12",
"store_name": "Polanco Cinema",
"address": "Avenida Ejército Nacional 843, Ciudad de México",
"address_coordinates": {
"lat": 19.4391,
"lng": -99.2019
},
"contact": {
"name": "Guest services",
"phone": "+525500000000"
},
"event_date": "2026-11-15T19:30:00-06:00",
"event_seating": "E10, E11",
"event_city": "Ciudad de México",
"event_country_code": "MX",
"recipient_email": "alex@example.com"
}
},
"payer_info": {
"email": "alex@example.com"
},
"expires_at": "2026-11-15T19:15:00-06:00",
"metadata": {
"vertical": "cinema",
"movie_id": "movie-4408",
"format": "2D"
},
"callback_urls": {
"on_success": "https://merchant.example.com/payments/success",
"on_pending": "https://merchant.example.com/payments/pending",
"on_reject": "https://merchant.example.com/payments/rejected",
"on_canceled": "https://merchant.example.com/payments/canceled",
"on_failed": "https://merchant.example.com/payments/failed"
}
}
}ビジネスのコンテキストを定義する#
| 要件 | 注文フィールド |
|---|---|
| 上映 | event_date、上映、映画の識別子 |
| 会場 | store_id, store_name、住所、都市、国、座標 |
| 座席 | event_seating とチケットアイテム options |
| チケットの配送 | recipient_email と支払い者の連絡先 |
| 飲食 | を個別に管理 items[] 、それぞれにSKU、数量、税金、合計を定義 |
生産時のチェックリスト#
- 映画館のショーIDと座席予約を、支払い試行中に安定させる。
- 注文の有効期限を、予約システムの保持期間と一致させる。
- 税金、履行、払い戻し、レポートのニーズのために、チケットと飲食の行を分離する。
- 購入者と参加者が異なる場合に、正しいチケットの受取人を送信する。
- 座席の有効期限、再試行、部分払い戻し、キャンセルされた上映、およびWebhookの遅延シナリオをテストする。
APIと顧客アクションのライフサイクルを実装するために、 支払いワークフローとステータス および Webhooks.