Aprenda a adaptar su aplicación de pago de Android para que funcione con Pagos web y brinde una mejor BenutzererfahrungEl término experiencia de usuario (UX) se refiere a la experiencia que un usuario tiene con un producto o servicio. En cuanto a Internet, el término se usa frecuentemente al examinar la experiencia que los usuarios disponen con una web. Esto además puede ser en referencia al uso de un dispositivo smartphone (UX smartphone). Items de la experiencia del usuario La experiencia del usuario y la usabilidad se usan frecuentemente Plus a los clientes.

das Zahlungsanforderungs-API trae a la web una interfaz integrada basada en BrowserUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los Plus que permite a los usuarios ingresar la información de pago requerida más fácil que nunca. La APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene Plus también puede invocar aplicaciones de pago específicas de la plataforma.

Zahlungsfluss mit der plattformspezifischen Google Pay-Anwendung, die Web Payments verwendet.

Im Vergleich zur Verwendung von nur Android Intents ermöglichen Webzahlungen eine bessere Browserintegration, Sicherheit und Benutzererfahrung:

  • 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 informática, el término hardware se refiere a cualquier componente de un sistema informático que sea un objeto físico real, al contrario que el software que existe en forma digital. Esto incluye el disco duro y las unidades incorporadas, es decir, todos los componentes que son "duros", de ahí su nombre. Desarrollo El desarrollo del hardware informático comienza con la creación de los primeros ordenadores y tiene su verdadero origen Plus 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. Informieren Sie einen Händler, wenn ein Kunde über ein registriertes Instrument (z. B. eine Kreditkarte) verfügt, dass er zur Zahlung bereit ist.
  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 BrowserConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet Plus 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 InhaltEl contenido puede ser muy difícil de definir con precisión. Es una definición que se refiere a las declaraciones contenidas en un documento o publicación de cualquier tipo y puede incluir las tecnologías de la información y la comunicación. Esto cubre todos los tipos de medios como imágenes y texto. A parte de esto, en el campo de la optimización de motores de búsqueda, los términos duplicar contenido, contenido único, Plus:

AppConcepto de APP¿Qué es una APP?Una App es todo aquel programa que se ejecuta desde una interfaz teléfono celular, es decir, desde un móvil o una tablet. Consiste en la herramienta principal para cualquier usuario que tenga un teléfono teléfono celular, de todo el software que se mueve en tiendas digitales como Google Play Store o la App Store y que tanto se adentra en cualquier terminal moderno.Es un concepto Plus / 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, httpsHTTPS (protocolo de Transferencia de Hiper-Texto) es un protocolo que permite determinar una conexión segura entre el servidor y el cliente, que no puede ser interceptada por personas no autorizadas. En resumidas cuentas, es la versión segura de el http (Hyper Text Transfer Protocol) Cómo funciona Una conexión HTTP estándar en Internet puede ser fácilmente secuestrada por partes no autorizadas. El propósito de una conexión HTTPS es evitar esto: encriptar Plus://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 SSLLa encriptación SSL (Secure Socket Layer) proporciona una conexión segura entre el cliente y el servidor. Consiste en un protocolo de Internet que permite encriptar datos sensibles (como información de pago, datos de tarjetas de crédito) y hacerlos ilegibles a terceros. Al mismo tiempo, un certificado confirma que el servidor es fiable. En este momento, además se le llama TLS (Transport Layer Security). Relevancia SSL es un método de cifrado Plus. 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 iframeConcepto de Iframe¿Qué es un Iframe?Un Iframe es un documento de una web que se inserta en otra página web. Consiste en un elemento que puede albergar cualquier tipo de contenido en su interior y que ayuda, entre otras cosas, a ampliar el mensaje que se ofrece con fuentes externas o con material complementario que pueda resultar de interés para el usuario que entra.Este elemento web se usa especialmente al Plus que invocaba neue PaymentRequest (methodData, Details, Optionen) constructor en JavaScriptJavaScript es un lenguaje de programación que funciona en el lado del cliente y con el que las webs pueden ser más funcionales. Incorporación en código HTML El código JavaScript puede ser incrustado en las páginas HTML, para que adquieran funcionalidad. Existen varias opciones. Puede estar entre las etiquetas <SCRIPT> y </SCRIPT>, puede estar contenido en un archivo externo, puede ser un parámetro de las etiquetas HTML, y puede estar Plus. 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 UrlEl URL (Localizador Uniforme de Recursos), es una dirección definida que apunta a la posición de un archivo en un servidor y lo recupera. Las URL se introducen en un navegador web para ingresar a documentos en la web o se incrustan como hipervínculos dentro de un documento. Se puede usar un Permalink para que una URL esté disponible de forma permanente. Componentes de una URL • prefijo de protocolo Plus 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 <span class="glossaryai-tooltip glossary-term-69502"><span class="glossaryai-link"><a href="https://rmarketingdigital.com/de/wiki/html/" target="_blank" data-wpel-link="internal">HTML</a></span><span class="gai-content-hidden glossaryai-tooltip-content"><span class="gai-tooltip-body"><span class="glossaryai-tooltip-text">HTML (Hypertext Markup Language) se usa para estructurar el contenido de texto de un documento web. No sólo se marca el contenido, sino además la meta-información que describe este contenido. Las páginas HTML se almacenan normalmente en el directorio raíz del servidor. Cómo se creó En la era digital, a los usuarios les resulta difícil hallar su camino en las webs y hacer un seguimiento de las estructuras de las<span class="glossaryai-more-link"> <a href="https://rmarketingdigital.com/de/wiki/html/" data-wpel-link="internal">Plus</a></span></span></span></span></span> 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 <span class="glossaryai-tooltip glossary-term-67942"><span class="glossaryai-link"><a href="https://rmarketingdigital.com/de/wiki/ziel/" target="_blank" data-wpel-link="internal">Ziel</a></span><span class="gai-content-hidden glossaryai-tooltip-content"><span class="gai-tooltip-body"><span class="glossaryai-tooltip-text">¿Qué es un objetivo?En marketing, un objetivo es el resultado que se pretende alcanzar en un periodo de tiempo, a través el uso de los recursos disponibles. Por tanto, se debe formular de una forma clara y hace falta que sea accesible y medible.<span class="glossaryai-more-link"> <a href="https://rmarketingdigital.com/de/wiki/ziel/" data-wpel-link="internal">Plus</a></span></span></span></span></span> 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 class="glossaryai-tooltip glossary-term-68547"><span class="glossaryai-link"><a href="https://rmarketingdigital.com/de/wiki/ampere/" target="_blank" data-wpel-link="internal">Ampere</a></span><span class="gai-content-hidden glossaryai-tooltip-content"><span class="gai-tooltip-body"><span class="glossaryai-tooltip-text">Concepto de AMP¿Qué es el AMP o Accelerated Mobile Pages?El AMP, abreviatura de Accelerated Mobile Pages, es una propuesta que empezó a tomar forma en el año 2016 con la finalidad de mejorar la usabilidad, lectura y, en general, la experiencia de los usuarios de teléfono celular dentro de cualquier página web. Emprendida por Google con un aperturismo total (es de código abierto), lleva en activo desde entonces para facilitar<span class="glossaryai-more-link"> <a href="https://rmarketingdigital.com/de/wiki/ampere/" data-wpel-link="internal">Plus</a></span></span></span></span></span>;&</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_86 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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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">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="">Related 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" /></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/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' 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" /></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/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' 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 tag-chrome tag-mac"> <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" /></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/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=70&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=140&d=mm&r=g 2x' class='avatar avatar-70 photo' height='70' width='70' 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"role="contentinfo"> <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" srcset="https://rmarketingdigital.com/wp-content/uploads/2018/10/headerlogo-blanco-footer-1-150x55.png 150w, https://rmarketingdigital.com/wp-content/uploads/2018/10/headerlogo-blanco-footer-1-18x6.png 18w" sizes="(max-width: 150px) 100vw, 150px" /></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" srcset="https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage-1.jpg 220w, https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage-1-18x9.jpg 18w" sizes="(max-width: 220px) 100vw, 220px" /></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" srcset="https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage.png 220w, https://rmarketingdigital.com/wp-content/uploads/2019/06/Webp.net-resizeimage-18x9.png 18w" sizes="(max-width: 220px) 100vw, 220px" /></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/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/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/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/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>© 2026 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" role="dialog" aria-modal="true" aria-label="Off Canvas Menu" class="slide-out-from-right" data-dropdown-func="separate-dropdown-parent-link" data-back-txt="Zurück" data-no-translation-aria-label="" 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> </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> </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> <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> </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/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/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/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/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><script type="speculationrules"> {"prerender":[{"source":"document","where":{"and":[{"href_matches":"/de/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/salient/*","/de/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prerender, .no-prerender a"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"moderate"}]} </script> <script id="wp-hooks-js" src="https://rmarketingdigital.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script> <script id="wp-i18n-js" src="https://rmarketingdigital.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after </script> <script id="swv-js" src="https://rmarketingdigital.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.6"></script> <script id="contact-form-7-js-translations"> ( 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":"2026-06-28 19:30:34+0000","generator":"GlotPress\/4.0.3","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"}} ); //# sourceURL=contact-form-7-js-translations </script> <script id="contact-form-7-js-before"> var wpcf7 = { "api": { "root": "https:\/\/rmarketingdigital.com\/de\/wp-json\/", "namespace": "contact-form-7\/v1" } }; //# sourceURL=contact-form-7-js-before </script> <script id="contact-form-7-js" src="https://rmarketingdigital.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.6"></script> <script id="eztoc-scroll-scriptjs-js-extra"> var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":"","add_self_reference_link":""}; //# sourceURL=eztoc-scroll-scriptjs-js-extra </script> <script id="eztoc-scroll-scriptjs-js" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.86"></script> <script id="eztoc-js-cookie-js" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1"></script> <script id="eztoc-jquery-sticky-kit-js" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2"></script> <script id="eztoc-js-js-extra"> var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"\u003Cspan class=\"\"\u003E\u003Cspan class=\"eztoc-hide\" style=\"display:none;\"\u003EToggle\u003C/span\u003E\u003Cspan class=\"ez-toc-icon-toggle-span\"\u003E\u003Csvg 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\"\u003E\u003Cpath d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Csvg 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\"\u003E\u003Cpath 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\"/\u003E\u003C/svg\u003E\u003C/span\u003E\u003C/span\u003E","chamomile_theme_is_on":""}; //# sourceURL=eztoc-js-js-extra </script> <script id="eztoc-js-js" src="https://rmarketingdigital.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.86-1786201864"></script> <script id="jquery-easing-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/jquery.easing.min.js?ver=1.3"></script> <script id="nectar_priority-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/priority.js?ver=18.0.2"></script> <script id="nectar-transit-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/transit.min.js?ver=0.9.9"></script> <script id="nectar-waypoints-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/waypoints.js?ver=4.0.2"></script> <script id="imagesLoaded-js" src="https://rmarketingdigital.com/wp-content/plugins/salient-portfolio/js/third-party/imagesLoaded.min.js?ver=4.1.4"></script> <script id="hoverintent-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/hoverintent.min.js?ver=1.9"></script> <script id="fancyBox-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/jquery.fancybox.js?ver=18.0.2"></script> <script id="anime-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/anime.min.js?ver=4.5.1"></script> <script id="stickykit-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/stickkit.js?ver=18.0.2"></script> <script id="superfish-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/superfish.js?ver=1.5.8"></script> <script id="nectar-frontend-js-extra"> var nectarLove = {"ajaxurl":"https://rmarketingdigital.com/wp-admin/admin-ajax.php","postID":"93401","rooturl":"https://rmarketingdigital.com/de/","disqusComments":"false","loveNonce":"0064564d58","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","disable_box_roll_mobile":"false","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"}; //# sourceURL=nectar-frontend-js-extra </script> <script id="nectar-frontend-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/init.js?ver=18.0.2"></script> <script id="touchswipe-js" src="https://rmarketingdigital.com/wp-content/plugins/salient-core/js/third-party/touchswipe.min.js?ver=3.1.2"></script> <script id="select2-js" src="https://rmarketingdigital.com/wp-content/themes/salient/js/build/third-party/select2.min.js?ver=4.0.1"></script> <script id="glossaryai-off-screen-js" src="https://rmarketingdigital.com/wp-content/plugins/glossaryai-pro/assets/js/off-screen.js?ver=1.0.0"></script> <script id="glossaryai-youtube-tooltip-js" src="https://rmarketingdigital.com/wp-content/plugins/glossaryai-pro/assets/js/youtube-tooltip.js?ver=1.0.0"></script> <script id="glossaryai-mobile-tooltip-js-js" src="https://rmarketingdigital.com/wp-content/plugins/glossaryai-pro/assets/js/mobile-tooltip.js?ver=1.0.0"></script> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://rmarketingdigital.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}} </script> <script type="module"> /*! This file is auto-generated */ var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); //# sourceURL=https://rmarketingdigital.com/wp-includes/js/wp-emoji-loader.min.js </script> <script></script></body> </html>