/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * The origin of this WebIDL file is * https://www.w3.org/TR/payment-request/#paymentrequest-interface */ dictionary PaymentMethodData { required DOMString supportedMethods; object data; }; dictionary PaymentCurrencyAmount { required DOMString currency; required DOMString value; DOMString currencySystem = "urn:iso:std:iso:4217"; }; enum PaymentItemType { "tax" }; dictionary PaymentItem { required DOMString label; required PaymentCurrencyAmount amount; boolean pending = false; PaymentItemType type; }; dictionary PaymentShippingOption { required DOMString id; required DOMString label; required PaymentCurrencyAmount amount; boolean selected = false; }; dictionary PaymentDetailsModifier { required DOMString supportedMethods; PaymentItem total; sequence additionalDisplayItems; object data; }; dictionary PaymentDetailsBase { sequence displayItems; sequence shippingOptions; sequence modifiers; }; dictionary PaymentDetailsInit : PaymentDetailsBase { DOMString id; required PaymentItem total; }; dictionary AddressErrors { DOMString addressLine; DOMString city; DOMString country; DOMString dependentLocality; DOMString languageCode; DOMString organization; DOMString phone; DOMString postalCode; DOMString recipient; DOMString region; DOMString regionCode; DOMString sortingCode; }; dictionary PaymentDetailsUpdate : PaymentDetailsBase { DOMString error; AddressErrors shippingAddressErrors; PaymentItem total; }; enum PaymentShippingType { "shipping", "delivery", "pickup" }; dictionary PaymentOptions { boolean requestPayerName = false; boolean requestPayerEmail = false; boolean requestPayerPhone = false; boolean requestShipping = false; PaymentShippingType shippingType = "shipping"; }; [Constructor(sequence methodData, PaymentDetailsInit details, optional PaymentOptions options), SecureContext, Func="mozilla::dom::PaymentRequest::PrefEnabled"] interface PaymentRequest : EventTarget { [NewObject] Promise show(optional Promise detailsPromise); [NewObject] Promise abort(); [NewObject] Promise canMakePayment(); readonly attribute DOMString id; readonly attribute PaymentAddress? shippingAddress; readonly attribute DOMString? shippingOption; readonly attribute PaymentShippingType? shippingType; attribute EventHandler onshippingaddresschange; attribute EventHandler onshippingoptionchange; attribute EventHandler onpaymentmethodchange; };