pboling-remit 0.0.8 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- metadata +19 -72
- data/LICENSE +0 -20
- data/README.markdown +0 -91
- data/lib/remit.rb +0 -127
- data/lib/remit/common.rb +0 -110
- data/lib/remit/data_types.rb +0 -170
- data/lib/remit/error_codes.rb +0 -118
- data/lib/remit/get_pipeline.rb +0 -212
- data/lib/remit/ipn_request.rb +0 -46
- data/lib/remit/operations/cancel_token.rb +0 -18
- data/lib/remit/operations/discard_results.rb +0 -18
- data/lib/remit/operations/fund_prepaid.rb +0 -31
- data/lib/remit/operations/get_account_activity.rb +0 -60
- data/lib/remit/operations/get_account_balance.rb +0 -29
- data/lib/remit/operations/get_all_credit_instruments.rb +0 -18
- data/lib/remit/operations/get_all_prepaid_instruments.rb +0 -18
- data/lib/remit/operations/get_debt_balance.rb +0 -23
- data/lib/remit/operations/get_outstanding_debt_balance.rb +0 -22
- data/lib/remit/operations/get_payment_instruction.rb +0 -21
- data/lib/remit/operations/get_prepaid_balance.rb +0 -23
- data/lib/remit/operations/get_results.rb +0 -27
- data/lib/remit/operations/get_token_by_caller.rb +0 -19
- data/lib/remit/operations/get_token_usage.rb +0 -18
- data/lib/remit/operations/get_tokens.rb +0 -20
- data/lib/remit/operations/get_total_prepaid_liability.rb +0 -22
- data/lib/remit/operations/get_transaction.rb +0 -54
- data/lib/remit/operations/install_payment_instruction.rb +0 -22
- data/lib/remit/operations/pay.rb +0 -30
- data/lib/remit/operations/refund.rb +0 -44
- data/lib/remit/operations/reserve.rb +0 -30
- data/lib/remit/operations/retry_transaction.rb +0 -18
- data/lib/remit/operations/settle.rb +0 -20
- data/lib/remit/operations/settle_debt.rb +0 -30
- data/lib/remit/operations/subscribe_for_caller_notification.rb +0 -18
- data/lib/remit/operations/unsubscribe_for_caller_notification.rb +0 -17
- data/lib/remit/operations/write_off_debt.rb +0 -28
- data/lib/remit/pipeline_response.rb +0 -64
- data/spec/integrations/get_account_activity_spec.rb +0 -36
- data/spec/integrations/get_tokens_spec.rb +0 -38
- data/spec/integrations/integrations_helper.rb +0 -8
- data/spec/spec_helper.rb +0 -36
- data/spec/units/get_pipeline_spec.rb +0 -165
- data/spec/units/get_results_spec.rb +0 -49
- data/spec/units/ipn_request_spec.rb +0 -32
- data/spec/units/pay_spec.rb +0 -133
- data/spec/units/units_helper.rb +0 -4
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module GetTransaction
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :GetTransaction
|
7
|
-
parameter :transaction_id, :required => true
|
8
|
-
end
|
9
|
-
|
10
|
-
class Response < Remit::Response
|
11
|
-
class GetTransactionResult < Remit::BaseResponse
|
12
|
-
class TransactionDetail < TransactionResponse
|
13
|
-
parameter :caller_name
|
14
|
-
parameter :caller_description
|
15
|
-
parameter :caller_reference
|
16
|
-
parameter :credit_instrument_id
|
17
|
-
parameter :date_completed, :type => :time
|
18
|
-
parameter :date_received, :type => :time
|
19
|
-
parameter :f_p_s_fees, :type => Amount
|
20
|
-
parameter :f_p_s_fees_paid_ib
|
21
|
-
parameter :f_p_s_operation
|
22
|
-
parameter :market_place_fees, :type => Amount
|
23
|
-
parameter :payment_method
|
24
|
-
parameter :prepaid_instrument_id
|
25
|
-
parameter :recipient_name
|
26
|
-
parameter :recipient_email
|
27
|
-
parameter :recipient_token_id
|
28
|
-
parameter :related_transactions
|
29
|
-
parameter :sender_name
|
30
|
-
parameter :sender_email
|
31
|
-
parameter :sender_description
|
32
|
-
parameter :sender_token_id
|
33
|
-
parameter :status_code
|
34
|
-
parameter :status_message
|
35
|
-
parameter :status_history
|
36
|
-
parameter :transaction_amount, :type => Amount
|
37
|
-
end
|
38
|
-
|
39
|
-
parameter :transaction, :type => TransactionDetail
|
40
|
-
end
|
41
|
-
|
42
|
-
parameter :get_transaction_result, :type =>GetTransactionResult
|
43
|
-
alias :result :get_transaction_result
|
44
|
-
|
45
|
-
def transaction
|
46
|
-
result.transaction
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def get_transaction(request = Request.new)
|
51
|
-
call(request, Response)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module InstallPaymentInstruction
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :InstallPaymentInstruction
|
7
|
-
parameter :payment_instruction, :required => true
|
8
|
-
parameter :caller_reference, :required => true
|
9
|
-
parameter :token_friendly_name
|
10
|
-
parameter :token_type, :required => true
|
11
|
-
parameter :payment_reason
|
12
|
-
end
|
13
|
-
|
14
|
-
class Response < Remit::Response
|
15
|
-
parameter :token_id
|
16
|
-
end
|
17
|
-
|
18
|
-
def install_payment_instruction(request)
|
19
|
-
call(request, Response)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/remit/operations/pay.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module Pay
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :Pay
|
7
|
-
parameter :caller_description
|
8
|
-
parameter :caller_reference, :required => true
|
9
|
-
parameter :charge_fee_to
|
10
|
-
parameter :descriptor_policy, :type => Remit::RequestTypes::DescriptorPolicy
|
11
|
-
parameter :marketplace_fixed_fee, :type => Remit::RequestTypes::Amount
|
12
|
-
parameter :marketplace_variable_fee
|
13
|
-
parameter :recipient_token_id
|
14
|
-
parameter :refund_token_id
|
15
|
-
parameter :sender_description
|
16
|
-
parameter :sender_token_id, :required => true
|
17
|
-
parameter :transaction_amount, :type => Remit::RequestTypes::Amount, :required => true
|
18
|
-
parameter :transaction_date
|
19
|
-
end
|
20
|
-
|
21
|
-
class PayResponse < Remit::Response
|
22
|
-
parser :rexml
|
23
|
-
parameter :pay_result, :type => TransactionResponse
|
24
|
-
end
|
25
|
-
|
26
|
-
def pay(request = Request.new)
|
27
|
-
call(request, PayResponse)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module Refund
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :Refund
|
7
|
-
parameter :caller_description
|
8
|
-
parameter :caller_reference, :required => true
|
9
|
-
parameter :caller_token_id, :required => true
|
10
|
-
parameter :charge_fee_to, :required => true
|
11
|
-
parameter :meta_data
|
12
|
-
parameter :refund_amount, :type => Remit::RequestTypes::Amount
|
13
|
-
parameter :refund_recipient_description
|
14
|
-
parameter :refund_recipient_reference
|
15
|
-
parameter :refund_sender_description
|
16
|
-
parameter :refund_sender_reference
|
17
|
-
parameter :refund_sender_token_id, :required => true
|
18
|
-
parameter :transaction_date
|
19
|
-
parameter :transaction_id, :required => true
|
20
|
-
#MarketplaceRefundPolicy is available in these APIs:
|
21
|
-
# Amazon FPS Advanced Quick Start
|
22
|
-
# Amazon FPS Marketplace Quick Start
|
23
|
-
# Amazon FPS Aggregated Payments Quick Start
|
24
|
-
# i.e. Not Basic Quick Start
|
25
|
-
#Amazon Docs list it as a ComplexDataType, but it is not. It really should be listed under Enumerated DataTypes
|
26
|
-
parameter :marketplace_refund_policy
|
27
|
-
|
28
|
-
# The RefundAmount parameter has multiple components. It is specified on the query string like
|
29
|
-
# so: RefundAmount.Amount=XXX&RefundAmount.CurrencyCode=YYY
|
30
|
-
def convert_complex_key(key, parameter)
|
31
|
-
"#{convert_key(key).to_s}.#{convert_key(parameter).to_s}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
class Response < Remit::Response
|
36
|
-
parser :rexml
|
37
|
-
parameter :transaction_response, :namespace => 'ns3', :type => TransactionResponse
|
38
|
-
end
|
39
|
-
|
40
|
-
def refund(request = Request.new)
|
41
|
-
call(request, Response)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module Reserve
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :Reserve
|
7
|
-
parameter :recipient_token_id, :required => true
|
8
|
-
parameter :sender_token_id, :required => true
|
9
|
-
parameter :caller_token_id, :required => true
|
10
|
-
parameter :sender_reference
|
11
|
-
parameter :recipient_reference
|
12
|
-
parameter :caller_reference, :required => true
|
13
|
-
parameter :transaction_date
|
14
|
-
parameter :transaction_amount, :type => Remit::RequestTypes::Amount, :required => true
|
15
|
-
parameter :charge_fee_to, :required => true
|
16
|
-
parameter :sender_description
|
17
|
-
parameter :recipient_description
|
18
|
-
parameter :caller_description
|
19
|
-
parameter :meta_data
|
20
|
-
end
|
21
|
-
|
22
|
-
class Response < Remit::Response
|
23
|
-
parameter :transaction_response, :type => TransactionResponse
|
24
|
-
end
|
25
|
-
|
26
|
-
def reserve(request = Request.new)
|
27
|
-
call(request, Response)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module RetryTransaction
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :RetryTransaction
|
7
|
-
parameter :original_transaction_id, :required => true
|
8
|
-
end
|
9
|
-
|
10
|
-
class Response < Remit::Response
|
11
|
-
parameter :transaction_response, :type => TransactionResponse
|
12
|
-
end
|
13
|
-
|
14
|
-
def retry_transaction(request = Request.new)
|
15
|
-
call(request, Response)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module Settle
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :Settle
|
7
|
-
parameter :reserve_transaction_id, :required => true
|
8
|
-
parameter :transaction_amount, :type => Remit::RequestTypes::Amount
|
9
|
-
parameter :transaction_date
|
10
|
-
end
|
11
|
-
|
12
|
-
class Response < Remit::Response
|
13
|
-
parameter :transaction_response, :type => TransactionResponse
|
14
|
-
end
|
15
|
-
|
16
|
-
def settle(request = Request.new)
|
17
|
-
call(request, Response)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module SettleDebt
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :SettleDebt
|
7
|
-
parameter :caller_description
|
8
|
-
parameter :caller_reference, :required => true
|
9
|
-
parameter :caller_token_id, :required => true
|
10
|
-
parameter :charge_fee_to, :required => true
|
11
|
-
parameter :credit_instrument_id, :required => true
|
12
|
-
parameter :meta_data
|
13
|
-
parameter :recipient_description
|
14
|
-
parameter :recipient_reference
|
15
|
-
parameter :sender_description
|
16
|
-
parameter :sender_reference
|
17
|
-
parameter :sender_token_id, :required => true
|
18
|
-
parameter :settlement_amount, :type => Remit::RequestTypes::Amount, :required => true
|
19
|
-
parameter :transaction_date
|
20
|
-
end
|
21
|
-
|
22
|
-
class Response < Remit::Response
|
23
|
-
parameter :transaction_response, :type => TransactionResponse
|
24
|
-
end
|
25
|
-
|
26
|
-
def settle_debt(request = Request.new)
|
27
|
-
call(request, Response)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module SubscribeForCallerNotification
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :SubscribeForCallerNotification
|
7
|
-
parameter :notification_operation_name, :required => true
|
8
|
-
parameter :web_service_api_url, :required => true
|
9
|
-
end
|
10
|
-
|
11
|
-
class Response < Remit::Response
|
12
|
-
end
|
13
|
-
|
14
|
-
def subscribe_for_caller_notification(request = Request.new)
|
15
|
-
call(request, Response)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module UnsubscribeForCallerNotification
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :UnSubscribeForCallerNotification
|
7
|
-
parameter :notification_operation_name, :required => true
|
8
|
-
end
|
9
|
-
|
10
|
-
class Response < Remit::Response
|
11
|
-
end
|
12
|
-
|
13
|
-
def unsubscribe_for_caller_notification(request = Request.new)
|
14
|
-
call(request, Response)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'remit/common'
|
2
|
-
|
3
|
-
module Remit
|
4
|
-
module WriteOffDebt
|
5
|
-
class Request < Remit::Request
|
6
|
-
action :WriteOffDebt
|
7
|
-
parameter :caller_token_id, :required => true
|
8
|
-
parameter :credit_instrument_id, :required => true
|
9
|
-
parameter :adjustment_amount, :required => true
|
10
|
-
parameter :transaction_date
|
11
|
-
parameter :sender_reference
|
12
|
-
parameter :caller_reference, :required => true
|
13
|
-
parameter :recipient_reference
|
14
|
-
parameter :sender_description
|
15
|
-
parameter :recipient_description
|
16
|
-
parameter :caller_description
|
17
|
-
parameter :meta_data
|
18
|
-
end
|
19
|
-
|
20
|
-
class Response < Remit::Response
|
21
|
-
parameter :transaction_response, :type => TransactionResponse
|
22
|
-
end
|
23
|
-
|
24
|
-
def write_off_debt(request = Request.new)
|
25
|
-
call(request, Response)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
module Remit
|
2
|
-
class PipelineResponse
|
3
|
-
def initialize(uri, secret_key)
|
4
|
-
@uri = URI.parse(uri)
|
5
|
-
@secret_key = secret_key
|
6
|
-
end
|
7
|
-
|
8
|
-
# Returns +true+ if the response is correctly signed (awsSignature).
|
9
|
-
#
|
10
|
-
#--
|
11
|
-
# The unescape_value method is used here because the awsSignature value
|
12
|
-
# pulled from the request is filtered through the same method.
|
13
|
-
#++
|
14
|
-
def valid?
|
15
|
-
return false unless given_signature
|
16
|
-
#unescape both sides. now it will work even if the given_signature is escaped
|
17
|
-
Relax::Query.unescape_value(correct_signature) == Relax::Query.unescape_value(given_signature)
|
18
|
-
end
|
19
|
-
|
20
|
-
# Returns +true+ if the response returns a successful state.
|
21
|
-
def successful?
|
22
|
-
[
|
23
|
-
Remit::PipelineStatusCode::SUCCESS_ABT,
|
24
|
-
Remit::PipelineStatusCode::SUCCESS_ACH,
|
25
|
-
Remit::PipelineStatusCode::SUCCESS_CC,
|
26
|
-
Remit::PipelineStatusCode::SUCCESS_NO_CHANGE,
|
27
|
-
Remit::PipelineStatusCode::SUCCESS_RECIPIENT_TOKEN_INSTALLED
|
28
|
-
].include?(request_query[:status])
|
29
|
-
end
|
30
|
-
|
31
|
-
def [](key)
|
32
|
-
request_query[key]
|
33
|
-
end
|
34
|
-
|
35
|
-
def method_missing(method, *args) #:nodoc:
|
36
|
-
if request_query.has_key?(method)
|
37
|
-
request_query[method]
|
38
|
-
else
|
39
|
-
super
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def signature_key
|
44
|
-
:signature
|
45
|
-
end
|
46
|
-
|
47
|
-
def request_query(reload = false)
|
48
|
-
@query ||= Remit::SignedQuery.new(@uri, @secret_key)
|
49
|
-
end
|
50
|
-
private :request_query
|
51
|
-
|
52
|
-
def given_signature
|
53
|
-
request_query[signature_key]
|
54
|
-
end
|
55
|
-
private :given_signature
|
56
|
-
|
57
|
-
def correct_signature
|
58
|
-
query_params = request_query.clone
|
59
|
-
query_params.delete(signature_key)
|
60
|
-
Remit::SignedQuery.signature(@secret_key,query_params)
|
61
|
-
end
|
62
|
-
private :correct_signature
|
63
|
-
end
|
64
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/integrations_helper'
|
2
|
-
|
3
|
-
describe 'a GetAccountActivity call' do
|
4
|
-
it_should_behave_like 'a successful response'
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
request = Remit::GetAccountActivity::Request.new
|
8
|
-
request.start_date = Date.today - 7
|
9
|
-
@response = remit.get_account_activity(request)
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'should have a collection of transactions' do
|
13
|
-
@response.should have_at_least(1).transactions
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'should have a transaction with all of its values set' do
|
17
|
-
transaction = @response.transactions.first
|
18
|
-
transaction.caller_name.should_not be_empty
|
19
|
-
transaction.caller_token_id.should_not be_empty
|
20
|
-
transaction.caller_transaction_date.should_not be_nil
|
21
|
-
transaction.date_completed.should_not be_nil
|
22
|
-
transaction.date_received.should_not be_nil
|
23
|
-
transaction.error_code.should be_empty
|
24
|
-
transaction.error_detail.should be_nil
|
25
|
-
transaction.error_message.should be_nil
|
26
|
-
transaction.fees.should_not be_nil
|
27
|
-
transaction.operation.should_not be_empty
|
28
|
-
transaction.recipient_name.should_not be_empty
|
29
|
-
transaction.sender_name.should_not be_empty
|
30
|
-
transaction.sender_token_id.should_not be_empty
|
31
|
-
transaction.status.should_not be_empty
|
32
|
-
transaction.transaction_amount.should_not be_nil
|
33
|
-
transaction.transaction_id.should_not be_empty
|
34
|
-
transaction.transaction_parts.should_not be_empty
|
35
|
-
end
|
36
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/integrations_helper'
|
2
|
-
|
3
|
-
describe 'a GetTokens call' do
|
4
|
-
it_should_behave_like 'a successful response'
|
5
|
-
|
6
|
-
before(:all) do
|
7
|
-
@response = remit.get_tokens
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'should have a collection of tokens' do
|
11
|
-
@response.should have_at_least(1).tokens
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'should have a token with all of its values set' do
|
15
|
-
token = @response.tokens.first
|
16
|
-
token.token_id.should_not be_empty
|
17
|
-
token.friendly_name.should_not be_empty
|
18
|
-
token.status.should_not be_empty
|
19
|
-
token.date_installed.should_not be_nil
|
20
|
-
token.caller_installed.should_not be_empty
|
21
|
-
token.caller_reference.should_not be_empty
|
22
|
-
token.token_type.should_not be_empty
|
23
|
-
token.old_token_id.should_not be_empty
|
24
|
-
token.payment_reason.should_not be_empty
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should have a token with a token ID' do
|
28
|
-
@response.tokens.first.token_id.should_not be_empty
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'should have a token with a valid token status' do
|
32
|
-
@response.tokens.first.status.should match(/^(IN)?ACTIVE$/i)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should have a token with a valid installation date' do
|
36
|
-
@response.tokens.first.date_installed.should be_a_kind_of(Time)
|
37
|
-
end
|
38
|
-
end
|