/
session.rb
36 lines (30 loc) · 1.06 KB
/
session.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
module Micropayment
class Session < Micropayment::Base
VALID_ATTRIBUTES = [:sessionId, :customerId, :status, :expire, :statusDetail, :project, :projectCampaign, :account, :webmasterCampaign, :amount, :openAmount, :currency, :title, :payText, :ip, :freeParams]
IDENTIFIER = :sessionId
FIND_METHOD = :sessionGet
CREATE_METHOD = :sessionCreate
def create!(project, customer, params={})
params.symbolize_keys!
params.merge!( :customerId => customer.id, :project => project )
result = Micropayment::Debit.sessionCreate( params )
case result["error"]
when "0"
self.new( valid_attributes(result) )
else
raise "#{result["error"]}: #{result["errorMessage"]}"
end
end
def approve!
result = Micropayment::Debit.sessionApprove( :sessionId => id )
case result["error"]
when "0"
self.status = result["status"]
self.expire = result["expire"]
status
else
raise "#{result["error"]}: #{result["errorMessage"]}"
end
end
end
end