Zum Hauptinhalt springen




Aprenda a adaptar su aplicación de pago de Android para que funcione con Pagos Netz y brinde una mejor Benutzererfahrung a los clientes.

das Zahlungsanforderungs-API trae a la web una interfaz integrada basada en Browser que permite a los usuarios ingresar la información de pago requerida más fácil que nunca. La API también puede invocar aplicaciones de pago específicas de la plataforma.

Flujo de pago con la aplicación Google Pay específica de la plataforma que utiliza Pagos web.

En comparación con el uso de solo Android Intents, los pagos web permiten una mejor integración con el navegador, la seguridad y la experiencia del Nutzername:

  • Die Zahlungsanwendung wird modal im Kontext der Website des Händlers gestartet.
  • Die Implementierung ergänzt Ihre bestehende Zahlungsanwendung und ermöglicht es Ihnen, Ihre Benutzerbasis zu nutzen.
  • Die Signatur der Zahlungs-App wird überprüft, um dies zu vermeiden
    seitliche Belastung.
  • Zahlungs-Apps können mehrere Zahlungsmethoden unterstützen.
  • Se puede integrar cualquier método de pago, como criptomonedas, transferencias bancarias y más. Las aplicaciones de pago en dispositivos Android pueden incluso integrar métodos que requieren acceso al chip de Hardware- en el dispositivo.

Es sind vier Schritte erforderlich, um Webzahlungen in einer Android-Zahlungsanwendung zu implementieren:

  1. Lassen Sie Händler Ihre Zahlungsanwendung entdecken.
  2. Informe a un comerciante si un Klient tiene un instrumento registrado (como una tarjeta de crédito) que está listo para pagar.
  3. Lassen Sie einen Kunden die Zahlung leisten.
  4. Überprüfen Sie das Signaturzertifikat des Anrufers.

Informationen zum Anzeigen von Webzahlungen in Aktion finden Sie unter
Zahlung-Web-Android
Manifestation.

Schritt 1: Lassen Sie Händler Ihre Zahlungs-App entdecken

Damit ein Händler Ihre Zahlungsanwendung verwenden kann, muss er die verwenden Zahlungsanforderungs-API und geben Sie die Zahlungsmethode an, die Sie mit dem unterstützen Kennung der Zahlungsmethode.

Wenn Sie eine eindeutige Zahlungsmethoden-ID für Ihre Zahlungs-App haben, können Sie Ihre festlegen Zahlungsmethode manifest para que los Browser puedan descubrir su aplicación.

Schritt 2: Informieren Sie einen Händler, wenn ein Kunde ein registriertes Instrument hat, dass er bereit ist zu zahlen

Der Händler kann anrufen hasEnrolledInstrument () um zu sehen, ob der Kunde eine Zahlung leisten kann. Sie können implementieren IS_READY_TO_PAY als Android-Dienst zur Beantwortung dieser Frage.

AndroidManifest.xml

Deklarieren Sie Ihren Service mit einem Absichtsfilter mit Aktion
org.chromium.intent.action.IS_READY_TO_PAY.

<Bedienung
android:Süßkartoffel=".SampleIsReadyToPayService"
android:exported="wahr">

<intent-filter>
<Aktion android:Süßkartoffel="org.chromium.intent.action.IS_READY_TO_PAY" />
</intent-filter>
</Bedienung>

das IS_READY_TO_PAY Der Service ist optional. Wenn die Zahlungsanwendung keinen solchen Intent-Handler enthält, geht der Webbrowser davon aus, dass die Anwendung jederzeit Zahlungen ausführen kann.

AIDL

Die API für IS_READY_TO_PAY el servicio está definido en AIDL. Cree dos archivos AIDL con el siguiente Inhalt:

App / src / main / aidl / org / chromium / IsReadyToPayServiceCallback.aidl

package org.chromium;
interface IsReadyToPayServiceCallback {
oneway void handleIsReadyToPay(boolean isReadyToPay);
}

app / src / main / aidl / org / chrom / IsReadyToPayService.aidl

package org.chromium;
importieren org.chromium.IsReadyToPayServiceCallback;

interface IsReadyToPayService {
oneway void isReadyToPay(IsReadyToPayServiceCallback callback);
}

Implementieren IsReadyToPayService

Die einfachste Implementierung von IsReadyToPayService im folgenden Beispiel gezeigt:

Klasse SampleIsReadyToPayService : Service() {
private val binder = object : IsReadyToPayService.Stub() {
override fun isReadyToPay(Rückrufen: IsReadyToPayServiceCallback?) {
Rückrufen?.handleIsReadyToPay(wahr)
}
}

override fun onBind(Ich habe es versucht: Absicht?): IBinder? {
Rückkehr binder
}
}

Parameter

Übergeben Sie die folgenden Parameter an onBind als Absichts-Extras:

  • methodNames
  • methodData
  • topLevelOrigin
  • topLevelCertificateChain
  • topLevelCertificateChain
  • paymentRequestOrigin

override fun onBind(Ich habe es versucht: Absicht?): IBinder? {
val extras: Bündeln? = Ich habe es versucht?.extras
}

methodNames

Die Namen der abgefragten Methoden. Die Elemente sind die Schlüssel in der
methodData Wörterbuch und geben Sie die Methoden an, die die Zahlungsanwendung unterstützt.

val methodNames: Liste<String>? = extras.getStringArrayList("methodNames")

methodData

Eine Zuordnung jeder Eingabe von methodNames zum
methodData.

val methodData: Bündeln? = extras.getBundle("methodData")

topLevelOrigin

Der Ursprung des Händlers ohne das Schema (der Ursprung ohne das Schema des Navigationskontexts der obersten Ebene). Zum Beispiel, https://mystore.com/checkout es wird wie vergehen mystore.com.

val topLevelOrigin: String? = extras.getString("topLevelOrigin")

topLevelCertificateChain

La cadena de certificados del comerciante (la cadena de certificados del contexto de navegación de nivel superior). Nulo para localhost y archivo en disco, que son contextos seguros sin certificados SSL. La cadena de certificados es necesaria porque una aplicación de pago puede tener diferentes requisitos de confianza para los sitios web.

val topLevelCertificateChain: Array<Paketierbar>? =
extras.getParcelableArray("topLevelCertificateChain")

Jeder Paketierbar ist ein Bündeln mit einer "Zertifikat" Schlüssel und ein Byte-Array-Wert.

val list: Liste<ByteArray>? = topLevelCertificateChain?.mapNotNull { p ->
(p As Bündeln).getByteArray("Zertifikat")
}

paymentRequestOrigin

El origen sin esquema del contexto de navegación de iframe que invocaba neue PaymentRequest (methodData, Details, Optionen) constructor en JavaScript. Si el constructor fue invocado desde el contexto de nivel superior, entonces el valor de este parámetro es igual al valor de topLevelOrigin Parameter.

val paymentRequestOrigin: String? = extras.getString("paymentRequestOrigin")

Antworten

Der Dienst kann seine Antwort durch senden handleIsReadyToPay (Boolean) Methode.

Rückrufen?.handleIsReadyToPay(wahr)

Entschuldigen Sie mich

Sie können verwenden Binder.getCallingUid () um zu überprüfen, wer der Anrufer ist. Beachten Sie, dass Sie dies in der tun müssen isReadyToPay Methode, nicht die onBind Methode.

override fun isReadyToPay(Rückrufen: IsReadyToPayServiceCallback?) {
try {
val callingPackage = packageManager.getNameForUid(Binder.getCallingUid())

Informationen zum Überprüfen, ob das anrufende Paket die richtige Signatur hat, finden Sie unter Überprüfen des Signaturzertifikats des Anrufers.

Schritt 3: Lassen Sie einen Kunden auschecken

Der Händler ruft an Show() um den Zahlungsantrag zu starten, damit der Kunde eine Zahlung leisten kann. Die kostenpflichtige App wird über eine Android-Absicht aufgerufen ZAHLEN mit Transaktionsinformationen in den Intent-Parametern.

Der Zahlungsantrag antwortet mit Methodenname y Einzelheiten, die spezifisch für die Zahlungsanwendung sind und für den Browser undurchsichtig sind. Der Browser konvertiert die Einzelheiten
Zeichenfolge in einem JavaScript-Objekt für den Händler über JSON-Deserialisierung, aber darüber hinaus keine Gültigkeit. Der Browser ändert das nicht
Einzelheiten;; Der Wert dieses Parameters wird direkt an den Händler übergeben.

AndroidManifest.xml

Die Aktivität mit dem ZAHLEN Der Absichtsfilter muss a haben Ein Tag, das die Standardkennung der Zahlungsmethode für die Anwendung angibt.

Fügen Sie a hinzu, um mehrere Zahlungsmethoden zu unterstützen Etikett mit a
Ressource.

<activity
android:Süßkartoffel=".PaymentActivity"
android:Thema="@style/Theme.SamplePay.Dialog">

<intent-filter>
<Aktion android:Süßkartoffel="org.chromium.intent.action.PAY" />
</intent-filter>

<meta-data
android:Süßkartoffel="org.chromium.default_payment_method_name"
android:Wert="https://bobpay.xyz/pay" />

<meta-data
android:Süßkartoffel="org.chromium.payment_method_names"
android:Ressource="@array/method_names" />

</activity>

das Ressource debe ser una lista de cadenas, cada una de las cuales debe ser una Url absoluta válida con un esquema HTTPS como se muestra aquí.

<?xml version="1.0" encoding="utf-8"?>
<Ressourcen>
<string-array Süßkartoffel="method_names">
<Artikel>https://alicepay.com/put/optional/path/here</Artikel>
<Artikel>https://charliepay.com/put/optional/path/here</Artikel>
</string-array>
</Ressourcen>

Parameter

Die folgenden Parameter werden als Absichts-Extras an die Aktivität übergeben:

  • methodNames
  • methodData
  • topLevelOrigin
  • topLevelCertificateChain
  • paymentRequestOrigin
  • gesamt
  • Modifikatoren
  • paymentRequestId

val extras: Bündeln? = Ich habe es versucht?.extras

methodNames

Die Namen der verwendeten Methoden. Die Elemente sind die Schlüssel in der
methodData Wörterbuch. Dies sind die Methoden, die die Zahlungsanwendung unterstützt.

val methodNames: Liste<String>? = extras.getStringArrayList("methodNames")

methodData

Eine Zuordnung von jedem der methodNames zum
methodData.

val methodData: Bündeln? = extras.getBundle("methodData")

Händlername

Der Inhalt der </ html></code> Etikette <a href="https://rmarketingdigital.com/de/wiki/html/" target="_blank" data-wpel-link="internal">HTML</a> de la página de pago del comerciante (el contexto de navegación de nivel superior del navegador).</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> merchantName<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> extras<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">"merchantName"</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <h4 id="toplevelorigin-2"><span class="ez-toc-section" id="topLevelOrigin-2"></span><code>topLevelOrigin</code> <span class="ez-toc-section-end"></span></h4> <p>Der Ursprung des Händlers ohne das Schema (Der Ursprung ohne das Schema des Navigationskontexts der obersten Ebene). Zum Beispiel, <code>https://mystore.com/checkout</code> es passiert wie <code>mystore.com</code>.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> topLevelOrigin<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> extras<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">"topLevelOrigin"</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <h4 id="toplevelcertificatechain-2"><span class="ez-toc-section" id="topLevelCertificateChain-2"></span><code>topLevelCertificateChain</code> <span class="ez-toc-section-end"></span></h4> <p>Die Zertifikatkette des Händlers (die Zertifikatkette aus dem Navigationskontext der obersten Ebene). Null für localhost und Datei auf der Festplatte, die sichere Kontexte ohne SSL-Zertifikate sind. Jeder <code>Paketierbar</code> Es ist ein Paket mit einem<br /> <code>Zertifikat</code> Schlüssel und ein Byte-Array-Wert.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> topLevelCertificateChain<span class="token operator">:</span> Array<span class="token operator"><</span>Paketierbar<span class="token operator">></span><span class="token operator">?</span> <span class="token operator">=</span><br>extras<span class="token punctuation">.</span><span class="token function">getParcelableArray</span><span class="token punctuation">(</span><span class="token string">"topLevelCertificateChain"</span><span class="token punctuation">)</span><br><span class="token keyword">val</span> list<span class="token operator">:</span> Liste<span class="token operator"><</span>ByteArray<span class="token operator">></span><span class="token operator">?</span> <span class="token operator">=</span> topLevelCertificateChain<span class="token operator">?</span><span class="token punctuation">.</span><span class="token function">mapNotNull</span> <span class="token punctuation">{</span> p <span class="token operator">-></span><br><span class="token punctuation">(</span>p <span class="token keyword">As</span> Bündeln<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getByteArray</span><span class="token punctuation">(</span><span class="token string">"Zertifikat"</span><span class="token punctuation">)</span><br><span class="token punctuation">}</span></code></pre> <p></web-copy-code></p> <h4 id="paymentrequestorigin-2"><span class="ez-toc-section" id="paymentRequestOrigin-2"></span><code>paymentRequestOrigin</code> <span class="ez-toc-section-end"></span></h4> <p>Die Nicht-Schema-Quelle des aufgerufenen Iframe-Navigationskontexts <code>neue PaymentRequest (methodData, Details, Optionen)</code> Konstruktor in JavaScript. Wenn der Konstruktor aus dem Kontext der obersten Ebene aufgerufen wurde, entspricht der Wert dieses Parameters dem Wert von <code>topLevelOrigin</code> Parameter.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> paymentRequestOrigin<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> extras<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">"paymentRequestOrigin"</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <h4 id="total"><span class="ez-toc-section" id="total"></span><code>gesamt</code> <span class="ez-toc-section-end"></span></h4> <p>Die JSON-Zeichenfolge, die den Gesamtbetrag der Transaktion darstellt.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> gesamt<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> extras<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">"total"</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <p>Hier ist ein Beispiel für den Inhalt von Zeichenfolgen:</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token punctuation">{</span><span class="token string">"currency"</span><span class="token operator">:</span><span class="token string">"USD"</span><span class="token punctuation">,</span><span class="token string">"value"</span><span class="token operator">:</span><span class="token string">"25.00"</span><span class="token punctuation">}</span></code></pre> <p></web-copy-code></p> <h4 id="modifiers"><span class="ez-toc-section" id="modifiers"></span><code>Modifikatoren</code> <span class="ez-toc-section-end"></span></h4> <p>Die Ausgabe von <code>JSON.stringify (details.modifiers)</code>, wo <code>details.modifiers</code><br /> nur enthalten <code>unterstützte Methoden</code> y <code>gesamt</code>.</p> <h4 id="paymentrequestid"><span class="ez-toc-section" id="paymentRequestId"></span><code>paymentRequestId</code> <span class="ez-toc-section-end"></span></h4> <p>das <code>PaymentRequest.id</code> Feld, das Anwendungen für die automatische Zahlung mit dem Status der Transaktion verknüpfen sollen. Händler-Websites verwenden dieses Feld, um "Auto Pay" -Anwendungen nach dem Out-of-Band-Transaktionsstatus abzufragen.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> paymentRequestId<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> extras<span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">"paymentRequestId"</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <h3 id="response-2"><span class="ez-toc-section" id="Respuesta-2"></span>Antworten <span class="ez-toc-section-end"></span></h3> <p>Die Aktivität kann ihre Antwort durch senden <code>setResult</code> mit <code>RESULT_OK</code>.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token function">setResult</span><span class="token punctuation">(</span>Activity<span class="token punctuation">.</span>RESULT_OK<span class="token punctuation">,</span> <span class="token function">Absicht</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">apply</span> <span class="token punctuation">{</span><br><span class="token function">putExtra</span><span class="token punctuation">(</span><span class="token string">"methodName"</span><span class="token punctuation">,</span> <span class="token string">"https://bobpay.xyz/pay"</span><span class="token punctuation">)</span><br><span class="token function">putExtra</span><span class="token punctuation">(</span><span class="token string">"details"</span><span class="token punctuation">,</span> <span class="token string">"{"token": "put-some-data-here"}"</span><span class="token punctuation">)</span><br><span class="token punctuation">}</span><span class="token punctuation">)</span><br><span class="token function">finish</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <p>Sie müssen zwei Parameter als Absichts-Extras angeben:</p> <ul> <li><code>Methodenname</code>: Der Name der verwendeten Methode.</li> <li><code>Einzelheiten</code>: JSON-Zeichenfolge mit den Informationen, die der Händler zum Abschließen der Transaktion benötigt. Wenn Erfolg ist <code>wahr</code>, dann <code>Einzelheiten</code> muss so konstruiert sein, dass <code>JSON.parse (Details)</code> es könnte passieren.</li> </ul> <p>Du kannst passieren <code>RESULT_CANCELED</code> Wenn die Transaktion in der Zahlungsanwendung nicht abgeschlossen wurde, z. B. wenn der Benutzer in der Zahlungsanwendung nicht den richtigen PIN-Code für sein Konto eingegeben hat. Der Browser kann es dem Benutzer ermöglichen, eine andere Zahlungsanwendung auszuwählen.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token function">setResult</span><span class="token punctuation">(</span>RESULT_CANCELED<span class="token punctuation">)</span><br><span class="token function">finish</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <p>Wenn das Aktivitätsergebnis einer von der aufgerufenen Zahlungsanwendung empfangenen Zahlungsantwort auf gesetzt ist <code>RESULT_OK</code>Dann prüft Chrome, ob es nicht leer ist <code>Methodenname</code> y<br /> <code>Einzelheiten</code> in Ihren Extras. Wenn die Validierung fehlschlägt, gibt Chrome ein abgelehntes Versprechen von zurück <code>request.show ()</code> mit einer der folgenden Fehlermeldungen für Entwickler:</p> <p><web-copy-code></p> <pre class="language-js"><code class="language-js"><span class="token string">'Payment app returned invalid response. Missing field "details".'</span><br><span class="token string">'Payment app returned invalid response. Missing field "methodName".'</span></code></pre> <p></web-copy-code></p> <h3 id="permission-2"><span class="ez-toc-section" id="Permiso-2"></span>Entschuldigen Sie mich <span class="ez-toc-section-end"></span></h3> <p>Die Aktivität kann den Anrufer mit ihrem überprüfen <code>getCallingPackage ()</code> Methode.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> caller<span class="token operator">:</span> String<span class="token operator">?</span> <span class="token operator">=</span> callingPackage</code></pre> <p></web-copy-code></p> <p>Der letzte Schritt besteht darin, das Signaturzertifikat des Anrufers zu überprüfen, um zu bestätigen, dass das anrufende Paket die richtige Signatur hat.</p> <h2 id="step-4:-verify-the-caller's-signing-certificate"><span class="ez-toc-section" id="Paso-4-Verifique-el-certificado-de-firma-de-la-persona-que-llama"></span>Schritt 4: Überprüfen Sie das Signaturzertifikat des Anrufers <span class="ez-toc-section-end"></span></h2> <p>Sie können den Paketnamen des Anrufers mit überprüfen <code>Binder.getCallingUid ()</code> im<br /> <code>IS_READY_TO_PAY</code>, und mit <code>Activity.getCallingPackage ()</code> im <code>ZAHLEN</code>. Um wirklich zu überprüfen, ob der Anrufer der Browser ist, an den Sie denken, müssen Sie das Signaturzertifikat überprüfen und sicherstellen, dass es mit dem richtigen Wert übereinstimmt.</p> <p>Si tiene como <a href="https://rmarketingdigital.com/de/wiki/ziel/" target="_blank" data-wpel-link="internal">Ziel</a> el nivel de API 28 y superior y se está integrando con un navegador que tiene un solo certificado de firma, puede usar<br /> <code>PackageManager.hasSigningCertificate ()</code>.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> packageName<span class="token operator">:</span> String <span class="token operator">=</span> … <br><span class="token keyword">val</span> Zertifikat<span class="token operator">:</span> ByteArray <span class="token operator">=</span> … <br><span class="token keyword">val</span> verified <span class="token operator">=</span> packageManager<span class="token punctuation">.</span><span class="token function">hasSigningCertificate</span><span class="token punctuation">(</span><br>callingPackage<span class="token punctuation">,</span><br>Zertifikat<span class="token punctuation">,</span><br>PackageManager<span class="token punctuation">.</span>CERT_INPUT_SHA256<br><span class="token punctuation">)</span></code></pre> <p></web-copy-code></p> <p><code>PackageManager.hasSigningCertificate ()</code> Es wird für einzelne Zertifikatbrowser bevorzugt, da die Zertifikatrotation korrekt ausgeführt wird. (Chrome hat nur ein Signaturzertifikat.) Anwendungen mit mehreren Signaturzertifikaten können diese nicht drehen.</p> <p>Wenn Sie API-Levels unterstützen müssen, die älter als 27 Jahre oder niedriger sind, oder wenn Sie Browser mit mehreren Signaturzertifikaten verarbeiten müssen, können Sie diese verwenden<br /> <code>PackageManager.GET_SIGNATURES</code>.</p> <p><web-copy-code></p> <pre class="language-kotlin"><code class="language-kotlin"><span class="token keyword">val</span> packageName<span class="token operator">:</span> String <span class="token operator">=</span> … <br><span class="token keyword">val</span> certificates<span class="token operator">:</span> einstellen<span class="token operator"><</span>ByteArray<span class="token operator">></span> <span class="token operator">=</span> … <p><span class="token keyword">val</span> packageInfo <span class="token operator">=</span> <span class="token function">getPackageInfo</span><span class="token punctuation">(</span>packageName<span class="token punctuation">,</span> PackageManager<span class="token punctuation">.</span>GET_SIGNATURES<span class="token punctuation">)</span><br><span class="token keyword">val</span> sha256 <span class="token operator">=</span> MessageDigest<span class="token punctuation">.</span><span class="token function">getInstance</span><span class="token punctuation">(</span><span class="token string">"SHA-256"</span><span class="token punctuation">)</span><br><span class="token keyword">val</span> signatures <span class="token operator">=</span> packageInfo<span class="token punctuation">.</span>signatures<span class="token punctuation">.</span><span class="token function">map</span> <span class="token punctuation">{</span> sha256<span class="token punctuation">.</span><span class="token function">digest</span><span class="token punctuation">(</span>Artikel<span class="token punctuation">.</span><span class="token function">toByteArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><br><span class="token keyword">val</span> verified <span class="token operator">=</span> signatures<span class="token punctuation">.</span>Größe <span class="token operator">==</span> certificates<span class="token punctuation">.</span>Größe <span class="token operator">&&</span><br>signatures<span class="token punctuation">.</span><span class="token function">Dort</span> <span class="token punctuation">{</span> s <span class="token operator">-></span> certificates<span class="token punctuation">.</span><span class="token function">any</span> <span class="token punctuation">{</span> Artikel<span class="token punctuation">.</span><span class="token function">contentEquals</span><span class="token punctuation">(</span>s<span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span></p></code></pre> <p></web-copy-code></p> <p> <web-feedback additional-questions="api"></web-feedback> </div> <div id="ez-toc-container" class="ez-toc-v2_0_69_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction"> <div class="ez-toc-title-container"> <p class="ez-toc-title" style="cursor:inherit">Inhalt</p> <span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Inhaltsverzeichnis umschalten"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Umschalten</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewbox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewbox="0 0 24 24" version="1.2" baseprofile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div> <nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#Paso-1-permita-que-los-comerciantes-descubran-su-aplicacion-de-pago" title="Schritt 1: Lassen Sie Händler Ihre Zahlungs-App entdecken">Schritt 1: Lassen Sie Händler Ihre Zahlungs-App entdecken</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#Paso-2-Informe-a-un-comerciante-si-un-cliente-tiene-un-instrumento-registrado-que-esta-listo-para-pagar" title="Schritt 2: Informieren Sie einen Händler, wenn ein Kunde ein registriertes Instrument hat, dass er bereit ist zu zahlen">Schritt 2: Informieren Sie einen Händler, wenn ein Kunde ein registriertes Instrument hat, dass er bereit ist zu zahlen</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#AndroidManifestxml" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#AIDL" title="AIDL">AIDL</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-5" href="#Implementar-IsReadyToPayService" title="Implementieren Sie IsReadyToPayService">Implementieren Sie IsReadyToPayService</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#Parametros" title="Parameter">Parameter</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-7" href="#methodNames" title="methodNames">methodNames</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-8" href="#methodData" title="methodData">methodData</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-9" href="#topLevelOrigin" title="topLevelOrigin">topLevelOrigin</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-10" href="#topLevelCertificateChain" title="topLevelCertificateChain">topLevelCertificateChain</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-11" href="#paymentRequestOrigin" title="paymentRequestOrigin">paymentRequestOrigin</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#Respuesta" title="Antworten">Antworten</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#Permiso" title="Entschuldigen Sie mich">Entschuldigen Sie mich</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-14" href="#Paso-3-deje-que-un-cliente-realice-el-pago" title="Schritt 3: Lassen Sie einen Kunden auschecken">Schritt 3: Lassen Sie einen Kunden auschecken</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#AndroidManifestxml-2" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#Parametros-2" title="Parameter">Parameter</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-17" href="#methodNames-2" title="methodNames">methodNames</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-18" href="#methodData-2" title="methodData">methodData</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-19" href="#Nombre-del-comerciante" title="Händlername">Händlername</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-20" href="#topLevelOrigin-2" title="topLevelOrigin">topLevelOrigin</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-21" href="#topLevelCertificateChain-2" title="topLevelCertificateChain">topLevelCertificateChain</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-22" href="#paymentRequestOrigin-2" title="paymentRequestOrigin">paymentRequestOrigin</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-23" href="#total" title="gesamt">gesamt</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-24" href="#modifiers" title="Modifikatoren">Modifikatoren</a></li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-25" href="#paymentRequestId" title="paymentRequestId">paymentRequestId</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-26" href="#Respuesta-2" title="Antworten">Antworten</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-27" href="#Permiso-2" title="Entschuldigen Sie mich">Entschuldigen Sie mich</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-28" href="#Paso-4-Verifique-el-certificado-de-firma-de-la-persona-que-llama" title="Schritt 4: Überprüfen Sie das Signaturzertifikat des Anrufers">Schritt 4: Überprüfen Sie das Signaturzertifikat des Anrufers</a></li></ul></nav></div> <script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- before contente - R Marketing --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9047562926713908" data-ad-slot="3528200093" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class='yarpp yarpp-related yarpp-related-website yarpp-template-list'> <!-- YARPP List --> <h5>zusammenhängende Posts</h3><ol> <li><a href="https://rmarketingdigital.com/de/dev/descripcion-general-de-las-aplicaciones-de-pago-basadas-en-la-web/" rel="bookmark" title="Übersicht über webbasierte Zahlungsanwendungen" data-wpel-link="internal">Übersicht über webbasierte Zahlungsanwendungen</a></li> <li><a href="https://rmarketingdigital.com/de/dev/potenciar-las-aplicaciones-de-pago-con-pagos-web/" rel="bookmark" title="Steigern Sie Zahlungsanwendungen mit Web-Zahlungen" data-wpel-link="internal">Steigern Sie Zahlungsanwendungen mit Web-Zahlungen</a></li> <li><a href="https://rmarketingdigital.com/de/plantilla-excel/calculo-de-horas-extras/" rel="bookmark" title="Berechnung von Überstunden" data-wpel-link="internal">Berechnung von Überstunden</a></li> <li><a href="https://rmarketingdigital.com/de/elementor/complementos-y-complementos-para-elementor/" rel="bookmark" title="Plugins und Plugins für Elementor" data-wpel-link="internal">Plugins und Plugins für Elementor</a></li> </ol> </div><div class='yarpp yarpp-related yarpp-related-website yarpp-template-list'> <!-- YARPP List --> <h5>zusammenhängende Posts</h3><ol> <li><a href="https://rmarketingdigital.com/de/dev/descripcion-general-de-las-aplicaciones-de-pago-basadas-en-la-web/" rel="bookmark" title="Übersicht über webbasierte Zahlungsanwendungen" data-wpel-link="internal">Übersicht über webbasierte Zahlungsanwendungen</a></li> <li><a href="https://rmarketingdigital.com/de/dev/potenciar-las-aplicaciones-de-pago-con-pagos-web/" rel="bookmark" title="Steigern Sie Zahlungsanwendungen mit Web-Zahlungen" data-wpel-link="internal">Steigern Sie Zahlungsanwendungen mit Web-Zahlungen</a></li> <li><a href="https://rmarketingdigital.com/de/plantilla-excel/calculo-de-horas-extras/" rel="bookmark" title="Berechnung von Überstunden" data-wpel-link="internal">Berechnung von Überstunden</a></li> <li><a href="https://rmarketingdigital.com/de/elementor/complementos-y-complementos-para-elementor/" rel="bookmark" title="Plugins und Plugins für Elementor" data-wpel-link="internal">Plugins und Plugins für Elementor</a></li> </ol> </div> </div> </div><!--/post-content--> </div><!--/inner-wrap--> </article> </div><!--/post-area--> <div id="sidebar" data-nectar-ss="1" class="col span_3 col_last"> <div id="custom_html-9" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><center><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Sidebar Widget - R Marketing --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9047562926713908" data-ad-slot="9140386366" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center></div></div><div id="custom_html-24" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><center><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Sidebar Widget - R Marketing --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9047562926713908" data-ad-slot="9140386366" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center></div></div> </div><!--/sidebar--> </div><!--/row--> <div class="row"> <div class="row vc_row-fluid full-width-section related-post-wrap" data-using-post-pagination="false" data-midnight="dark"> <div class="row-bg-wrap"><div class="row-bg"></div></div> <h3 class="related-title hidden" data-no-translation="" data-trp-gettext="">zusammenhängende Posts</h3><div class="row span_12 blog-recent related-posts columns-3" data-style="material" data-color-scheme="light"> <div class="col span_4"> <div class="inner-wrap post-81486 post type-post status-publish format-standard has-post-thumbnail category-dev"> <a href="https://rmarketingdigital.com/de/dev/dando-superpoderes-a-las-variables-css/" class="img-link" data-wpel-link="internal"><span class="post-featured-img"><img width="600" height="360" src="https://rmarketingdigital.com/wp-content/uploads/2020/09/hero-7923897-600x360.jpg" class="attachment-portfolio-thumb size-portfolio-thumb wp-post-image" alt="hero-7923897-5622351-jpg" title="" decoding="async" loading="lazy" /></span></a> <span class="meta-category"><a class="dev" href="https://rmarketingdigital.com/de/dev/" data-wpel-link="internal">Dev</a></span> <a class="entire-meta-link" href="https://rmarketingdigital.com/de/dev/dando-superpoderes-a-las-variables-css/" data-wpel-link="internal"><span class="screen-reader-text">CSS-Variablen Superkräfte verleihen</span></a> <div class="article-content-wrap"> <div class="post-header"> <span class="meta"> </span> <h3 class="title">CSS-Variablen Superkräfte verleihen</h3> </div><!--/post-header--> <div class="grav-wrap"><img alt='R Digitales Marketing' src='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' loading='lazy' decoding='async'/><div class="text"> <a href="https://rmarketingdigital.com/de/author/r-marketing-digital/" data-wpel-link="internal">R Digitales Marketing</a><span>22/10/2022</span></div></div> </div> </div> </div> <div class="col span_4"> <div class="inner-wrap post-83979 post type-post status-publish format-standard has-post-thumbnail category-dev"> <a href="https://rmarketingdigital.com/de/dev/arreglar-un-servidor-sobrecargado/" class="img-link" data-wpel-link="internal"><span class="post-featured-img"><img width="600" height="360" src="https://rmarketingdigital.com/wp-content/uploads/2020/09/hero-2836929-600x360.jpg" class="attachment-portfolio-thumb size-portfolio-thumb wp-post-image" alt="hero-2836929-1047989-jpg" title="" decoding="async" loading="lazy" /></span></a> <span class="meta-category"><a class="dev" href="https://rmarketingdigital.com/de/dev/" data-wpel-link="internal">Dev</a></span> <a class="entire-meta-link" href="https://rmarketingdigital.com/de/dev/arreglar-un-servidor-sobrecargado/" data-wpel-link="internal"><span class="screen-reader-text">Beheben Sie einen überlasteten Server</span></a> <div class="article-content-wrap"> <div class="post-header"> <span class="meta"> </span> <h3 class="title">Beheben Sie einen überlasteten Server</h3> </div><!--/post-header--> <div class="grav-wrap"><img alt='R Digitales Marketing' src='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' loading='lazy' decoding='async'/><div class="text"> <a href="https://rmarketingdigital.com/de/author/r-marketing-digital/" data-wpel-link="internal">R Digitales Marketing</a><span>22/10/2022</span></div></div> </div> </div> </div> <div class="col span_4"> <div class="inner-wrap post-92984 post type-post status-publish format-standard has-post-thumbnail category-dev"> <a href="https://rmarketingdigital.com/de/dev/whats-new-in-lighthouse-6-0/" class="img-link" data-wpel-link="internal"><span class="post-featured-img"><img width="1" height="1" src="https://rmarketingdigital.com/wp-content/uploads/2020/10/lighthouse-logo-5769199.svg.svg+xml" class="attachment-portfolio-thumb size-portfolio-thumb wp-post-image" alt="Leuchtturm-Logo-5769199-svg_-3706970-svgxml" title="" decoding="async" loading="lazy" /></span></a> <span class="meta-category"><a class="dev" href="https://rmarketingdigital.com/de/dev/" data-wpel-link="internal">Dev</a></span> <a class="entire-meta-link" href="https://rmarketingdigital.com/de/dev/whats-new-in-lighthouse-6-0/" data-wpel-link="internal"><span class="screen-reader-text">Was ist neu in Lighthouse 6.0?</span></a> <div class="article-content-wrap"> <div class="post-header"> <span class="meta"> </span> <h3 class="title">Was ist neu in Lighthouse 6.0?</h3> </div><!--/post-header--> <div class="grav-wrap"><img alt='R Digitales Marketing' src='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/42eef922ac92618c401c429d408c0225?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' loading='lazy' decoding='async'/><div class="text"> <a href="https://rmarketingdigital.com/de/author/r-marketing-digital/" data-wpel-link="internal">R Digitales Marketing</a><span>20/10/2022</span></div></div> </div> </div> </div> </div></div> <div class="comments-section" data-author-bio="false"> <div class="comment-wrap" data-midnight="dark" data-comments-open="false"> <!-- If comments are closed. --> <!--<p class="nocomments">Comments are closed.</p>--> </div> </div> </div><!--/row--> </div><!--/container main-content--> </div><!--/container-wrap--> <div id="footer-outer" data-midnight="light" data-cols="3" data-custom-color="true" data-disable-copyright="false" data-matching-section-color="false" data-copyright-line="true" data-using-bg-img="false" data-bg-img-overlay="0.3" data-full-width="1" data-using-widget-area="true" data-link-hover="default"> <div id="footer-widgets" data-has-widgets="true" data-cols="3"> <div class="container"> <div class="row"> <div class="col span_4"> <div id="media_image-2" class="widget widget_media_image"><img width="150" height="55" src="https://rmarketingdigital.com/wp-content/uploads/2018/10/headerlogo-blanco-footer-1-150x55.png" class="image wp-image-67039 attachment-thumbnail size-thumbnail" alt="" style="max-width: 100%; height: auto;" decoding="async" loading="lazy" /></div><div id="text-5" class="widget widget_text"> <div class="textwidget"><p>R Digitales Marketing: WhatsApp-Marketing. Social Media Management, Webdesign und -management, Online-Werbung, SEM und SEO, E-Mail-Marketing.</p> </div> </div><div id="media_image-4" class="widget widget_media_image"><img width="220" height="110" src="https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage-1.jpg" class="image wp-image-67115 attachment-full size-full" alt="Facebook-Partner" style="max-width: 100%; height: auto;" decoding="async" loading="lazy" /></div><div id="media_image-3" class="widget widget_media_image"><img width="220" height="110" src="https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage.png" class="image wp-image-67114 attachment-full size-full" alt="Google-Partner" style="max-width: 100%; height: auto;" decoding="async" loading="lazy" /></div> </div> <div class="col span_4"> <div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><h4>Tutorials und Schulungen</h4> <ul> <li><a href="https://rmarketingdigital.com/de/formacion/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Ausbildung</a></li> <li><a href="https://rmarketingdigital.com/de/power-bi-blog/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Power Bi</a></li> <li><a href="https://rmarketingdigital.com/de/marketing/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Marketing</a></li> <li><a href="https://rmarketingdigital.com/de/dev/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Dev</a></li> <li><a href="https://rmarketingdigital.com/de/elementor/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Elementor</a></li> <li><a href="https://rmarketingdigital.com/de/seo/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">SEO</a></li> <li><a href="https://rmarketingdigital.com/de/werkzeuge/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Werkzeuge</a></li> <li><a href="https://rmarketingdigital.com/de/plantillas-excel/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Excel-Vorlagen</a></li> <li><a href="https://rmarketingdigital.com/de/geschaft/" rel="noopener noreferrer nofollow external" target="_self" data-wpel-link="external">Geschäft</a></li> </ul> <p><br></p></div></div> </div> <div class="col span_4"> <div id="custom_html-2" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><h4>Wordpress</h4> <ul> <ul> <li><a href="https://rmarketingdigital.com/de/wordpress/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">Wordpress 101</a></li> </ul> </ul> <h4>Soziale Netzwerke</h4> <ul> <ul> <li><a href="https://rmarketingdigital.com/de/facebook/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">Facebook</a></li> <li><a href="https://rmarketingdigital.com/de/instagram/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">Instagram</a></li> <li><a href="https://rmarketingdigital.com/de/whatsapp/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">WhatsApp</a></li> <li><a href="https://rmarketingdigital.com/de/descargar-torrents/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">Torrents</a></li> <li><a href="https://rmarketingdigital.com/de/cine-series/" target="_self" rel="noopener noreferrer nofollow external" data-wpel-link="external">Filme und Serien</a></li> </ul> </ul></div></div><div id="nav_menu-4" class="widget widget_nav_menu"><h4>Idiom</h4><div class="menu-lenguaje-switcher-container"><ul id="menu-lenguaje-switcher" class="menu"><li id="menu-item-93714" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-93714"><a href="https://rmarketingdigital.com/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/es_ES.png" width="18" height="12" alt="es_ES" title="Español"><span class="trp-ls-language-name">Español</span></span></a></li> <li id="menu-item-110873" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item menu-item-110873"><a href="https://rmarketingdigital.com/de/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="internal"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/de_DE.png" width="18" height="12" alt="de_DE" title="Deutsch"><span class="trp-ls-language-name">Deutsch</span></span></a></li> <li id="menu-item-129688" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-129688"><a href="https://rmarketingdigital.com/en/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/en_US.png" width="18" height="12" alt="en_US" title="English"><span class="trp-ls-language-name">English</span></span></a></li> <li id="menu-item-129689" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-129689"><a href="https://rmarketingdigital.com/fr/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/fr_FR.png" width="18" height="12" alt="fr_FR" title="Français"><span class="trp-ls-language-name">Français</span></span></a></li> </ul></div></div><div id="custom_html-23" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><h4>Nutzer</h4> <ul> <li style="list-style-type: none;"> <ul> <li class="cookie-policy-p"><a href="https://rmarketingdigital.com/de/politica-de-privacidad/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Datenschutz-Bestimmungen</a></li> <li><a href="https://rmarketingdigital.com/de/politica-de-cookies/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Cookie-Richtlinie</a></li> </ul> </li> </ul> </div></div> </div> </div> </div><!--/container--> </div><!--/footer-widgets--> <div class="row" id="copyright" data-layout="centered"> <div class="container"> <div class="col span_5"> <div class="widget"> </div> <p>© 2025 R Marketing Digital. </p> </div><!--/span_5--> <div class="col span_7 col_last"> <ul class="social"> </ul> </div><!--/span_7--> </div><!--/container--> </div><!--/row--> </div><!--/footer-outer--> <div id="slide-out-widget-area-bg" class="slide-out-from-right solid"> </div> <div id="slide-out-widget-area" class="slide-out-from-right" data-dropdown-func="separate-dropdown-parent-link" data-back-txt="Zurück" data-no-translation-data-back-txt=""> <div class="inner-wrap"> <div class="inner" data-prepend-menu-mobile="false"> <a class="slide_out_area_close" href="#"><span class="screen-reader-text" data-no-translation="" data-trp-gettext="">Menü schließen</span> <span class="icon-salient-x icon-default-style"></span> </a> <div class="off-canvas-menu-container" role="navigation"> <ul class="menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-67249"><a href="https://rmarketingdigital.com/de/blog/" aria-haspopup="true" aria-expanded="false" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Blog</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-105292"><a aria-haspopup="true" aria-expanded="false">💻Entwicklung</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105258"><a href="https://rmarketingdigital.com/de/android/" data-wpel-link="internal">Android</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-post menu-item-129712467"><a href="https://rmarketingdigital.com/de/chatgpt/chatgpt-enfocado-al-marketing-digital-y-al-seo/" data-wpel-link="internal">ChatGPT</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-105261"><a href="https://rmarketingdigital.com/de/dev/" data-wpel-link="internal">Dev</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105268"><a href="https://rmarketingdigital.com/de/freeware/" data-wpel-link="internal">Freeware</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105273"><a href="https://rmarketingdigital.com/de/javascript/" data-wpel-link="internal">Javascript</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105282"><a href="https://rmarketingdigital.com/de/servidores-vps/" data-wpel-link="internal">Server / VPS</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-129672"><a href="https://rmarketingdigital.com/de/vpn/" data-wpel-link="internal">VPN</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105287"><a href="https://rmarketingdigital.com/de/windows-10/" data-wpel-link="internal">Windows 10</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-105276"><a href="https://rmarketingdigital.com/de/geschaft/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">💼Geschäft</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105264"><a href="https://rmarketingdigital.com/de/emprendedores/" data-wpel-link="internal">Unternehmer</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105265"><a href="https://rmarketingdigital.com/de/strategien/" data-wpel-link="internal">Strategien</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105267"><a href="https://rmarketingdigital.com/de/formacion/" data-wpel-link="internal">Ausbildung</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105275"><a href="https://rmarketingdigital.com/de/marketing/" data-wpel-link="internal">Marketing</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-105637"><a href="https://rmarketingdigital.com/de/plantillas-excel/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Excel-Vorlagen</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-106686"><a href="https://rmarketingdigital.com/de/power-bi-blog/" data-wpel-link="internal">Power BI</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-109500"><a href="https://rmarketingdigital.com/de/software-gestion/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">Management-Software</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-109498"><a href="https://rmarketingdigital.com/de/crm/" data-wpel-link="internal">CRM</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-109499"><a href="https://rmarketingdigital.com/de/erp/" data-wpel-link="internal">ERP</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-105270"><a href="https://rmarketingdigital.com/de/anleitungen/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">👓Führer</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-132612"><a href="https://rmarketingdigital.com/de/dateien/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">🗂️Dateien</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-132614"><a href="https://rmarketingdigital.com/de/dateien/exe/" data-wpel-link="internal">exe</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-132613"><a href="https://rmarketingdigital.com/de/dateien/dll/" data-wpel-link="internal">dll</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105271"><a href="https://rmarketingdigital.com/de/werkzeuge/" data-wpel-link="internal">🧰Werkzeuge</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-135948"><a href="https://rmarketingdigital.com/de/marketing-deportivo/" data-wpel-link="internal">⚽Sportmarketing</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-105280"><a href="https://rmarketingdigital.com/de/soziale-medien/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">📱Soziale Netzwerke</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105266"><a href="https://rmarketingdigital.com/de/facebook/" data-wpel-link="internal">Facebook</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105272"><a href="https://rmarketingdigital.com/de/instagram/" data-wpel-link="internal">Instagram</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105274"><a href="https://rmarketingdigital.com/de/linkedin/" data-wpel-link="internal">LinkedIn</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-106055"><a href="https://rmarketingdigital.com/de/streaming/" data-wpel-link="internal">Streaming</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105283"><a href="https://rmarketingdigital.com/de/tiktok/" data-wpel-link="internal">TitTok</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105286"><a href="https://rmarketingdigital.com/de/whatsapp/" data-wpel-link="internal">WhatsApp</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-129667"><a href="#" aria-haspopup="true" aria-expanded="false">📺Freizeit</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-129668"><a href="https://rmarketingdigital.com/de/cine-series/" data-wpel-link="internal">Kino und Serie</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-129669"><a href="https://rmarketingdigital.com/de/gaming/" data-wpel-link="internal">Spielen</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-129670"><a href="https://rmarketingdigital.com/de/tv-online/" data-wpel-link="internal">Online-Fernsehen</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-108306"><a href="https://rmarketingdigital.com/de/descargar-torrents/" data-wpel-link="internal">Torrents</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-105285"><a href="https://rmarketingdigital.com/de/bahnen/" aria-haspopup="true" aria-expanded="false" data-wpel-link="internal">🌐Netze</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105263"><a href="https://rmarketingdigital.com/de/elementor/" data-wpel-link="internal">Elementor</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105262"><a href="https://rmarketingdigital.com/de/e-commerce/" data-wpel-link="internal">E-Commerce</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105288"><a href="https://rmarketingdigital.com/de/wordpress/" data-wpel-link="internal">WordPress</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-105281"><a href="https://rmarketingdigital.com/de/seo/" data-wpel-link="internal">SEO</a></li> </ul> </li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-67232"><a aria-haspopup="true" aria-expanded="false">Dienstleistungen</a> <ul class="sub-menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-78763"><a href="https://rmarketingdigital.com/de/seo-agentur/" data-wpel-link="internal">Web-Positionierung</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67229"><a href="https://rmarketingdigital.com/de/publicidad-redes-sociales-facebook-instagram/" data-wpel-link="internal">Werbung in sozialen Netzwerken</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67230"><a href="https://rmarketingdigital.com/de/community-manager/" data-wpel-link="internal">Community Manager</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67228"><a href="https://rmarketingdigital.com/de/follower-boost-instagram-cuentas/" data-wpel-link="internal">Follower-Boost</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67231"><a href="https://rmarketingdigital.com/de/ecommerce-tienda-online/" data-wpel-link="internal">E-Commerce</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-67710"><a href="https://rmarketingdigital.com/de/soluciones-elearning/" data-wpel-link="internal">E-Learning-Lösungen</a></li> </ul> </li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-93606"><a href="https://rmarketingdigital.com/de/glosario-marketing-digital/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Glossar</a></li> </ul> </div> <div id="nav_menu-3" class="widget widget_nav_menu"><div class="menu-r-pop-up-menu-container"><ul id="menu-r-pop-up-menu" class="menu"><li id="menu-item-66980" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66980"><a href="https://m.me/rmarketingdigital" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer">Fragen Sie nach dem Budget</a></li> <li id="menu-item-78761" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-78761"><a href="https://rmarketingdigital.com/de/trabaja-con-nosotros/" data-wpel-link="internal">Arbeite mit uns</a></li> <li id="menu-item-129594" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-129594"><a href="#" aria-haspopup="true" aria-expanded="false">Idiom</a> <ul class="sub-menu"> <li id="menu-item-129687" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-129687"><a href="https://rmarketingdigital.com/en/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/en_US.png" width="18" height="12" alt="en_US" title="English"><span class="trp-ls-language-name">English</span></span></a></li> <li id="menu-item-129591" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher current-language-menu-item menu-item-129591"><a href="https://rmarketingdigital.com/de/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="internal"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/de_DE.png" width="18" height="12" alt="de_DE" title="Deutsch"><span class="trp-ls-language-name">Deutsch</span></span></a></li> <li id="menu-item-129593" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-129593"><a href="https://rmarketingdigital.com/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/es_ES.png" width="18" height="12" alt="es_ES" title="Español"><span class="trp-ls-language-name">Español</span></span></a></li> <li id="menu-item-129635" class="trp-language-switcher-container menu-item menu-item-type-post_type menu-item-object-language_switcher menu-item-129635"><a href="https://rmarketingdigital.com/fr/dev/guia-para-desarrolladores-de-aplicaciones-de-pago-de-android/" data-wpel-link="external" target="_self" rel="nofollow external noopener noreferrer"><span data-no-translation><img class="trp-flag-image" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/images/flags/fr_FR.png" width="18" height="12" alt="fr_FR" title="Français"><span class="trp-ls-language-name">Français</span></span></a></li> </ul> </li> </ul></div></div> </div> <div class="bottom-meta-wrap"><ul class="off-canvas-social-links"><li><a target="_self" rel="noopener nofollow external noreferrer" href="https://www.facebook.com/R-Marketing-Digital-1995820950678942/" data-wpel-link="external"><span class="screen-reader-text">Facebook</span><i class="fa fa-facebook"></i></a></li><li><a target="_self" rel="noopener nofollow external noreferrer" href="https://www.linkedin.com/company/r-marketing-digital/" data-wpel-link="external"><span class="screen-reader-text">Linkedin</span><i class="fa fa-linkedin"></i></a></li><li><a target="_self" rel="noopener nofollow external noreferrer" href="https://www.instagram.com/rmarketingdigital/" data-wpel-link="external"><span class="screen-reader-text">instagram</span><i class="fa fa-instagram"></i></a></li><li><a target="_self" rel="noopener nofollow external noreferrer" href="http://m.me/rmarketingdigital" data-wpel-link="external"><span class="screen-reader-text">Telefon</span><i class="fa fa-phone"></i></a></li><li><a target="_blank" rel="noopener" href="mailto:hola@rmarketingdigital.com"><span class="screen-reader-text">Email</span><i class="fa fa-envelope"></i></a></li></ul></div><!--/bottom-meta-wrap--></div> <!--/inner-wrap--> </div> </div> <!--/ajax-content-wrap--> <template id="tp-language" data-tp-language="de_DE"></template> <!-- Lockers: user tracker for visibility filters OnePress, bizpanda.com --> <script> window.__bp_session_timeout = '900'; window.__bp_session_freezing = 0; window.bizpanda||(window.bizpanda={}),window.bizpanda.bp_can_store_localy=function(){return!1},window.bizpanda.bp_ut_get_cookie=function(e){for(var n=e+"=",i=document.cookie.split(";"),o=0;o<i.length;o++){for(var t=i[o];" "==t.charAt(0);)t=t.substring(1);if(0==t.indexOf(n))return decodeURIComponent(t.substring(n.length,t.length))}return!1},window.bizpanda.bp_ut_set_cookie=function(e,n,i){var o=new Date;o.setTime(o.getTime()+24*i*60*60*1e3);var t="expires="+o.toUTCString();document.cookie=e+"="+encodeURIComponent(n)+"; "+t+"; path=/"},window.bizpanda.bp_ut_get_obj=function(e){var n=null;if(!(n=window.bizpanda.bp_can_store_localy()?window.localStorage.getItem("bp_ut_session"):window.bizpanda.bp_ut_get_cookie("bp_ut_session")))return!1;n=(n=n.replace(/\-c\-/g,",")).replace(/\-q\-/g,'"');try{n=JSON.parse(n)}catch(e){return!1}return n.started+1e3*e<(new Date).getTime()&&(n=null),n},window.bizpanda.bp_ut_set_obj=function(e,n){e.started&&window.__bp_session_freezing||(e.started=(new Date).getTime()),(e=JSON.stringify(e))&&(e=(e=e.replace(/\"/g,"-q-")).replace(/\,/g,"-c-")),window.bizpanda.bp_can_store_localy()?window.localStorage.setItem("bp_ut_session",e):window.bizpanda.bp_ut_set_cookie("bp_ut_session",e,5e3)},window.bizpanda.bp_ut_count_pageview=function(){var e=window.bizpanda.bp_ut_get_obj(window.__bp_session_timeout);e||(e={}),e.pageviews||(e.pageviews=0),0===e.pageviews&&(e.referrer=document.referrer,e.landingPage=window.location.href,e.pageviews=0),e.pageviews++,window.bizpanda.bp_ut_set_obj(e)},window.bizpanda.bp_ut_count_locker_pageview=function(){var e=window.bizpanda.bp_ut_get_obj(window.__bp_timeout);e||(e={}),e.lockerPageviews||(e.lockerPageviews=0),e.lockerPageviews++,window.bizpanda.bp_ut_set_obj(e)},window.bizpanda.bp_ut_count_pageview(); </script> <!-- / --> <link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='main-styles-non-critical-css' href='https://rmarketingdigital.com/wp-content/themes/salient/css/build/style-non-critical.css?ver=17.0.3' type='text/css' media='all' /> <link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='fancyBox-css' href='https://rmarketingdigital.com/wp-content/themes/salient/css/build/plugins/jquery.fancybox.css?ver=3.3.1' type='text/css' media='all' /> <link data-pagespeed-no-defer data-nowprocket data-wpacu-skip data-no-optimize data-noptimize rel='stylesheet' id='nectar-ocm-core-css' href='https://rmarketingdigital.com/wp-content/themes/salient/css/build/off-canvas/core.css?ver=17.0.3' type='text/css' media='all' /> <script type="text/javascript" id="trp-dynamic-translator-js-extra"> /* <![CDATA[ */ var trp_data = {"trp_custom_ajax_url":"https:\/\/rmarketingdigital.com\/wp-content\/plugins\/translatepress-multilingual-290\/includes\/trp-ajax.php","trp_wp_ajax_url":"https:\/\/rmarketingdigital.com\/wp-admin\/admin-ajax.php","trp_language_to_query":"de_DE","trp_original_language":"es_ES","trp_current_language":"de_DE","trp_skip_selectors":["[data-no-translation]","[data-no-dynamic-translation]","[data-trp-translate-id-innertext]","script","style","head","trp-span","translate-press","[data-trp-translate-id]","[data-trpgettextoriginal]","[data-trp-post-slug]"],"trp_base_selectors":["data-trp-translate-id","data-trpgettextoriginal","data-trp-post-slug"],"trp_attributes_selectors":{"text":{"accessor":"outertext","attribute":false},"block":{"accessor":"innertext","attribute":false},"image_src":{"selector":"img[src]","accessor":"src","attribute":true},"submit":{"selector":"input[type='submit'],input[type='button'], input[type='reset']","accessor":"value","attribute":true},"placeholder":{"selector":"input[placeholder],textarea[placeholder]","accessor":"placeholder","attribute":true},"title":{"selector":"[title]","accessor":"title","attribute":true},"a_href":{"selector":"a[href]","accessor":"href","attribute":true},"button":{"accessor":"outertext","attribute":false},"option":{"accessor":"innertext","attribute":false},"aria_label":{"selector":"[aria-label]","accessor":"aria-label","attribute":true},"image_alt":{"selector":"img[alt]","accessor":"alt","attribute":true},"meta_desc":{"selector":"meta[name=\"description\"],meta[property=\"og:title\"],meta[property=\"og:description\"],meta[property=\"og:site_name\"],meta[property=\"og:image:alt\"],meta[name=\"twitter:title\"],meta[name=\"twitter:description\"],meta[name=\"twitter:image:alt\"],meta[name=\"DC.Title\"],meta[name=\"DC.Description\"],meta[property=\"article:section\"],meta[property=\"article:tag\"]","accessor":"content","attribute":true},"page_title":{"selector":"title","accessor":"innertext","attribute":false},"meta_desc_img":{"selector":"meta[property=\"og:image\"],meta[property=\"og:image:secure_url\"],meta[name=\"twitter:image\"]","accessor":"content","attribute":true}},"trp_attributes_accessors":["outertext","innertext","src","value","placeholder","title","href","aria-label","alt","content"],"gettranslationsnonceregular":"a63491b7cc","showdynamiccontentbeforetranslation":"","skip_strings_from_dynamic_translation":[],"skip_strings_from_dynamic_translation_for_substrings":{"href":["amazon-adsystem","googleads","g.doubleclick"]},"duplicate_detections_allowed":"100","trp_translate_numerals_opt":"no","trp_no_auto_translation_selectors":["[data-no-auto-translation]"]}; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/translatepress-multilingual-290/assets/js/trp-translate-dom-changes.js?ver=2.9.0" id="trp-dynamic-translator-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-includes/js/dist/hooks.min.js?ver=2810c76e705dd1a53b18" id="wp-hooks-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0" id="swv-js"></script> <script type="text/javascript" id="contact-form-7-js-translations"> /* <![CDATA[ */ ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "contact-form-7", {"translation-revision-date":"2024-11-18 03:02:02+0000","generator":"GlotPress\/4.0.1","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"de"},"This contact form is placed in the wrong place.":["Dieses Kontaktformular wurde an der falschen Stelle platziert."],"Error:":["Fehler:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); /* ]]> */ </script> <script type="text/javascript" id="contact-form-7-js-before"> /* <![CDATA[ */ var wpcf7 = { "api": { "root": "https:\/\/rmarketingdigital.com\/de\/wp-json\/", "namespace": "contact-form-7\/v1" } }; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0" id="contact-form-7-js"></script> <script type="text/javascript" id="wpcf7-redirect-script-js-extra"> /* <![CDATA[ */ var wpcf7r = {"ajax_url":"https:\/\/rmarketingdigital.com\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/wpcf7-redirect/build/js/wpcf7r-fe.js?ver=1.1" id="wpcf7-redirect-script-js"></script> <script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra"> /* <![CDATA[ */ var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":""}; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.69.1" id="ez-toc-scroll-scriptjs-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1" id="ez-toc-js-cookie-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2" id="ez-toc-jquery-sticky-kit-js"></script> <script type="text/javascript" id="ez-toc-js-js-extra"> /* <![CDATA[ */ var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>","chamomile_theme_is_on":""}; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.69.1-1730279170" id="ez-toc-js-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/jquery.easing.min.js?ver=1.3" id="jquery-easing-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/jquery.mousewheel.min.js?ver=3.1.13" id="jquery-mousewheel-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/priority.js?ver=17.0.3" id="nectar_priority-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/transit.min.js?ver=0.9.9" id="nectar-transit-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/waypoints.js?ver=4.0.2" id="nectar-waypoints-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/salient-portfolio/js/third-party/imagesLoaded.min.js?ver=4.1.4" id="imagesLoaded-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/hoverintent.min.js?ver=1.9" id="hoverintent-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/jquery.fancybox.js?ver=3.3.9" id="fancyBox-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/anime.min.js?ver=4.5.1" id="anime-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/stickkit.js?ver=1.0" id="stickykit-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/superfish.js?ver=1.5.8" id="superfish-js"></script> <script type="text/javascript" id="nectar-frontend-js-extra"> /* <![CDATA[ */ var nectarLove = {"ajaxurl":"https:\/\/rmarketingdigital.com\/wp-admin\/admin-ajax.php","postID":"93401","rooturl":"https:\/\/rmarketingdigital.com\/de\/","disqusComments":"false","loveNonce":"f0714eae87","mapApiKey":""}; var nectarOptions = {"delay_js":"false","smooth_scroll":"false","smooth_scroll_strength":"50","quick_search":"false","react_compat":"disabled","header_entrance":"false","body_border_func":"default","body_border_mobile":"0","dropdown_hover_intent":"default","simplify_ocm_mobile":"0","mobile_header_format":"default","ocm_btn_position":"default","left_header_dropdown_func":"default","ajax_add_to_cart":"0","ocm_remove_ext_menu_items":"remove_images","woo_product_filter_toggle":"0","woo_sidebar_toggles":"true","woo_sticky_sidebar":"0","woo_minimal_product_hover":"default","woo_minimal_product_effect":"default","woo_related_upsell_carousel":"false","woo_product_variable_select":"default","woo_using_cart_addons":"false","view_transitions_effect":""}; var nectar_front_i18n = {"menu":"Menu","next":"Next","previous":"Previous","close":"Close"}; /* ]]> */ </script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/init.js?ver=17.0.3" id="nectar-frontend-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/salient-core/js/third-party/touchswipe.min.js?ver=1.0" id="touchswipe-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/select2.min.js?ver=4.0.1" id="select2-js"></script> <script type="text/javascript" src="https://rmarketingdigital.com/wp-content/plugins/glossary-by-codeat-premium/assets/js/off-screen.js?ver=2.0.13" id="glossary-off-screen-js"></script> <script></script></body> </html><script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="d14cd99445440d4438d94fb4-|49" defer></script>