# frozen_string_literal: true require 'pay_zen/client' # Charge/* endpoints of the PayZen REST API class PayZen::Charge < PayZen::Client def initialize(base_url: nil, username: nil, password: nil) super(base_url: base_url, username: username, password: password) end ## # @see https://payzen.io/fr-FR/rest/V4.0/api/playground/Charge/SDKTest/ ## def sdk_test(value) post('/Charge/SDKTest', value: value) end ## # @see https://payzen.io/en-EN/rest/V4.0/api/playground/Charge/CreatePayment/ ## def create_payment(amount: 0, currency: Setting.get('payzen_currency'), order_id: nil, form_action: 'PAYMENT', contrib: "fab-manager #{Version.current}", customer: nil) post('/Charge/CreatePayment', amount: amount, currency: currency, orderId: order_id, formAction: form_action, contrib: contrib, customer: customer) end ## # @see https://payzen.io/en-EN/rest/V4.0/api/playground/Charge/CreateToken/ ## def create_token(currency: Setting.get('payzen_currency'), order_id: nil, contrib: "fab-manager #{Version.current}", customer: nil) post('/Charge/CreateToken', currency: currency, orderId: order_id, contrib: contrib, customer: customer) end ## # @see https://payzen.io/fr-FR/rest/V4.0/api/playground/Charge/CreateSubscription ## def create_subscription(amount: 0, currency: Setting.get('payzen_currency'), effect_date: DateTime.current.iso8601, payment_method_token: nil, rrule: nil, order_id: nil, initial_amount: nil, initial_amount_number: nil) post('Charge/CreateSubscription', amount: amount, currency: currency, effectDate: effect_date, paymentMethodToken: payment_method_token, rrule: rrule, orderId: order_id, initialAmount: initial_amount, initialAmountNumber: initial_amount_number) end end