Module: ActiveMerchant::Billing::PaylineWalletManagementAPI

Included in:
PaylineGateway
Defined in:
lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb

Instance Method Summary collapse

Instance Method Details

#create_wallet(wallet, options = {}) ⇒ Object

Optional parameters: media Required objects: Wallet Optional objects: buyer, owner, private_data, authentication_3D_secure, contract_number_wallet



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 11

def create_wallet(wallet, options = {})
  optional_parameters = ['media']
  data = merged_data([
    # Required parameters
    add_wallet(wallet),
    # Option parameters,
    add_buyer(options[:buyer]),
    add_owner(options[:owner]),
    add_private_data(options[:private_data]),
    add_authentication_3D_secure(options[:authentication_3D_secure]),
    add_optional_parameters(options, optional_parameters),
    add_contract_number_wallet_list(options[:contract_number_wallet])
  ])

  direct_api_request :create_wallet, data
end

#disable_wallet(contract_number, wallet_id, options = {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 28

def disable_wallet(contract_number, wallet_id, options={})
  optional_parameters = ['cardInd']
  required_parameters = { contractNumber: contract_number}

  data = merged_data([
    required_parameters,
    add_optional_parameters(options, optional_parameters),
    add_wallet_id_list(wallet_id)
  ])

  direct_api_request :disable_wallet, data
end

#do_immediate_wallet_payment(amount, wallet_id, options = {}) ⇒ Object

:wallet_id [String] Wallet ID :order_ref [String] Order ID (required) Required parameters: order_ref, wallet_id, buyer Optional parameters: card_ind, media, wallet_cvx Required objects: order, payment, authentication_3D_secure Optional parameters: private_data



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 47

def do_immediate_wallet_payment(amount, wallet_id, options = {})
  currency = currency_code(options[:currency])

  optional_parameters = ['cardInd', 'media', 'walletCvx']
  required_parameters = {
    walletId:  wallet_id
  }

  buyer_options = options[:buyer].blank? ? { wallet_id: wallet_id} : options[:buyer]

  data = merged_data([
    # Required parameters
    required_parameters,
    add_payment( amount, currency, options[:action], :direct, options[:payment]),
    add_order( amount, currency, options[:order_ref], options[:order]),
    add_buyer(buyer_options),
    # Optional parameters
    add_private_data(options[:private_data]),
    add_authentication_3D_secure(options[:authentication_3D_secure]),
    add_optional_parameters(options, optional_parameters)
  ])

  direct_api_request :do_immediate_wallet_payment, data
end

#do_recurrent_wallet_payment(amount, wallet_id, options = {}) ⇒ Object

:wallet_id [String] Wallet ID :order_ref [String] Order ID (required) Required parameters: order_ref, order_data, schedule_date, wallet_id Optional parameters: card_ind, media Required objects: payment, recurring Optional parameters: order, private_data



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 78

def do_recurrent_wallet_payment(amount, wallet_id, options = {})
  currency = currency_code(options[:currency])

  optional_parameters = ['cardInd', 'media']
  required_parameters = {
    orderRef:  options[:order_ref],
    orderDate: options[:order_date], # Doesnt seem required
    scheduledDate: options[:scheduled_date], # Doesnt seem required
    walletId:  wallet_id,
  }

  data = merged_data([
    # Required parameters
    required_parameters,
    add_payment( amount, currency, options[:action], :recurrent, options[:payment]),
    add_recurring( options[:recurring]),
    # Optional parameters
    add_order( amount, currency, options[:order_ref], options[:order]),
    add_private_data(options[:private_data]),
    add_optional_parameters(options, optional_parameters)
  ])

  direct_api_request :do_recurrent_wallet_payment, data
end

#do_scheduled_wallet_payment(amount, wallet_id, options = {}) ⇒ Object

:wallet_id [String] Wallet ID :order_ref [String] Order ID (required) Required parameters: order_ref, wallet_id, scheduled_date (doesn’t seem that required) Optional parameters: card_ind, media, wallet_cvx Required objects: order, payment, authentication_3D_secure Optional parameters: private_data



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 109

def do_scheduled_wallet_payment(amount, wallet_id, options = {})
  currency = currency_code(options[:currency])

  optional_parameters = ['cardInd', 'media', 'orderDate']
  required_parameters = {
    walletId:  wallet_id,
    scheduledDate: options[:scheduled_data],
    orderRef: options[:order_ref]
  }

  buyer_options = options[:buyer].blank? ? { wallet_id: wallet_id} : options[:buyer]

  data = merged_data([
    # Required parameters
    required_parameters,
    add_payment( amount, currency, options[:action], :direct, options[:payment]),
    add_order( amount, currency, options[:order_ref], options[:order]),
    # Optional parameters
    add_private_data(options[:private_data]),
    add_optional_parameters(options, optional_parameters)
  ])

  direct_api_request :do_scheduled_wallet_payment, data
end

#enable_wallet(contract_number, wallet_id, options = {}) ⇒ Object

:wallet_id [String] Wallet ID Required parameters: contract_number, wallet_id Optional parameters: card_ind



138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 138

def enable_wallet(contract_number, wallet_id, options={})
  optional_parameters = ['cardInd']
  required_parameters = {
    contractNumber: contract_number,
    walletId: wallet_id
  }

  data = merged_data([
    required_parameters,
    add_optional_parameters(options, optional_parameters)
  ])

  direct_api_request :enable_wallet, data
end

#get_wallet(contract_number, wallet_id, options = {}) ⇒ Object

:wallet_id [String] Wallet ID Required parameters: contract_number, wallet_id Optional parameters: card_ind



156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 156

def get_wallet(contract_number, wallet_id, options={})
  optional_parameters = ['cardInd', 'media']
  required_parameters = {
    contractNumber: contract_number,
    walletId: wallet_id
  }

  data = merged_data([
    required_parameters,
    add_optional_parameters(options, optional_parameters)
  ])

  direct_api_request :get_wallet, data
end

#update_wallet(wallet, options = {}) ⇒ Object

Optional parameters: card_ind, media Required objects: Wallet Optional objects: buyer, owner, private_data, authentication_3D_secure, contract_number_wallet



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/active_merchant/billing/gateways/payline/payline_wallet_management.rb', line 174

def update_wallet(wallet, options = {})
  optional_parameters = ['cardInd', 'media']
  data = merged_data([
    # Required parameters
    add_wallet(wallet),
    # Option parameters
    add_buyer(options[:buyer]),
    add_owner(options[:owner]),
    add_private_data(options[:private_data]),
    add_authentication_3D_secure(options[:authentication_3D_secure]),
    add_optional_parameters(options, optional_parameters),
    add_contract_number_wallet_list(options[:contract_number_wallet])
  ])

  direct_api_request :update_wallet, data
end