Skip to content

Commit

Permalink
Update GettingStarted.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Edward Ocampo-Gooding committed Feb 26, 2014
1 parent afd8d95 commit 6199955
Showing 1 changed file with 28 additions and 24 deletions.
52 changes: 28 additions & 24 deletions GettingStarted.md
Expand Up @@ -18,46 +18,50 @@ When combined into a single operation, this is called a *purchase*.

All of these operations are performed on an instance of a Gateway subclass:

gateway = SomeGateway.new
```ruby
gateway = SomeGateway.new

# Amounts are always specified in cents, so this is
# equal to $10.
response = gateway.purchase(1000, credit_card)
# Amounts are always specified in cents, so $10.00 is 1000 cents
response = gateway.purchase(1000, credit_card)
```

Both `#authorize`, `#capture` and `#purchase` return a {ActiveMerchant::Billing::Response} instance.
All three `#authorize`, `#capture` and `#purchase` methods return a `ActiveMerchant::Billing::Response` instance.
This object contains the details of the operation, most notably whether it was successful.

if response.success?
puts "Payment complete!"
else
puts "Payment failed: #{response.message}"
end

As can be seen, {ActiveMerchant::Billing::Response#success?} returns whether the operation completed
successfully. If `false`, the error message is available in `#message`.
```ruby
if response.success?
puts "Payment complete!"
else
puts "Payment failed: #{response.message}"
end
```

## Handling Credit Cards

In Active Merchant, credit cards are represented by instances of {ActiveMerchant::Billing::CreditCard}.
In Active Merchant, credit cards are represented by instances of `ActiveMerchant::Billing::CreditCard`.
Instantiating such an object is simple:

credit_card = ActiveMerchant::Billing::CreditCard.new(
:first_name => 'Steve',
:last_name => 'Smith',
:month => '9',
:year => '2014',
:type => 'visa',
:number => '4242424242424242')
```ruby
credit_card = ActiveMerchant::Billing::CreditCard.new(
:first_name => 'Steve',
:last_name => 'Smith',
:month => '9',
:year => '2014',
:type => 'visa',
:number => '4242424242424242')
```

Most often, though, you'll be using user-supplied data. In a typical Rails controller:

credit_card = ActiveMerchant::Billing::CreditCard.new(params[:credit_card])
```ruby
credit_card = ActiveMerchant::Billing::CreditCard.new(params[:credit_card])
```

### Validation

While the above attributes are always required for a `CreditCard` to be valid, some gateways also
require a *verification value*, e.g. a CVV code, to be given.

Validating a credit card is as simple as calling `#valid?`, which
Validating a credit card is as simple as calling `CreditCard#valid?`, which
returns `true` only if the credentials are syntactically valid. If there are any errors or omissions,
the `#errors` attribute will be non-empty.
the `CreditCard#errors` attribute will be non-empty.

0 comments on commit 6199955

Please sign in to comment.