PaymentRequest: canMakePayment() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die Methode canMakePayment()
des PaymentRequest
bestimmt, ob die Anfrage so konfiguriert ist, dass sie mit mindestens einer Zahlungsart kompatibel ist, die vom User-Agent unterstützt wird.
Sie können dies vor dem Aufruf von show()
verwenden, um eine optimierte Benutzererfahrung zu bieten, wenn der Browser des Benutzers keine der von Ihnen akzeptierten Zahlungsmethoden verarbeiten kann.
Zum Beispiel könnten Sie canMakePayment()
aufrufen, um zu bestimmen, ob der Browser es dem Benutzer erlaubt, die Payment Request API zu nutzen. Falls dies nicht möglich ist, könnten Sie auf eine andere Zahlungsmethode zurückgreifen oder eine Liste von Methoden anbieten, die nicht von der Payment Request API behandelt werden (oder sogar Anweisungen zum Bezahlen per Post oder Telefon bereitstellen).
Syntax
canMakePayment()
Parameter
Keine.
Rückgabewert
Ein Promise
auf einen booleschen Wert, der zu true
aufgelöst wird, wenn der User-Agent eine der beim Erstellen der Anfrage mit dem PaymentRequest
Konstruktor angegebenen Zahlungsmethoden unterstützt. Kann die Zahlung nicht verarbeitet werden, erhält das Promise den Wert false
.
Hinweis:
Wenn Sie dies zu oft aufrufen, kann der Browser das zurückgegebene Promise mit einem DOMException
ablehnen.
Beispiele
Im folgenden Beispiel, aus einer Demo entnommen, wird ein PaymentRequest
-Objekt sowohl für Apple Pay als auch für Example Pay asynchron erstellt. Der Aufruf von canMakePayment()
wird in eine Feature-Erkennung eingebunden und abhängig von der Auflösung des Promise
wird ein geeigneter Rückruf aufgerufen.
async function initPaymentRequest() {
const details = {
total: {
label: "Total",
amount: {
currency: "USD",
value: "0.00",
},
},
};
const supportsApplePay = new PaymentRequest(
[{ supportedMethods: "https://apple.com/apple-pay" }],
details,
).canMakePayment();
// Supports Apple Pay?
if (await supportsApplePay) {
// show Apple Pay logo, for instance
return;
}
// Otherwise, let's see if we can use Example Pay
const supportsExamplePay = await new PaymentRequest(
[{ supportedMethods: "https://example.com/pay" }],
details,
).canMakePayment();
if (supportsExamplePay) {
// show Example Pay support
return;
}
// Otherwise, make payments using HTML form element
}
Spezifikationen
Specification |
---|
Payment Request API # dom-paymentrequest-canmakepayment |
Browser-Kompatibilität
BCD tables only load in the browser