Module: EasyCard
- Defined in:
- lib/easycard.rb,
lib/easycard/version.rb,
lib/easycard/response.rb,
lib/easycard/color_string.rb
Defined Under Namespace
Modules: ColorString
Classes: Error, NotFound, Response
Constant Summary
collapse
- KEY =
'EasyCardToKingay23456789'
- IV =
'01234567'
- SALT =
'L0CalKing'
- CONST =
8544
- VERSION =
'1.0.3'
Class Method Summary
collapse
Class Method Details
.card_id(card_number) ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/easycard.rb', line 31
def card_id card_number
remainder = card_number.size % 16
data = card_number + "\x06"*(16 - remainder) if remainder != 0
cipher = OpenSSL::Cipher.new('DES3')
cipher.encrypt
cipher.key = KEY
cipher.iv = IV
Base64.encode64(cipher.update(data)).chop!
end
|
.query(cart_number, from: Date.today-30, to: Date.today) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/easycard.rb', line 18
def query cart_number, from: Date.today-30, to: Date.today
query_hash = {
cardID: card_id(cart_number),
begin: from.strftime('%Y-%m-%d'),
end: to.strftime('%Y-%m-%d'),
verify: verify,
ev: 1
}
uri = URI('https://wallet.easycard.com.tw/EasyWallet/QueryManager/V3/GetTXNThinDataInfo')
uri.query = URI.encode_www_form(query_hash)
Response.new(Net::HTTP.get(uri))
end
|
.verify(time = Time.now) ⇒ Object
41
42
43
44
|
# File 'lib/easycard.rb', line 41
def verify time = Time.now
seed = time.month + time.day + time.hour
Digest::MD5.hexdigest("#{seed * CONST}#{SALT}").upcase!
end
|