lib/mws/off_amazon_payments.rb in peddler-0.8.0 vs lib/mws/off_amazon_payments.rb in peddler-0.9.0

- old
+ new

@@ -1,360 +2 @@ -require 'peddler/client' - -module MWS - # The Off-Amazon Payments API helps you to process payments for purchases - # made by buyers on your website using the Login and Pay with Amazon service. - # This API enables you to programmatically retrieve shipping and payment - # information provided by the buyer from their Amazon account. It allows you - # to authorize, capture, and refund payments, enabling a variety of payments - # scenarios. - # - # @note The Off-Amazon Payments API section is only applicable to payments - # made through the Login and Pay with Amazon service offered by Amazon - # Payments. You cannot use this API section to process payments for Amazon - # Marketplace, Amazon Webstore, or Checkout by Amazon. - class OffAmazonPayments < ::Peddler::Client - path '/OffAmazonPayments/2013-01-01/' - - # Switches the client to the sandbox environment - # - # @see https://payments.amazon.com/help/Checkout-by-Amazon/Using-the-Checkout-by-Amazon-Sandbox/Overview-of-the-Sandbox - # @return [self] - def sandbox - self.path = '/OffAmazonPayments_Sandbox/2013-01-01/' - self - end - - # Creates an order reference for the given object - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CreateOrderReferenceForId.html - # @param id [String] - # @param id_type [String] - # @param opts [Hash] - # @option opts [Boolean] :inherit_shipping_address - # @option opts [Boolean] :confirm_now - # @return [Peddler::XMLParser] - def create_order_reference_for_id(id, id_type, opts = {}) - operation('CreateOrderReferenceForId') - .add(opts.merge( - 'Id' => id, - 'IdType' => id_type - )) - - run - end - - # Returns details about the Billing Agreement object and its current state - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetBillingAgreementDetails.html - # @param amazon_billing_agreement_id [String] - # @param opts [Hash] - # @option opts [String] :address_consent_token - # @return [Peddler::XMLParser] - def get_billing_agreement_details(amazon_billing_agreement_id, opts = {}) - operation('GetBillingAgreementDetails') - .add(opts.merge( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id - )) - - run - end - - # Sets billing agreement details such as a description of the agreement and - # other information about the seller - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_SetBillingAgreementDetails.html - # @param amazon_billing_agreement_id [String] - # @param billing_agreement_attributes [Struct, Hash] - # @return [Peddler::XMLParser] - def set_billing_agreement_details(amazon_billing_agreement_id, billing_agreement_attributes) - operation('SetBillingAgreementDetails') - .add( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id, - 'BillingAgreementAttributes' => billing_agreement_attributes - ) - - run - end - - # Confirms that the billing agreement is free of constraints and all - # required information has been set on the billing agreement - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ConfirmBillingAgreement.html - # @param amazon_billing_agreement_id [String] - # @return [Peddler::XMLParser] - def confirm_billing_agreement(amazon_billing_agreement_id) - operation('ConfirmBillingAgreement') - .add( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id - ) - - run - end - - # Validates the status of the BillingAgreement object and the payment method - # associated with it - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ValidateBillingAgreement.html - # @param amazon_billing_agreement_id [String] - # @return [Peddler::XMLParser] - def validate_billing_agreement(amazon_billing_agreement_id) - operation('ValidateBillingAgreement') - .add( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id - ) - - run - end - - # Reserves a specified amount against the payment method(s) stored in the - # billing agreement - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_AuthorizeOnBillingAgreement.html - # @param amazon_billing_agreement_id [String] - # @param authorization_reference_id [String] - # @param authorization_amount [Hash, Struct] - # @param opts [Hash] - # @option opts [String] :seller_authorization_note - # @option opts [Integer] :transaction_timeout - # @option opts [Boolean] :capture_now - # @option opts [String] :soft_descriptor - # @option opts [String] :seller_note - # @option opts [String] :platform_id - # @option opts [Hash, Struct] :seller_order_attributes - # @option opts [Boolean] :inherit_shipping_address - # @return [Peddler::XMLParser] - def authorize_on_billing_agreement(amazon_billing_agreement_id, authorization_reference_id, authorization_amount, opts = {}) - operation('AuthorizeOnBillingAgreement') - .add(opts.merge( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id, - 'AuthorizationReferenceId' => authorization_reference_id, - 'AuthorizationAmount' => authorization_amount - )) - - run - end - - # Confirms that you want to terminate the billing agreement with the buyer - # and that you do not expect to create any new order references or - # authorizations on this billing agreement - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseBillingAgreement.html - # @param amazon_billing_agreement_id [String] - # @param opts [Hash] - # @option opts [String] :closure_reason - # @return [Peddler::XMLParser] - def close_billing_agreement(amazon_billing_agreement_id, opts = {}) - operation('CloseBillingAgreement') - .add(opts.merge( - 'AmazonBillingAgreementId' => amazon_billing_agreement_id - )) - - run - end - - # Sets order reference details such as the order total and a description for - # the order - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_SetOrderReferenceDetails.html - # @param amazon_order_reference_id [String] - # @param order_total [Struct, Hash] - # @param opts [Hash] - # @option opts [String] :platform_id - # @option opts [String] :seller_note - # @option opts [Struct, Hash] :seller_order_attributes - # @return [Peddler::XMLParser] - def set_order_reference_details(amazon_order_reference_id, order_total, opts = {}) - operation('SetOrderReferenceDetails') - .add( - 'AmazonOrderReferenceId' => amazon_order_reference_id, - 'OrderReferenceAttributes' => opts.merge('OrderTotal' => order_total) - ) - - run - end - - # Returns details about the Order Reference object and its current state - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetOrderReferenceDetails.html - # @param amazon_order_reference_id [String] - # @param opts [Hash] - # @option opts [String] address_consent_token - # @return [Peddler::XMLParser] - def get_order_reference_details(amazon_order_reference_id, opts = {}) - operation('GetOrderReferenceDetails') - .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id)) - - run - end - - # Confirms that the order reference is free of constraints and all required - # information has been set on the order reference - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ConfirmOrderReference.html - # @param amazon_order_reference_id [String] - # @return [Peddler::XMLParser] - def confirm_order_reference(amazon_order_reference_id) - operation('ConfirmOrderReference') - .add('AmazonOrderReferenceId' => amazon_order_reference_id) - - run - end - - # Cancels a previously confirmed order reference - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CancelOrderReference.html - # @param amazon_order_reference_id [String] - # @param opts [Hash] - # @option opts [String] cancelation_reason - # @return [Peddler::XMLParser] - def cancel_order_reference(amazon_order_reference_id, opts = {}) - operation('CancelOrderReference') - .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id)) - - run - end - - # Confirms that an order reference has been fulfilled (fully or partially) - # and that you do not expect to create any new authorizations on this order - # reference - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseOrderReference.html - # @param amazon_order_reference_id [String] - # @param opts [Hash] - # @option opts [String] closure_reason - # @return [Peddler::XMLParser] - def close_order_reference(amazon_order_reference_id, opts = {}) - operation('CloseOrderReference') - .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id)) - - run - end - - # Reserves a specified amount against the payment method(s) stored in the - # order reference - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Authorize.html - # @param amazon_order_reference_id [String] - # @param authorization_reference_id [String] - # @param authorization_amount [Struct, Hash] - # @param opts [Hash] - # @option opts [String] :seller_authorization_note - # @option opts [Integer] :transaction_timeout - # @option opts [Boolean] :capture_now - # @option opts [String] :soft_descriptor - # @return [Peddler::XMLParser] - def authorize(amazon_order_reference_id, authorization_reference_id, authorization_amount, opts = {}) - operation('Authorize') - .add(opts.merge( - 'AmazonOrderReferenceId' => amazon_order_reference_id, - 'AuthorizationReferenceId' => authorization_reference_id, - 'AuthorizationAmount' => authorization_amount - )) - - run - end - - # Returns the status of a particular authorization and the total amount - # captured on the authorization - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetAuthorizationDetails.html - # @param amazon_authorization_id [String] - # @return [Peddler::XMLParser] - def get_authorization_details(amazon_authorization_id) - operation('GetAuthorizationDetails') - .add('AmazonAuthorizationId' => amazon_authorization_id) - - run - end - - # Captures funds from an authorized payment instrument - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Capture.html - # @param amazon_authorization_id [String] - # @param capture_reference_id [String] - # @param capture_amount [Struct, Hash] - # @param opts [Hash] - # @option opts [String] :seller_capture_note - # @option opts [String] :soft_descriptor - # @return [Peddler::XMLParser] - def capture(amazon_authorization_id, capture_reference_id, capture_amount, opts = {}) - operation('Capture') - .add(opts.merge( - 'AmazonAuthorizationId' => amazon_authorization_id, - 'CaptureReferenceId' => capture_reference_id, - 'CaptureAmount' => capture_amount - )) - - run - end - - # Returns the status of a particular capture and the total amount refunded - # on the capture - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetCaptureDetails.html - # @param amazon_capture_id [String] - # @return [Peddler::XMLParser] - def get_capture_details(amazon_capture_id) - operation('GetAuthorizationDetails') - .add('AmazonCaptureId' => amazon_capture_id) - - run - end - - # Closes an authorization - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseAuthorization.html - # @param amazon_authorization_id [String] - # @param opts [Hash] - # @option opts [String] closure_reason - # @return [Peddler::XMLParser] - def close_authorization(amazon_authorization_id, opts = {}) - operation('CloseAuthorization') - .add(opts.merge('AmazonAuthorizationId' => amazon_authorization_id)) - - run - end - - # Refunds a previously captured amount - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Refund.html - # @param amazon_capture_id [String] - # @param refund_reference_id [String] - # @param refund_amount [Struct, Hash] - # @param opts [Hash] - # @option opts [String] :seller_refund_note - # @option opts [String] :soft_descriptor - # @return [Peddler::XMLParser] - def refund(amazon_capture_id, refund_reference_id, refund_amount, opts ={}) - operation('Refund') - .add(opts.merge( - 'AmazonCaptureId' => amazon_capture_id, - 'RefundReferenceId' => refund_reference_id, - 'RefundAmount' => refund_amount - )) - - run - end - - # Returns the status of a particular refund - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetRefundDetails.html - # @param amazon_refund_id [String] - # @return [Peddler::XMLParser] - def get_refund_details(amazon_refund_id) - operation('GetRefundDetails') - .add('AmazonRefundId' => 'amazon_refund_id') - - run - end - - # Gets the operational status of the API - # - # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetServiceStatus.html - # @return [Peddler::XMLParser] - def get_service_status - operation('GetServiceStatus') - run - end - end -end +require 'mws/off_amazon_payments/client'