1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
/* -*- Mode: C++; 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/. */
#include "nsISupports.idl"
#include "nsIPaymentActionResponse.idl"
/**
* nsIPaymentUIService is the interface used by Gecko to communicate with the
* payment UI.
* In general, the implementation of this interface should be a service that
* manages all payment UI components and receives the requested payment actions
* from Gecko and perform the corresponding UI behavior.
*/
[scriptable, uuid(01f8bd55-9017-438b-85ec-7c15d2b35cdc)]
interface nsIPaymentUIService : nsISupports
{
/**
* Show the payment UI to users.
* The implementation gets the payment data through nsIPaymentRequestService
* by the passed in requestId, then shows the payment UI and start to interact
* with users.
* According to user's action, nsIPaymentRequestService's APIs respondPayment,
* changeShippingAddress, or changeShippingOtpion is possible to called in the
* implementation.
* @param requestId - the request identify of the payment request.
* Notice that this requestId is an internal request Id
* generated by Gecko
*/
void showPayment(in AString requestId);
/**
* Abort the payment.
* The implementation must abort and close the showing payment UI then call
* nsIPaymentRequestService respondPayment with nsIPaymentAbortActionResponse
* to inform Gecko of the abort status.
* @param requestId - the request identify of the payment request.
* Notice that this requestId is an internal request Id
* generated by Gecko
*/
void abortPayment(in AString requestId);
/**
* Complete the payment.
* The implementation should close the showing payment UI, then call
* nsIPaymentRequestService respondPayment with nsIPaymentCompleteActionResponse
* to inform Gecko of the complete status.
* @param requestId - the request identify of the payment request.
* Notice that this requestId is an internal request Id
* generated by Gecko
*/
void completePayment(in AString requestId);
/**
* Update the payment data in the payment UI.
* The implementation should get the updated payment data through the
* nsIPaymentRequestService again, and update the UI.
* @param requestId - the request identify of the payment request.
* Notice that this requestId is an internal request Id
* generated by Gecko
*/
void updatePayment(in AString requestId);
/**
* Close the payment UI for the specified PaymentRequest.
* The implementation should clean up the PaymentRequest data saved in the UI
* component and close the UI if the specified PaymentRequest is showing to
* the user.
* Notice when the method is called, that means the PaymentRequest is invalid
* in nsIPaymentRequestService.
* @param requestId - the request identify of the payment request.
* Notice that this requestId is an internal request Id
* generated by Gecko
*/
void closePayment(in AString requestId);
};
%{C++
#define NS_PAYMENT_UI_SERVICE_CONTRACT_ID \
"@mozilla.org/dom/payments/payment-ui-service;1"
%}
|