зеркало из https://github.com/mozilla/gecko-dev.git
97 строки
3.4 KiB
Plaintext
97 строки
3.4 KiB
Plaintext
/* -*- 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 "nsIVariant.idl"
|
|
#include "nsIPaymentRequest.idl"
|
|
#include "nsIPaymentActionRequest.idl"
|
|
#include "nsIPaymentActionResponse.idl"
|
|
#include "nsIPaymentAddress.idl"
|
|
#include "nsISimpleEnumerator.idl"
|
|
#include "nsIPaymentUIService.idl"
|
|
|
|
/**
|
|
* nsPaymentRequestService is used to manage the created PaymentRequest in the
|
|
* chrome process. It is also the IPC agent for payment UI to communicate with
|
|
* merchant side.
|
|
*/
|
|
[scriptable, builtinclass, uuid(cccd665f-edf3-41fc-ab9b-fc55b37340aa)]
|
|
interface nsIPaymentRequestService : nsISupports
|
|
{
|
|
/**
|
|
* Get the nsIPaymentRequest through the given payment request identifier.
|
|
* @param aRequestId - the payment request identifier.
|
|
* This is an internal id generated by Gecko.
|
|
* @return - the requested payment request. null if there is no
|
|
* coressponding nsIPaymentRequest for aRequestId.
|
|
*/
|
|
nsIPaymentRequest getPaymentRequestById(in AString aRequestId);
|
|
|
|
/**
|
|
* Get the enumerator for all managed nsIPaymentRequests.
|
|
* @return - an enumerator for all managed nsIPaymentRequests.
|
|
*/
|
|
nsISimpleEnumerator enumerate();
|
|
|
|
/**
|
|
* Send the user's response to the merchant.
|
|
* @param aResponse - the user's response.
|
|
*/
|
|
void respondPayment(in nsIPaymentActionResponse aResponse);
|
|
|
|
/**
|
|
* Inform the merchant the shipping addres has changed.
|
|
* @param requestId - the request identifier of the payment request.
|
|
* @param aAddress - the new payment address.
|
|
*/
|
|
void changeShippingAddress(in AString requestId, in nsIPaymentAddress aAddress);
|
|
|
|
/**
|
|
* Inform the merchant the shipping option has changed.
|
|
* @param requestId - the request identifier of the payment request.
|
|
* @param option - the shipping option ID string.
|
|
*/
|
|
void changeShippingOption(in AString requestId, in AString option);
|
|
|
|
/**
|
|
* Following APIs are for testing or platform code only. UI implementation
|
|
* should not use them.
|
|
*/
|
|
/**
|
|
* Clean up the all managed payment requests.
|
|
* This API is for testing only.
|
|
*/
|
|
void cleanup();
|
|
|
|
/**
|
|
* Setup the customized nsIPaymentUIService.
|
|
* This API is for testing only.
|
|
*/
|
|
void setTestingUIService(in nsIPaymentUIService aUIService);
|
|
|
|
/**
|
|
* Request a specified action on the specified PaymentRequest.
|
|
* @param aRequest - the requested action.
|
|
*/
|
|
void requestPayment(in nsIPaymentActionRequest aRequest);
|
|
|
|
/**
|
|
* This is a cleanup function to break the association between
|
|
* nsIPaymentRequestService and nsIPaymentActionCallback.
|
|
* nsIPaymentActionCallback is an interface that registered to
|
|
* nsIPaymentRequestService when the merchant asks to perform actions, and it
|
|
* will be called when user's response send back to nsIPaymentRequestService.
|
|
* @param aCallback - the specified nsIPaymentActionCallback.
|
|
*/
|
|
void removeActionCallback(in nsIPaymentActionCallback aCallback);
|
|
};
|
|
|
|
%{C++
|
|
#define NS_PAYMENT_REQUEST_SERVICE_CID \
|
|
{ 0xcccd665f, 0xedf3, 0x41fc, { 0xab, 0x9b, 0xfc, 0x55, 0xb3, 0x73, 0x40, 0xaa } }
|
|
#define NS_PAYMENT_REQUEST_SERVICE_CONTRACT_ID \
|
|
"@mozilla.org/dom/payments/payment-request-service;1"
|
|
%}
|