Skip to content

Commit b99ed97

Browse files
authored
Merge pull request #716 from stripe/remi-add-checkout-sessions
Add support for Checkout Sessions
2 parents 98851f9 + 0747d59 commit b99ed97

File tree

6 files changed

+46
-2
lines changed

6 files changed

+46
-2
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ sudo: false
1717
env:
1818
global:
1919
# If changing this number, please also change it in `test/test_helper.rb`.
20-
- STRIPE_MOCK_VERSION=0.39.0
20+
- STRIPE_MOCK_VERSION=0.40.0
2121

2222
cache:
2323
directories:

lib/stripe.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
require "stripe/bitcoin_transaction"
5050
require "stripe/card"
5151
require "stripe/charge"
52+
require "stripe/checkout_session"
5253
require "stripe/country_spec"
5354
require "stripe/coupon"
5455
require "stripe/customer"

lib/stripe/checkout_session.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# frozen_string_literal: true
2+
3+
module Stripe
4+
class CheckoutSession < APIResource
5+
extend Stripe::APIOperations::Create
6+
7+
OBJECT_NAME = "checkout_session".freeze
8+
end
9+
end

lib/stripe/util.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def self.object_classes # rubocop:disable Metrics/MethodLength
5858
BitcoinTransaction::OBJECT_NAME => BitcoinTransaction,
5959
Card::OBJECT_NAME => Card,
6060
Charge::OBJECT_NAME => Charge,
61+
CheckoutSession::OBJECT_NAME => CheckoutSession,
6162
CountrySpec::OBJECT_NAME => CountrySpec,
6263
Coupon::OBJECT_NAME => Coupon,
6364
Customer::OBJECT_NAME => Customer,

test/stripe/checkout_session_test.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# frozen_string_literal: true
2+
3+
require ::File.expand_path("../../test_helper", __FILE__)
4+
5+
module Stripe
6+
class CheckoutSessionTest < Test::Unit::TestCase
7+
should "be creatable" do
8+
session = Stripe::CheckoutSession.create(
9+
allowed_source_types: ["card"],
10+
cancel_url: "https://stripe.com/cancel",
11+
client_reference_id: "1234",
12+
line_items: [
13+
{
14+
amount: 123,
15+
currency: "usd",
16+
description: "item 1",
17+
images: [
18+
"https://stripe.com/img1",
19+
],
20+
name: "name",
21+
quantity: 2,
22+
},
23+
],
24+
payment_intent_data: [
25+
receipt_email: "[email protected]",
26+
],
27+
success_url: "https://stripe.com/success"
28+
)
29+
assert_requested :post, "#{Stripe.api_base}/v1/checkout_sessions"
30+
assert session.is_a?(Stripe::CheckoutSession)
31+
end
32+
end
33+
end

test/test_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
require ::File.expand_path("../test_data", __FILE__)
1717

1818
# If changing this number, please also change it in `.travis.yml`.
19-
MOCK_MINIMUM_VERSION = "0.39.0".freeze
19+
MOCK_MINIMUM_VERSION = "0.40.0".freeze
2020
MOCK_PORT = ENV["STRIPE_MOCK_PORT"] || 12_111
2121

2222
# Disable all real network connections except those that are outgoing to

0 commit comments

Comments
 (0)