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:
- Feeds mit Informationen zu
tokenization_parameter
konfigurieren - Der Buchungsserver wird aktualisiert, um
payment_method_token
zu akzeptieren Objekte - 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.
- Keine Zahlung / Bezahlung bei Ankunft
- Vollständige Vorauszahlung
- Gebühr bei Nichterscheinen / Stornogebühr
- 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.
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.
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.
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