bborn-simplepay 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +25 -0
- data/Manifest.txt +50 -0
- data/README.rdoc +127 -0
- data/Rakefile +25 -0
- data/lib/simplepay.rb +27 -0
- data/lib/simplepay/authentication.rb +41 -0
- data/lib/simplepay/constants.rb +64 -0
- data/lib/simplepay/errors.rb +16 -0
- data/lib/simplepay/helpers/form_helper.rb +29 -0
- data/lib/simplepay/helpers/notification_helper.rb +54 -0
- data/lib/simplepay/helpers/rails_helper.rb +40 -0
- data/lib/simplepay/rails.rb +9 -0
- data/lib/simplepay/service.rb +133 -0
- data/lib/simplepay/services/donation.rb +91 -0
- data/lib/simplepay/services/marketplace.rb +89 -0
- data/lib/simplepay/services/marketplace_policy.rb +54 -0
- data/lib/simplepay/services/standard.rb +58 -0
- data/lib/simplepay/services/subscription.rb +96 -0
- data/lib/simplepay/support.rb +16 -0
- data/lib/simplepay/support/amount.rb +55 -0
- data/lib/simplepay/support/billing_frequency.rb +14 -0
- data/lib/simplepay/support/boolean.rb +28 -0
- data/lib/simplepay/support/currency.rb +21 -0
- data/lib/simplepay/support/epoch.rb +39 -0
- data/lib/simplepay/support/field.rb +147 -0
- data/lib/simplepay/support/interval.rb +143 -0
- data/lib/simplepay/support/simple_amount.rb +37 -0
- data/lib/simplepay/support/subscription_period.rb +25 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/simplepay.gemspec +41 -0
- data/test/simplepay/helpers/test_notifier.rb +32 -0
- data/test/simplepay/services/test_donation.rb +85 -0
- data/test/simplepay/services/test_marketplace.rb +85 -0
- data/test/simplepay/services/test_marketplace_policy.rb +52 -0
- data/test/simplepay/services/test_standard.rb +71 -0
- data/test/simplepay/services/test_subscription.rb +109 -0
- data/test/simplepay/support/test_amount.rb +46 -0
- data/test/simplepay/support/test_billing_frequency.rb +43 -0
- data/test/simplepay/support/test_boolean.rb +17 -0
- data/test/simplepay/support/test_epoch.rb +34 -0
- data/test/simplepay/support/test_field.rb +99 -0
- data/test/simplepay/support/test_interval.rb +92 -0
- data/test/simplepay/support/test_simple_amount.rb +28 -0
- data/test/simplepay/support/test_subscription_period.rb +49 -0
- data/test/simplepay/test_authentication.rb +25 -0
- data/test/simplepay/test_service.rb +118 -0
- data/test/test_helper.rb +87 -0
- data/test/test_simplepay.rb +11 -0
- metadata +184 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'action_view/base'
|
2
|
+
|
3
|
+
module Simplepay
|
4
|
+
module Helpers
|
5
|
+
|
6
|
+
##
|
7
|
+
# Adds helpers to your views for generating the correct HTML forms and
|
8
|
+
# valid signatures.
|
9
|
+
#
|
10
|
+
module RailsHelper
|
11
|
+
|
12
|
+
##
|
13
|
+
# This is the general interface for generating your Simple Pay service
|
14
|
+
# forms. See Simplepay::Services for available services and information
|
15
|
+
# specific to each.
|
16
|
+
#
|
17
|
+
# === Example
|
18
|
+
#
|
19
|
+
# (in your view)
|
20
|
+
#
|
21
|
+
# <%= simplepay_form_for(:service_name, {:attr => 'foo'}) %>
|
22
|
+
#
|
23
|
+
def simplepay_form_for(service_name, attributes = {}, submit_tag = nil)
|
24
|
+
service = get_simplepay_service(service_name)
|
25
|
+
service.form(attributes, submit_tag)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
|
32
|
+
def get_simplepay_service(name) #:nodoc:
|
33
|
+
service = "Simplepay::Services::#{name.to_s.camelize}".constantize
|
34
|
+
service.new
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'simplepay'
|
2
|
+
require 'simplepay/helpers/rails_helper'
|
3
|
+
require 'simplepay/helpers/notification_helper'
|
4
|
+
|
5
|
+
# Inject helper into Rails ActionView.
|
6
|
+
ActionView::Base.__send__(:include, Simplepay::Helpers::RailsHelper)
|
7
|
+
|
8
|
+
# Inject notification helper into ActionController
|
9
|
+
ActionController::Base.__send__(:include, Simplepay::Helpers::NotificationHelper)
|
@@ -0,0 +1,133 @@
|
|
1
|
+
module Simplepay
|
2
|
+
|
3
|
+
##
|
4
|
+
# This is a base class from which to inherit functionality for all Amazon
|
5
|
+
# Simple Pay services (Subscriptions, Marketplace Buttons, etc.)
|
6
|
+
#
|
7
|
+
# === Required Fields
|
8
|
+
#
|
9
|
+
# The following fields are required for all Simple Pay services:
|
10
|
+
#
|
11
|
+
# access_key:: Your Amazon Web Service (AWS) access key (automatically filled from Simplepay.aws_access_key_id).
|
12
|
+
# account_id:: Your Amazon Payments account identifier (automatically filled from Simplepay.account_id)
|
13
|
+
# signature:: The validation string, guaranteeing that you are the one generating the request and that the values were not tampered with enroute (automatically generated by the form generators)
|
14
|
+
#
|
15
|
+
class Service
|
16
|
+
|
17
|
+
# Fully-qualified URL for the production endpoint for the service.
|
18
|
+
ENDPOINT_URL = 'https://authorize.payments.amazon.com/pba/paypipeline'
|
19
|
+
|
20
|
+
# Fully-qualified URL for the sandbox (test) endpoint for the service.
|
21
|
+
SANDBOX_URL = 'https://authorize.payments-sandbox.amazon.com/pba/paypipeline'
|
22
|
+
|
23
|
+
class << self
|
24
|
+
|
25
|
+
##
|
26
|
+
# Defines a field for the service.
|
27
|
+
#
|
28
|
+
# === Usage
|
29
|
+
#
|
30
|
+
# class Foo < Service
|
31
|
+
# field :access_key
|
32
|
+
# field :amount, :class => Amount, :map_to => :value
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
def field(name, options = {})
|
36
|
+
field = Support::Field.new(self, name, options)
|
37
|
+
define_method("#{name.to_s.underscore}=", Proc.new { |value| self.fields.detect { |f| f.name == name }.value = value })
|
38
|
+
self.fields << field
|
39
|
+
field
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# Optional convenience method for:
|
44
|
+
#
|
45
|
+
# field :field_name, :required => true
|
46
|
+
#
|
47
|
+
# Any other +options+ given will be still be passed through.
|
48
|
+
#
|
49
|
+
def required_field(name, options = {})
|
50
|
+
field(name, options.merge(:required => true))
|
51
|
+
end
|
52
|
+
|
53
|
+
##
|
54
|
+
# Returns the collection of fields defined by the service class.
|
55
|
+
#
|
56
|
+
def fields
|
57
|
+
@fields ||= []
|
58
|
+
end
|
59
|
+
|
60
|
+
def set_submit_tag(value)
|
61
|
+
@submit_tag = value
|
62
|
+
end
|
63
|
+
|
64
|
+
def submit_tag
|
65
|
+
@submit_tag
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
##
|
72
|
+
# Returns the fields for the service instance.
|
73
|
+
#
|
74
|
+
def fields
|
75
|
+
@fields ||= self.class.fields.collect { |f| f.clone_for(self) }
|
76
|
+
end
|
77
|
+
|
78
|
+
##
|
79
|
+
# Returns the URL for the service endpoint to use. If +sandbox+ is true,
|
80
|
+
# the SANDBOX_URL will be used. Otherwise, the ENDPOINT_URL will be used.
|
81
|
+
#
|
82
|
+
def url(sandbox = Simplepay.use_sandbox?)
|
83
|
+
sandbox ? self.class.const_get(:SANDBOX_URL) : self.class.const_get(:ENDPOINT_URL)
|
84
|
+
end
|
85
|
+
|
86
|
+
def form(attributes = {}, submit = nil)
|
87
|
+
set_accessor_fields
|
88
|
+
set_fields(attributes)
|
89
|
+
set_signature
|
90
|
+
content = generate_input_fields + generate_submit_field(submit)
|
91
|
+
Simplepay::Helpers::FormHelper.content_tag(:form, content, {:method => 'post', :action => url})
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
|
98
|
+
def generate_input_fields
|
99
|
+
self.fields.collect { |f| f.to_input }.join
|
100
|
+
end
|
101
|
+
|
102
|
+
def generate_submit_field(submit)
|
103
|
+
options = {:type => 'submit'}
|
104
|
+
options.merge!(:value => self.class.submit_tag) if self.class.submit_tag
|
105
|
+
submit ? submit.to_s : Simplepay::Helpers::FormHelper.tag(:input, options)
|
106
|
+
end
|
107
|
+
|
108
|
+
def set_accessor_fields
|
109
|
+
self.access_key = Simplepay.aws_access_key_id if self.respond_to?(:access_key=)
|
110
|
+
self.account_id = Simplepay.account_id if self.respond_to?(:account_id=)
|
111
|
+
end
|
112
|
+
|
113
|
+
def set_fields(hash)
|
114
|
+
hash.each_pair do |key, value|
|
115
|
+
self.send("#{key}=", value) if self.respond_to?("#{key}=")
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def set_signature
|
120
|
+
fields = {}
|
121
|
+
self.fields.each { |f| fields[f.service_name] = f.value unless f.service_name == 'signature' }
|
122
|
+
self.signature = Signature.new(URI.parse(url), fields).sign if self.respond_to?(:signature=)
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
|
129
|
+
require 'simplepay/services/subscription'
|
130
|
+
require 'simplepay/services/standard'
|
131
|
+
require 'simplepay/services/donation'
|
132
|
+
require 'simplepay/services/marketplace'
|
133
|
+
require 'simplepay/services/marketplace_policy'
|
@@ -0,0 +1,91 @@
|
|
1
|
+
module Simplepay
|
2
|
+
module Services
|
3
|
+
|
4
|
+
##
|
5
|
+
# The Amazon Simple Pay Donation service is used to facilitate the collection
|
6
|
+
# of donations to your organization, or another's organization via the
|
7
|
+
# marketplace functionality. When used through the marketplace functionality,
|
8
|
+
# you may charge a commission fee for brokering the exchange.
|
9
|
+
#
|
10
|
+
# Note that donation recipients must accept your marketplace fee policy before
|
11
|
+
# the payment buttons for their donations may be generated. This can be
|
12
|
+
# accomplished using the +MarketplacePolicy+ service with the form helper
|
13
|
+
# (see examples).
|
14
|
+
#
|
15
|
+
# === Simple Pay Donation Fields
|
16
|
+
#
|
17
|
+
# ==== Required Fields
|
18
|
+
#
|
19
|
+
# The following attributes are required when generating a Simple Pay Donation
|
20
|
+
# form (in addition to those listed in +SimplePay::Service+):
|
21
|
+
#
|
22
|
+
# amount:: The dollar value you'd like to collect
|
23
|
+
#
|
24
|
+
# ==== Optional Fields
|
25
|
+
#
|
26
|
+
# immediate_return:: Immediately returns the customer to your +return_url+ directly after payment.
|
27
|
+
# ipn_url:: Fully-qualified URL to which Amazon will POST instant payment notifications.
|
28
|
+
# process_immediately:: Instructs Amazon to immediately process the payment.
|
29
|
+
# reference_id:: A custom string your can set to identify this transaction, it will be returned with the IPNs and other returned data.
|
30
|
+
# return_url:: Fully-qualified URL for where to send your customer following payment.
|
31
|
+
#
|
32
|
+
# ===== Marketplace Fields
|
33
|
+
#
|
34
|
+
# recipient_email:: The email address of the donation recipient (important and must be correct)
|
35
|
+
# fixed_marketplace_fee:: The fixed marketplace fee to add to each transaction
|
36
|
+
# variable_marketplace_fee:: The variable marketplace fee to add to each transaction
|
37
|
+
#
|
38
|
+
# === Example
|
39
|
+
#
|
40
|
+
# (in your view, sellers need to accept the marketplace fee policy using the form helper)
|
41
|
+
#
|
42
|
+
# <%= simplepay_form_for(:marketplace_policy, {
|
43
|
+
# :max_fixed_fee => 10.00,
|
44
|
+
# :max_variable_fee => 5,
|
45
|
+
# :return_url => 'http://yourservice.com'
|
46
|
+
# }) %>
|
47
|
+
#
|
48
|
+
# (in your view, payment form generated for end users using the form helper)
|
49
|
+
#
|
50
|
+
# <%= simplepay_form_for(:donation, {
|
51
|
+
# :amount => 34.95,
|
52
|
+
# :description => "Mutual profit!",
|
53
|
+
# :recipient_email => 'seller@gmail.com',
|
54
|
+
# :fixed_marketplace_fee => 10.00,
|
55
|
+
# :variable_marketplace_fee => 5
|
56
|
+
# }) %>
|
57
|
+
#
|
58
|
+
class Donation < Service
|
59
|
+
|
60
|
+
required_field :access_key
|
61
|
+
required_field :signature
|
62
|
+
required_field :account_id, :as => :amazon_payments_account_id
|
63
|
+
required_field :signature_method, :value => 'HmacSHA256'
|
64
|
+
required_field :signature_version, :value => '2'
|
65
|
+
|
66
|
+
|
67
|
+
required_field :description
|
68
|
+
required_field :amount, :class => Support::Amount
|
69
|
+
required_field :cobranding_style, :value => 'logo'
|
70
|
+
required_field :donation_widget, :as => :is_donation_widget,
|
71
|
+
:value => '1'
|
72
|
+
|
73
|
+
field :reference_id
|
74
|
+
field :immediate_return, :class => Support::Boolean
|
75
|
+
field :collect_shipping_address, :class => Support::Boolean
|
76
|
+
field :process_immediately, :class => Support::Boolean,
|
77
|
+
:as => :process_immediate
|
78
|
+
|
79
|
+
field :return_url
|
80
|
+
field :ipn_url
|
81
|
+
field :abandon_url
|
82
|
+
|
83
|
+
# Marketplace inputs (recipient email required when using)
|
84
|
+
field :fixed_marketplace_fee, :class => Support::Amount
|
85
|
+
field :variable_marketplace_fee
|
86
|
+
field :recipient_email
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
module Simplepay
|
2
|
+
module Services
|
3
|
+
|
4
|
+
##
|
5
|
+
# The Amazon Simple Pay Marketplace service is used to facilitate payments for others.
|
6
|
+
# Use it to charge a commission fee for brokering the exchange between buyers and sellers.
|
7
|
+
#
|
8
|
+
# Note that sellers must accept your marketplace fee policy before the payment buttons
|
9
|
+
# for their products can be generated. This can be accomplished using the +MarketplacePolicy+
|
10
|
+
# service with the form helper (see examples).
|
11
|
+
#
|
12
|
+
# === Simple Pay Marketplace Fields
|
13
|
+
#
|
14
|
+
# ==== Required Fields
|
15
|
+
#
|
16
|
+
# The following attributes are required when creating a Simple Pay
|
17
|
+
# Marketplace form (in addition to those listed in +Simplepay::Service+):
|
18
|
+
#
|
19
|
+
# amount:: The dollar value you'd like to collect.
|
20
|
+
# description:: A summary of the reason for the payment, this is displayed to your customer during checkout.
|
21
|
+
# recipient_email:: The e-mail address of the seller (important and must be correct).
|
22
|
+
# fixed_marketplace_fee:: The fixed marketplace fee to add to each transaction.
|
23
|
+
# variable_marketplace_fee:: The variable percentage fee to add to each transaction.
|
24
|
+
#
|
25
|
+
# ==== Optional Fields
|
26
|
+
#
|
27
|
+
# abandon_url:: The fully-qualified URL to send your custom if they cancel during payment.
|
28
|
+
# cobranding_style:: Defines the type of cobranding to use during the checkout process.
|
29
|
+
# collect_shipping_address:: Tells Amazon whether or not to ask for shipping address and contact information.
|
30
|
+
# immediate_return:: Immediately returns the customer to your +return_url+ directly after payment.
|
31
|
+
# ipn_url:: Fully-qualified URL to which Amazon will POST instant payment notifications.
|
32
|
+
# process_immediately:: Instructs Amazon to immediately process the payment.
|
33
|
+
# reference_id:: A custom string your can set to identify this transaction, it will be returned with the IPNs and other returned data.
|
34
|
+
# return_url:: Fully-qualified URL for where to send your customer following payment.
|
35
|
+
#
|
36
|
+
# === Example
|
37
|
+
#
|
38
|
+
# (in your view, sellers need to accept the marketplace fee policy using the form helper)
|
39
|
+
#
|
40
|
+
# <%= simplepay_form_for(:marketplace_policy, {
|
41
|
+
# :max_fixed_fee => 10.00,
|
42
|
+
# :max_variable_fee => 5,
|
43
|
+
# :return_url => 'http://yourservice.com'
|
44
|
+
# }) %>
|
45
|
+
#
|
46
|
+
# (in your view, payment form generated for end users using the form helper)
|
47
|
+
#
|
48
|
+
# <%= simplepay_form_for(:standard, {
|
49
|
+
# :amount => 34.95,
|
50
|
+
# :description => "Mutual profit!",
|
51
|
+
# :recipient_email => 'seller@gmail.com',
|
52
|
+
# :fixed_marketplace_fee => 10.00,
|
53
|
+
# :variable_marketplace_fee => 5
|
54
|
+
# }) %>
|
55
|
+
#
|
56
|
+
class Marketplace < Service
|
57
|
+
|
58
|
+
required_field :access_key
|
59
|
+
required_field :signature
|
60
|
+
required_field :account_id, :as => :amazon_payments_account_id
|
61
|
+
required_field :signature_method, :value => 'HmacSHA256'
|
62
|
+
required_field :signature_version, :value => '2'
|
63
|
+
|
64
|
+
|
65
|
+
required_field :description
|
66
|
+
required_field :amount, :class => Support::Amount
|
67
|
+
required_field :fixed_marketplace_fee, :class => Support::Amount
|
68
|
+
required_field :variable_marketplace_fee
|
69
|
+
required_field :cobranding_style, :value => 'logo'
|
70
|
+
required_field :recipient_email
|
71
|
+
|
72
|
+
field :reference_id
|
73
|
+
field :immediate_return, :class => Support::Boolean
|
74
|
+
field :collect_shipping_address, :class => Support::Boolean
|
75
|
+
field :process_immediately, :class => Support::Boolean,
|
76
|
+
:as => :process_immediate
|
77
|
+
|
78
|
+
field :return_url
|
79
|
+
field :ipn_url
|
80
|
+
field :abandon_url
|
81
|
+
|
82
|
+
# These fields are not currently utilized by the service
|
83
|
+
field :donation_widget, :as => :is_donation_widget,
|
84
|
+
:value => '0'
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Simplepay
|
2
|
+
module Services
|
3
|
+
|
4
|
+
##
|
5
|
+
# The Amazon Simple Pay Marketplace Policy service is used to allow sellers to acknowledge marketplace policy fees.
|
6
|
+
# Only once a set policy has been agreed to will marketplace transactions be able to proceed.
|
7
|
+
#
|
8
|
+
# === Simple Pay Marketplace Policy Fields
|
9
|
+
#
|
10
|
+
# ==== Required Fields
|
11
|
+
#
|
12
|
+
# The following attributes are required when creating a Simple Pay Marketplace policy fee acceptance form
|
13
|
+
# (in addition to those listed in +Simplepay::Service+):
|
14
|
+
#
|
15
|
+
# max_fixed_fee:: The maximum fixed fee that will be appended to transactions.
|
16
|
+
# max_variable_fee:: The maximum variable fee (%) that will be calculated and added to transactions.
|
17
|
+
# return_url:: Fully-qualified URL for where to send they buyer following payment.
|
18
|
+
# reference_id:: A custom string used to identify this transaction, it will be returned with return data.
|
19
|
+
#
|
20
|
+
# === Example
|
21
|
+
#
|
22
|
+
# (in your view, using the form helper)
|
23
|
+
#
|
24
|
+
# <%= simplepay_form_for(:marketplace_policy, {
|
25
|
+
# :max_fixed_fee => 10.00,
|
26
|
+
# :max_variable_fee => 5,
|
27
|
+
# :return_url => 'http://yourservice.com',
|
28
|
+
# :reference_id => '123456789'
|
29
|
+
# }) %>
|
30
|
+
#
|
31
|
+
class MarketplacePolicy < Service
|
32
|
+
|
33
|
+
required_field :access_key, :as => :caller_key
|
34
|
+
required_field :signature, :as => :aws_signature
|
35
|
+
required_field :account_id, :as => :caller_account_id
|
36
|
+
required_field :signature_method, :value => 'HmacSHA256'
|
37
|
+
required_field :signature_version, :value => '2'
|
38
|
+
|
39
|
+
|
40
|
+
required_field :max_fixed_fee
|
41
|
+
required_field :max_variable_fee
|
42
|
+
required_field :return_url
|
43
|
+
|
44
|
+
required_field :reference_id, :as => :caller_reference
|
45
|
+
required_field :collect_email_address, :value => 'True'
|
46
|
+
required_field :pipeline_name, :value => 'Recipient'
|
47
|
+
|
48
|
+
# These fields are not currently utilized by the service
|
49
|
+
required_field :recipient_pays_fee, :value => 'True'
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Simplepay
|
2
|
+
module Services
|
3
|
+
|
4
|
+
##
|
5
|
+
# The Amazon Simple Pay Standard service is used for one-time payments.
|
6
|
+
#
|
7
|
+
# === Simple Pay Standard Fields
|
8
|
+
#
|
9
|
+
# ==== Required Fields
|
10
|
+
#
|
11
|
+
# The following attributes are required when creating a Simple Pay
|
12
|
+
# Standard form (in addition to those listed in +Simplepay::Service+):
|
13
|
+
#
|
14
|
+
# amount:: The dollar value you'd like to collect.
|
15
|
+
# description:: A summary of the reason for the payment, this is displayed to your customer during checkout.
|
16
|
+
#
|
17
|
+
# ==== Optional Fields
|
18
|
+
#
|
19
|
+
# abandon_url:: The fully-qualified URL to send your custom if they cancel during payment.
|
20
|
+
# cobranding_style:: Defines the type of cobranding to use during the checkout process.
|
21
|
+
# collect_shipping_address:: Tells Amazon whether or not to ask for shipping address and contact information.
|
22
|
+
# immediate_return:: Immediately returns the customer to your +return_url+ directly after payment.
|
23
|
+
# ipn_url:: Fully-qualified URL to which Amazon will POST instant payment notifications.
|
24
|
+
# process_immediately:: Instructs Amazon to immediately process the payment.
|
25
|
+
# reference_id:: A custom string your can set to identify this transaction, it will be returned with the IPNs and other returned data.
|
26
|
+
# return_url:: Fully-qualified URL for where to send your customer following payment.
|
27
|
+
#
|
28
|
+
# === Example
|
29
|
+
#
|
30
|
+
# (in your view, using the form helper)
|
31
|
+
#
|
32
|
+
# <%= simplepay_form_for(:standard, {
|
33
|
+
# :amount => 34.95,
|
34
|
+
# :description => "I want my money NOW!"
|
35
|
+
# }) %>
|
36
|
+
#
|
37
|
+
class Standard < Service
|
38
|
+
|
39
|
+
required_field :access_key
|
40
|
+
required_field :amount
|
41
|
+
required_field :description
|
42
|
+
required_field :signature
|
43
|
+
required_field :signature_method, :value => 'HmacSHA256'
|
44
|
+
required_field :signature_version, :value => '2'
|
45
|
+
|
46
|
+
field :abandon_url
|
47
|
+
field :cobranding_style, :value => 'logo'
|
48
|
+
field :collect_shipping_address, :class => Support::Boolean
|
49
|
+
field :immediate_return, :class => Support::Boolean
|
50
|
+
field :ipn_url
|
51
|
+
field :process_immediate, :class => Support::Boolean
|
52
|
+
field :reference_id
|
53
|
+
field :return_url
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|