class CreditCard
Constants
- VALUES
Attributes
cvv[RW]
expiration_date[RW]
name_on_card[RW]
number[RW]
Public Class Methods
new(config = {})
click to toggle source
# File lib/order_payment.rb, line 127 def initialize(config = {}) info = config.map { |key, value| [(key.to_sym rescue key), value.to_s] }.to_h self.number = info[:number] || "" self.cvv = info[:cvv] self.expiration_date = info[:expiration_date] self.name_on_card = info[:name] end
Public Instance Methods
input(default_name = nil)
click to toggle source
# File lib/order_payment.rb, line 136 def input(default_name = nil) loop do until number.valid_credit_card_brand?(:visa, :mastercard, :jcb, :amex, :diners) puts "Invalid card number" unless number == "" self.number = Ask.input "Credit Card Number" end unless number.credit_card_brand == :diners self.cvv ||= HighLine.new.ask("CVV: ") { |q| q.echo = "*" } end expiration_month, expiration_year = (expiration_date || "").split("/") while !(1..12).cover?(expiration_month.to_i) || !(17..31).cover?(expiration_year.to_i) self.expiration_date = Ask.input "Expiration Date (mm/yy)" expiration_month, expiration_year = expiration_date.split("/") end self.name_on_card ||= Ask.input "Name on Card", default: default_name break if valid? end end
params()
click to toggle source
# File lib/order_payment.rb, line 159 def params { "existCreditCardF" => "", "reuseCredit_check" => "1", # Seems to be 1 but it doesn't save the CC info "cardComCd" => VALUES[number.credit_card_brand], "creditCardNo" => number, "creditCardSecurityCode" => cvv, "creditCardSignature" => name_on_card, "goodThruMonth" => expiration_date.split("/").first.rjust(2, "0"), "goodThruYear" => expiration_date.split("/").last } end
valid?()
click to toggle source
# File lib/order_payment.rb, line 172 def valid? response = Request.post( "https://order.dominos.jp/eng/webapi/regi/validate/creditCard/", params, expect: :ok, failure: "Couldn't validate credit card info" ) result = JSON.parse(response.body) if result["errorDetails"] puts result return false end true end