forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /* -*- 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"
 | |
| %}
 | 
