PaymentCoordinatorClient.h [plain text]
#pragma once
#if ENABLE(APPLE_PAY)
#include "ApplePaySessionPaymentRequest.h"
#include "ApplePaySetupFeatureWebCore.h"
#include <wtf/CompletionHandler.h>
#include <wtf/Forward.h>
#include <wtf/Function.h>
namespace WebCore {
class Document;
class PaymentMerchantSession;
class PaymentMethodUpdate;
struct ApplePaySetupConfiguration;
struct PaymentAuthorizationResult;
struct ShippingContactUpdate;
struct ShippingMethodUpdate;
class PaymentCoordinatorClient {
public:
bool supportsVersion(unsigned version);
virtual Optional<String> validatedPaymentNetwork(const String&) = 0;
virtual bool canMakePayments() = 0;
virtual void canMakePaymentsWithActiveCard(const String& merchantIdentifier, const String& domainName, CompletionHandler<void(bool)>&&) = 0;
virtual void openPaymentSetup(const String& merchantIdentifier, const String& domainName, CompletionHandler<void(bool)>&&) = 0;
virtual bool showPaymentUI(const URL& originatingURL, const Vector<URL>& linkIconURLs, const ApplePaySessionPaymentRequest&) = 0;
virtual void completeMerchantValidation(const PaymentMerchantSession&) = 0;
virtual void completeShippingMethodSelection(Optional<ShippingMethodUpdate>&&) = 0;
virtual void completeShippingContactSelection(Optional<ShippingContactUpdate>&&) = 0;
virtual void completePaymentMethodSelection(Optional<PaymentMethodUpdate>&&) = 0;
virtual void completePaymentSession(Optional<PaymentAuthorizationResult>&&) = 0;
virtual void abortPaymentSession() = 0;
virtual void cancelPaymentSession() = 0;
virtual void paymentCoordinatorDestroyed() = 0;
virtual bool supportsUnrestrictedApplePay() const = 0;
virtual String userAgentScriptsBlockedErrorMessage() const { return { }; }
virtual bool isMockPaymentCoordinator() const { return false; }
virtual bool isWebPaymentCoordinator() const { return false; }
virtual bool isAlwaysOnLoggingAllowed() const { return false; }
virtual void getSetupFeatures(const ApplePaySetupConfiguration&, const URL&, CompletionHandler<void(Vector<Ref<ApplePaySetupFeature>>&&)>&& completionHandler) { completionHandler({ }); }
virtual void beginApplePaySetup(const ApplePaySetupConfiguration&, const URL&, Vector<RefPtr<ApplePaySetupFeature>>&&, CompletionHandler<void(bool)>&& completionHandler) { completionHandler(false); }
virtual void endApplePaySetup() { }
protected:
virtual ~PaymentCoordinatorClient() = default;
};
}
#endif