| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module payments.mojom; |
| |
| import "components/payments/mojom/payment_request.mojom"; |
| import "mojo/common/time.mojom"; |
| import "url/mojo/url.mojom"; |
| |
| enum PaymentAppManifestError { |
| NONE, |
| NOT_IMPLEMENTED, |
| NO_ACTIVE_WORKER, |
| MANIFEST_STORAGE_OPERATION_FAILED, |
| }; |
| |
| struct PaymentAppOption { |
| string name; |
| string? icon; |
| string id; |
| array<string> enabled_methods; |
| }; |
| |
| struct PaymentAppManifest { |
| string name; |
| string? icon; |
| array<PaymentAppOption> options; |
| }; |
| |
| enum PaymentHandlerStatus { |
| SUCCESS, |
| NOT_IMPLEMENTED, |
| NOT_FOUND, |
| NO_ACTIVE_WORKER, |
| STORAGE_OPERATION_FAILED, |
| }; |
| |
| struct PaymentInstrument { |
| string name; |
| array<string> enabled_methods; |
| string stringified_capabilities; |
| }; |
| |
| interface PaymentManager { |
| Init(string service_worker_scope); |
| SetManifest(PaymentAppManifest payment_app_manifest) |
| => (PaymentAppManifestError error); |
| GetManifest() |
| => (PaymentAppManifest payment_app_manifest, PaymentAppManifestError error); |
| DeletePaymentInstrument(string instrument_key) |
| => (PaymentHandlerStatus status); |
| SetPaymentInstrument(string instrument_key, PaymentInstrument instrument) |
| => (PaymentHandlerStatus status); |
| GetPaymentInstrument(string instrument_key) |
| => (PaymentInstrument instrument, PaymentHandlerStatus status); |
| }; |
| |
| struct PaymentAppRequest { |
| url.mojom.Url origin; |
| array<PaymentMethodData> method_data; |
| PaymentItem total; |
| array<PaymentDetailsModifier> modifiers; |
| string option_id; |
| }; |
| |
| struct PaymentAppResponse { |
| string method_name; |
| string stringified_details; |
| }; |
| |
| // This interface is provided to pass a payment app response from payment |
| // request event in renderer side to browser side by calling respondWith(). |
| interface PaymentAppResponseCallback { |
| OnPaymentAppResponse(PaymentAppResponse response, |
| mojo.common.mojom.Time dispatch_event_time); |
| }; |