Source code

Revision control

Copy as Markdown

Other Tools

/* -*- 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_CONTRACT_ID \
"@mozilla.org/dom/payments/payment-request-service;1"
%}