Verschiedene Zahlungsarten festlegen

Die Actions Center-Plattform unterstützt eine Vielzahl von Konfigurationen für das Entgegennehmen von Zahlungen. Die Im Zahlungsleitfaden für Google Play werden die Aspekte der Integration behandelt, die sind bei allen Zahlungsintegrationen gleich, darunter:

  1. Feeds mit Informationen zu tokenization_parameter konfigurieren
  2. Der Buchungsserver wird aktualisiert, um payment_method_token zu akzeptieren Objekte
  3. Eine Übersicht über die Informationen, die zwischen einem Nutzer, dem Actions Center, den Partner / Händler und den Zahlungsabwickler.

In diesem Leitfaden erfahren Sie, wie Sie Konfigurieren Sie Ihre Feeds, um anzugeben, welche der verschiedenen Arten von Zahlungskonfigurationen gelten für Ihre Händler und Dienstleistungen.

  1. Keine Zahlung / Bezahlung bei Ankunft
  2. Vollständige Vorauszahlung
  3. Gebühr bei Nichterscheinen / Stornogebühr
  4. Zahlung

Alle Anwendungsfälle für Zahlungen sind Erweiterungen der Option „Keine Zahlungen“. / Pay-on-arrival-Anwendungsfall (der keine Zahlungskonfiguration erfordert), sodass dies beginnen Sie mit der Beschreibung dieser Konfiguration und behandeln andere Konfigurationen als Erweiterungen.

In jedem Abschnitt werden auch die Felder behandelt, die im Buchungsserver, um die jeweilige Zahlung zu akzeptieren. Konfiguration.

Keine Zahlung / Bezahlung bei Ankunft

Bei Dienstleistungen, für die zum Zeitpunkt der Buchung keine Zahlung erforderlich ist, Beim Händler oder Dienst ist keine Zahlungskonfiguration erforderlich Preise sind jedoch weiterhin erforderlich.

Dies ist die Basiskonfiguration für einen Dienst, die ein Name, Beschreibung und Preis. Dies wäre eine einzelne Servicenachricht innerhalb eines ServiceFeed:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    }
}

Es ist keine zusätzliche Konfiguration über die Standardimplementierung hinaus erforderlich im Buchungsserver, um die Zahlung bei Ankunft zu unterstützen.

Vorauszahlung

Mit dieser Konfiguration wird angegeben, dass die Menge für den Dienst muss zum Zeitpunkt der Buchung in voller Höhe bezahlt werden.

Die Vorauszahlung wird auf Service-Ebene über das Feld prepayment_type des Service Um Zahlungen für einen Dienst zu verlangen, sollte auf REQUIRED festgelegt sein, wie im folgenden Beispiel gezeigt. Beachten Sie, dass wird der Preis auf die gleiche Weise wie im Beispiel für die Zahlung bei Ankunft angegeben. Hier Da wir die Vorauszahlungsart auf erforderlich setzen, wird eine Kreditkarte und dieser Preis wird an der Kasse berechnet.

<ph type="x-smartling-placeholder">

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "prepayment_type": "REQUIRED"
}

Buchungsserver

Wenn Sie Vorauszahlungen akzeptieren, wird ein Zahlungstoken an Ihre Buchung übergeben beim Aufruf von CreateBooking über das Feld payment_processing_parameters.unparsed_payment_method_token Sie müssen genau den Betrag in Rechnung stellen, der in den Preisfeld in den Feeds und müssen die Währung verwenden, die in den Feeds angegeben sind. Für diese Belastung gelten die beschriebenen Schritte. in der Zahlungsleitfaden aktivieren

Bei der Rückgabe eines CreateBookingResponse muss das Feld booking.payment_information ordnungsgemäß auf dass eine Vorauszahlung geleistet und verarbeitet wurde.

Die Die Spezifikation PaymentInformation enthält vollständige Dokumentation für alle Zahlungsinformationen. Ein minimales Beispiel für zur Verarbeitung der Vorauszahlung ist unten angegeben. Es ist wichtig, dass der Preis die im Preisfeld zurückgegeben werden, genau mit der Angabe im Wenn in den Feeds/der Anfrage ein Steuersatz angegeben ist, muss genau angegeben werden.

Außerdem musst du eine Transaktions-ID angeben. Diese Transaktions-ID Sie muss unter den Transaktionen mit diesem Händler mindestens einmalig sein. A Ein guter Kandidat für eine Transaktions-ID ist die Transaktions-ID, die die Sie vom Zahlungsabwickler erhalten.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
}

Gebühr bei Nichterscheinen

Bei Nichterscheinen können Gebühren für Nutzer anfallen, wenn diese nicht am oder bei einer Stornierung nach dem Kündigungsfrist. Wenn keine Stornierungsfrist angegeben ist, die Startzeit des Slots standardmäßig.

Wenn Sie eine Gebühr bei Nichterscheinen angeben möchten, müssen Sie im Servicefeed den Wert no_show_fee wie im Beispiel unten gezeigt:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 14400,
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

Im obigen Beispiel ist der Partner oder Händler berechtigt, eine feste Gebühr von 25 $, wie in den Feld no_show_fee.fee.price_micros, wenn der Termininhaber nimmt nicht am Termin teil. Diese Gebühr kann auch erhoben werden, wenn der Nutzer wird innerhalb der 4 Stunden (14.400 Sekunden) vor dem Termin abgesagt, da angegeben in scheduling_rules.min_advance_online_canceling ein.

<ph type="x-smartling-placeholder">

Informationen dazu, wie Gebühren für Nichterscheinen auf Verfügbarkeitsebene definiert werden können, finden Sie unter diesem Abschnitt.

Buchungsserver

Bei der Verarbeitung einer Anfrage, für die eine Gebühr bei Nichterscheinen erhoben wird, wird ein Zahlungstoken an Ihren Buchungsserver im Aufruf an CreateBooking über das Feld payment_processing_parameters.unparsed_payment_method_token Dieses Token wird auf dieselbe Weise wie bei der Vorauszahlung weitergegeben. Fall. Da das Token jedoch nur für kurze Zeit autorisiert ist, müssen Sie die entsprechende API des Zahlungsabwicklers aufrufen, Aktualisieren Sie dieses Token in eine Version, die Sie dauerhaft zu einem später ändern. Dies wird im Abschnitt zur Aktivierung von Zahlungen beschrieben. am Vorgang für Gebührentoken bei Nichterscheinen.

Bei der Rückgabe eines CreateBookingResponse Das Feld booking.payment_information muss auf Geben Sie den Status der Gebühr bei Nichterscheinen wie im Beispiel unten zurück.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "no_show_fee": {
        "fee": {
            "price_micros": 25000000,
            "currency_code": "USD"
        }
        "fee_type": "FIXED_RATE_DEFAULT"
    }
}

Beachten Sie, dass no_show_fee festgelegt ist, um den Preis und Struktur der möglicherweise berechneten Gebühr. Ähnlich wie bei der Beispiel für Vorauszahlungen: In dieser Nachricht ist die Angabe transaction_id erforderlich.

Beachten Sie außerdem, dass das booking_id, das im Feld CreateBookingResponse ist ein Pflichtfeld für Echtzeitaktualisierungen, die beim Aufladen gesendet werden müssen Gebühr bei Nichterscheinen. Es wird davon ausgegangen, dass diese ID zusammen mit den Informationen zur Buchung erhalten haben.

Echtzeitaktualisierungen

Wenn ein Nutzer zur geplanten Buchung nicht erscheint oder den Termin abbricht nach Ablauf der Stornierungsfrist (z.B. durch direkte Kontaktaufnahme) kann optional über die Zahlungsinformationen die angegebene Gebühr bei Nichterscheinen erheben die Sie bei der Buchung gespeichert haben. Wenn du eine Gebühr bei Nichterscheinen berechnest, musst du eine Echtzeit-Update, das angibt, dass die Gebühr bei Nichterscheinen berechnet wurde.

Für Buchungen, die von CreateBooking, du solltest ein Update senden an notification.partners.bookings.patch Im Text dieser Anfrage sollte aktualisierte Buchung, wobei der Status auf NO_SHOW_PENALIZED Dieser Status weist Google darauf hin, dass eine Belastung gemacht.

Eine Anfrage könnte beispielsweise an folgende Adresse gesendet werden:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

Mit einem Anfragetext:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "NO_SHOW_PENALIZED"
}

Zahlung

Einzahlungen werden verwendet, um eine Erstzahlung als Voraussetzung für Buchung. Anzahlungen können bei der Buchung oder zu einem späteren Zeitpunkt abgebucht werden . Möglicherweise müssen Sie festlegen, unter welchen Bedingungen eine Anzahlung rückerstattet werden kann: sowie Eine Buchung kann online storniert werden.

Wenn Sie eine Anzahlung angeben möchten, müssen Sie im Dienstleistungsfeed den Wert deposit wie im Beispiel unten gezeigt:

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-2-b",
    "name": "Spa Treatment",
    "description": "A full spa treatment",
    "price": {
        "price_micros": 200000000,
        "currency_code": "USD"
    }
    "scheduling_rules": {
        "min_advance_online_canceling": 86400,
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 14400,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

In diesem Beispiel hat der Parameter min_advance_online_canceling definiert das Zeitfenster für die Stornierung und die deposit.min_advance_cancellation_sec definiert, wann die Anzahlung erstattungsfähig ist. Beachten Sie, dass im obigen Beispiel durch eine Zahlung ein Kündigungsfrist getrennt von den Erstattungsbedingungen. In diesem Fall kann ein Nutzer bis zu 24 Stunden im Voraus (86.400 Sekunden) online. So wird sichergestellt, dass direkt über verspätete Stornierungen informiert werden. Es kann aber vorkommen, dass der Nutzer Anspruch auf eine Erstattung der Anzahlung bis 4 Stunden im Voraus (14.400 Sekunden) vor der Buchung (durch Kontaktaufnahme mit Ihnen oder dem Händler zwecks Stornierung) Diese wird an der Kasse und in der Bestätigungs-E-Mail angezeigt.

<ph type="x-smartling-placeholder">

Informationen dazu, wie Anzahlungen auf Verfügbarkeitsebene definiert werden können, finden Sie unter diesem Abschnitt.

Buchungsserver

Bei der Verarbeitung einer Anfrage, die eine Zahlung enthält, wird ein Zahlungstoken an Ihren Buchungsserver übergeben, CreateBooking über das Feld payment_processing_parameters.unparsed_payment_method_token Dieses Token wird auf dieselbe Weise weitergegeben wie im Fall der Vorauszahlung. Wenn Sie die Anzahlung zu berechnen oder die Buchung bei der Buchung abzubuchen, können Sie das tun, während dieser Anfrage.

Wenn Sie die Zahlung zu einem späteren Zeitpunkt vornehmen möchten, weil das Token nur für kurze Zeit autorisiert ist, müssen Sie die Ihres Zahlungsabwicklers nutzen, um dieses Token in ein die Sie zur späteren Verwendung beibehalten können. Dies ist im Abschnitt zur Aktivierung von Zahlungen unter Ablauf eines Deposit-Tokens.

Bei der Rückgabe eines CreateBookingResponse Das Feld booking.payment_information muss ordnungsgemäß den Status der Überweisung zurückgeben, wie im nachfolgenden Beispiel gezeigt.

JSON

{
    "prepayment_status": "PREPAYMENT_PROVIDED",
    "payment_processed_by": "PROCESSED_BY_PARTNER",
    "payment_transaction_id": "[this-transaction-id]",
    "price": {
        "price_micros": "200000000",
        "currency_code": "USD"
    }
    "deposit": {
        "deposit": {
            "price_micros": 25000000,
            "currency_code": USD,
            "min_advance_cancellation_sec": 28800,
        }
        "deposit_type": "FIXED_RATE_DEFAULT"
    }
}

Beachten Sie, dass die Anzahlung so festgelegt ist, dass sie den Preis und die Struktur des Anzahlung, die abgebucht oder einbehalten wird. Ähnlich wie bei der Beispiel für Vorauszahlungen: In dieser Nachricht ist die Angabe transaction_id erforderlich.

Echtzeitaktualisierungen

Storniert ein Nutzer seine Buchung vor Ablauf der Frist zur Stornierung der Anzahlung, muss alle Anzahlungen erstatten, die Sie auf die Karte des Nutzers gebucht haben. Wann? eine Anzahlung erstattet wird, müssen Sie dem Echtzeit-Update, das angibt, dass die Anzahlung erstattet wurde.

Für Buchungen, die von CreateBooking, du solltest ein Update senden an notification.partners.bookings.patch Im Text dieser request sollte die aktualisierte Buchung mit folgendem Status sein: CANCELED und die Feld paymentInformation.prepaymentStatus festgelegt auf PREPAYMENT_REFUNDED Dadurch wird Google darüber informiert, dass die Zahlung erstattet.

Eine Anfrage könnte beispielsweise an folgende Adresse gesendet werden:

PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/12345678/bookings/123123123?updateMask=status

Mit einem Anfragetext:

JSON

{
    "name": "partners/12345678/bookings/123123123"
    "merchantId": "merchant-1"
    "serviceId": "service-2-b"
    "status": "CANCELED"
    "paymentInformation": {
      "prepaymentStatus": "PREPAYMENT_REFUNDED"
    }
    
}

Kreditkarte erforderlich

Für einen Dienst ist möglicherweise eine Kreditkarte als zusätzliche Überprüfung der Identität des Nutzers. Sie sollten jedoch nicht für für Vorauszahlungen, Anzahlungen oder Gebühren bei Nichterscheinen. Wenn diese Anwendungsfälle erforderlich sind, sollten sie explizit wie folgt konfiguriert werden: oben. Die Angabe einer Kreditkarte führt häufig zu einem deutlich weniger Buchungen für diesen Service.

Um die Angabe einer Kreditkarte beim Bezahlvorgang zu verlangen, müssen Sie das Feld require_credit_card in REQUIRE_CREDIT_CARD_ALWAYS.

JSON

{
    "merchant_id": "merchant-1",
    "service_id": "service-1-a",
    "name": "Men's haircut",
    "description": "One of our stylists will cut your hair",
    "price": {
        "price_micros": 15000000,
        "currency_code": "USD"
    },
    "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

Buchungsserver

Bei der Bearbeitung einer Anfrage, die eine Kreditkartenanforderung enthält, wird eine Zahlung an Ihren Buchungsserver im Aufruf an CreateBooking über das Feld payment_processing_parameters.unparsed_payment_method_token Dieses Token wird auf dieselbe Weise wie bei der Vorauszahlung weitergegeben. Fall. Da das Token jedoch nur für kurze Zeit autorisiert ist, müssen Sie die entsprechende API des Zahlungsabwicklers aufrufen, Aktualisieren Sie dieses Token in eine Version, die Sie dauerhaft zu einem später ändern.

In der Antwort des Buchungsservers sind keine zusätzlichen Informationen erforderlich über den Anwendungsfall „Pay-on-arrival“ hinaus.

Preise auf Verfügbarkeitsebene überschreiben

In allen obigen Beispielen ist die Preis-/Gebührenstruktur angegeben. auf Service-Ebene. In den meisten Fällen sollte diese verwendet. In einigen Fällen ist es jedoch sinnvoll, die Zahlungsstruktur zu ändern, für bestimmte verfügbare Slots. In den folgenden Situationen durch Überschreiben von Preisen / Gebühren auf Verfügbarkeitsebene verarbeitet werden:

  • Die Preise sind dienstags reduziert und samstags höher.
  • Zwischen 17:00 und 19:00 Uhr fällt eine Gebühr für die Nichterscheinung an.

In der folgenden Tabelle sehen Sie für jede Zahlungsmethode, in welchem Feld im Verfügbarkeitsfeed verwenden, um die Definition der Serviceebene zu überschreiben.

Zahlungsart Gebühren-/Preisdefinition Überschreibbar?
Bezahlung bei Ankunft Service.price Preis überschreibbar durch Availability.payment_option_id verweist darauf Merchant.payment_option
Vorauszahlung Service.price Der Preis ist überschreibbar durch Availability.payment_option_id verweist darauf Merchant.payment_option
Gebühr bei Nichterscheinen Service.no_show_fee Availability.no_show_fee
Zahlung Service.deposit Availability.deposit
Kreditkarte erforderlich Service.require_credit_card Availability.require_credit_card

Zum Überschreiben des Preises auf Verfügbarkeitsebene müssen Sie zuerst eine Zahlungsoption auf Händlerebene. Außerdem ist eine Anleitung zum Hinzufügen Stornierungsfristen der Verfügbarkeitsebene, siehe Leitfaden Stornierungsfenster hinzufügen