diff options
Diffstat (limited to 'dom/interfaces/payments/nsIPaymentRequestService.idl')
-rw-r--r-- | dom/interfaces/payments/nsIPaymentRequestService.idl | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/dom/interfaces/payments/nsIPaymentRequestService.idl b/dom/interfaces/payments/nsIPaymentRequestService.idl new file mode 100644 index 0000000000..34c296df94 --- /dev/null +++ b/dom/interfaces/payments/nsIPaymentRequestService.idl @@ -0,0 +1,102 @@ +/* -*- 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 "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 address 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); + + /** + * Inform the merchant the payer's details changed in the PaymentResponse. + * @param requestId - the request identifier of the payment request. + * @param aPayerName - the changed payer's name. + * @param aPayerEmail - the changed payer's email. + * @param aPayerPhone - the changed payer's phone. + */ + void changePayerDetail(in AString requestId, + in AString aPayerName, + in AString aPayerEmail, + in AString aPayerPhone); + + /** + * Inform the merchant the payment method has changed. + * @param requestId - the request identifier of the payment request. + * @param aMethodName - the changed payment method's name. + * @param aMethodDetails - the changed payment method's details. + */ + void changePaymentMethod(in AString requestId, + in AString aMethodName, + in nsIMethodChangeDetails aMethodDetails); + + + /** + * 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); +}; + +%{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" +%} |