qiwi-pay 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c519d36dfabe76d9e0be3b19758e66575a73528be25c8ab497b5d5f08a0d9f3
4
- data.tar.gz: 7ef5979eaf0f79a4b87299f375327279a14e5cd5c14ad6897c84bc82f7ad79f0
3
+ metadata.gz: e92f908e1718fc717f78be6507cd0da5401fc314b60ab8f5d1106c8f952537f7
4
+ data.tar.gz: 3fdd3ee34bf0578185c8ef3bd946655c5550303c38ea014feb47f4cbf7a273e2
5
5
  SHA512:
6
- metadata.gz: 6ce3d7ebdf28060e4cd6909aa38f8cc53e8a62e64e49df2025cd51efe75932d945af453e8fb8f5f51fc88f21a687f9ecadb18bf772bb34a27a22ec2558593e49
7
- data.tar.gz: d4f4958767bad7d99f8553be4abd0fadd3afdfaee36e0114c690672b0197d458be29cb3d582d0f3401d580ac52fca83dcb93451a381cabe07338bfa4fe4b2346
6
+ metadata.gz: a2c37ad0df653f1c9e8b889bf5a9ae2308c734b005def2b5aa48f250d8084c02a18b202aec872e2eef1fe29536bceecd0eb4bf44f248c59bc2d2309407525047
7
+ data.tar.gz: 2778e9b7a249669b81a69feb0f75b328ca5e3268506964e5bb17f45ab421ee160620a5f3c3b63f7c271d607395e504695e20764b509ad305e572d919bc0821ba
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiwi-pay (0.1.0)
4
+ qiwi-pay (0.1.1)
5
5
  rest-client (>= 1.8.0, < 2.1)
6
6
 
7
7
  GEM
@@ -18,9 +18,9 @@ GEM
18
18
  http-cookie (1.0.3)
19
19
  domain_name (~> 0.5)
20
20
  luhn (1.0.2)
21
- mime-types (3.1)
21
+ mime-types (3.2.2)
22
22
  mime-types-data (~> 3.2015)
23
- mime-types-data (3.2016.0521)
23
+ mime-types-data (3.2018.0812)
24
24
  netrc (0.11.0)
25
25
  public_suffix (3.0.2)
26
26
  rake (10.5.0)
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  [![Build Status](https://travis-ci.org/OnlinetoursGit/qiwi-pay.svg?branch=master)](https://travis-ci.org/OnlinetoursGit/qiwi-pay)
2
2
  [![Maintainability](https://api.codeclimate.com/v1/badges/eb4dda5c934aec79ef99/maintainability)](https://codeclimate.com/github/OnlinetoursGit/qiwi-pay/maintainability)
3
3
  [![Test Coverage](https://api.codeclimate.com/v1/badges/eb4dda5c934aec79ef99/test_coverage)](https://codeclimate.com/github/OnlinetoursGit/qiwi-pay/test_coverage)
4
+ [![Gem Version](https://badge.fury.io/rb/qiwi-pay.svg)](https://badge.fury.io/rb/qiwi-pay)
4
5
 
5
6
  # QiwiPay
6
7
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module QiwiPay
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
@@ -0,0 +1,12 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/api_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Api::CaptureOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as API PaymentOperation' do
10
+ include_examples 'api_payment_operation'
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/api_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Api::RefundOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as API PaymentOperation' do
10
+ include_examples 'api_payment_operation'
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ RSpec.describe QiwiPay::Api::Response do
2
+ let(:json) { '{"txn_id":"123", "error_code":"0", "c":"ttt"}' }
3
+ let(:http_code) { 200 }
4
+ subject { described_class.new http_code, json }
5
+
6
+ describe '#new' do
7
+ it { expect(subject).to be_success }
8
+
9
+ it 'converts integer attributes to integer' do
10
+ expect(subject.txn_id).to eq 123
11
+ expect(subject.error_code).to eq 0
12
+ end
13
+
14
+ describe 'received `http_code` parameter in json' do
15
+ let(:json) { '{"txn_id":"123", "http_code":100500}' }
16
+ it 'returns valid http_code' do
17
+ expect(subject.http_code).to eq 200
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/api_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Api::ReversalOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as API PaymentOperation' do
10
+ include_examples 'api_payment_operation'
11
+ end
12
+ end
@@ -0,0 +1,109 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/api_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Api::StatusOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as API PaymentOperation' do
10
+ include_examples 'api_payment_operation'
11
+ end
12
+
13
+ let(:params) do
14
+ {
15
+ merchant_site: 123,
16
+ txn_id: 1265,
17
+ order_id: 'dsfkjdslkfjdlks'
18
+ }
19
+ end
20
+
21
+ let(:ok_response_body) do
22
+ <<-RESP
23
+ {
24
+ "transactions": [
25
+ {
26
+ "error_code": 0,
27
+ "txn_id": 3666050,
28
+ "txn_status": 2,
29
+ "txn_type": 2,
30
+ "txn_date": "2017-03-09T17:16:06+00:00",
31
+ "pan": "400000******0002",
32
+ "amount": 10000,
33
+ "currency": 643,
34
+ "auth_code": "181218",
35
+ "merchant_site": 99,
36
+ "card_name": "cardholder name",
37
+ "card_bank": "",
38
+ "order_id": "41324123412342"
39
+ },
40
+ {
41
+ "error_code": 0,
42
+ "txn_id": 3684050,
43
+ "txn_status": 3,
44
+ "txn_type": 4,
45
+ "txn_date": "2017-03-09T17:16:09+00:00",
46
+ "pan": "400000******0002",
47
+ "amount": 100,
48
+ "currency": 643,
49
+ "merchant_site": 99,
50
+ "card_name": "cardholder name",
51
+ "card_bank": ""
52
+ },
53
+ {
54
+ "error_code": 0,
55
+ "txn_id": 3685050,
56
+ "txn_status": 3,
57
+ "txn_type": 4,
58
+ "txn_date": "2017-03-19T17:16:06+00:00",
59
+ "pan": "400000******0002",
60
+ "amount": 100,
61
+ "currency": 643,
62
+ "merchant_site": 99,
63
+ "card_name": "cardholder name",
64
+ "card_bank": ""
65
+ }
66
+ ],
67
+ "error_code": 0
68
+ }
69
+ RESP
70
+ end
71
+ let(:ok_response) { Struct.new(:code, :body).new(200, ok_response_body) }
72
+ let(:api_client) { double('api_client') }
73
+
74
+ subject { described_class.new credentials, params }
75
+
76
+ describe '#perform' do
77
+ before do
78
+ allow(RestClient::Resource).to receive(:new).and_return(api_client)
79
+ end
80
+
81
+ describe 'making valid request' do
82
+ it 'should make POST request with correct parameters' do
83
+ expect(api_client).to receive(:post) do |params|
84
+ expect(params).to eq '{"opcode":"30",'\
85
+ '"txn_id":"1265",'\
86
+ '"merchant_site":"123",'\
87
+ '"order_id":"dsfkjdslkfjdlks",'\
88
+ '"sign":"07bbb1f2f41327e64f7f80b24c9a64ff887d8f0b4abe8cca04cc4b7e0eeaf08f"}'
89
+ ok_response
90
+ end
91
+ subject.perform
92
+ end
93
+
94
+ it 'should return api response object' do
95
+ allow(api_client).to receive(:post).and_return(ok_response)
96
+ r = subject.perform
97
+ expect(r).to be_a QiwiPay::Api::Response
98
+ expect(r.http_code).to eq ok_response.code
99
+ end
100
+ end
101
+
102
+ describe 'making forbidden request' do
103
+ it 'raises error' do
104
+ expect(api_client).to receive(:post).and_raise(RestClient::Forbidden)
105
+ expect { subject.perform }.to raise_error(RuntimeError)
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,52 @@
1
+ RSpec.describe QiwiPay::Cheque do
2
+ let(:params) {
3
+ {
4
+ seller_id: 3123011520,
5
+ cheque_type: 1,
6
+ customer_contact: "foo@domain.tld",
7
+ tax_system: 1,
8
+ positions: [
9
+ {
10
+ quantity: 2,
11
+ price: 322.94,
12
+ tax: 4,
13
+ description: "Товар/Услуга 1"
14
+ },
15
+ {
16
+ quantity: 1,
17
+ price: 500,
18
+ tax: 4,
19
+ description: "Товар/Услуга 2"
20
+ }
21
+ ]
22
+ }
23
+ }
24
+ subject{ described_class.new params }
25
+
26
+ describe '#to_json' do
27
+ it 'returns JSON' do
28
+ json = subject.to_json
29
+ expect{JSON.parse(json)}.not_to raise_error
30
+ end
31
+
32
+ it 'includes required parameters' do
33
+ json = subject.to_json
34
+ expect(json).to include 'seller_id'
35
+ expect(json).to include 'cheque_type'
36
+ expect(json).to include 'customer_contact'
37
+ expect(json).to include 'tax_system'
38
+ expect(json).to include 'positions'
39
+ end
40
+ end
41
+
42
+ describe '#encode' do
43
+ it 'returns a string' do
44
+ expect(subject.encode).to be_a String
45
+ end
46
+
47
+ it 'encode string properly' do
48
+ data = Base64.strict_encode64(Zlib::Deflate.deflate(subject.to_json))
49
+ expect(subject.encode).to eq data
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,113 @@
1
+ RSpec.describe QiwiPay::Confirmation do
2
+ let(:params) do
3
+ {
4
+ txn_id: '20728960050',
5
+ pan: '510621******3082',
6
+ email: 'mklimenko@onlinetours.ru',
7
+ country: 'RUS',
8
+ city: 'Moscow',
9
+ product_name: 'Оплата тура',
10
+ ip: '196.54.55.20',
11
+ order_id: 1232,
12
+ txn_status: 1,
13
+ txn_date: '2018-05-03T15:55:18+00:00',
14
+ txn_type: 1,
15
+ error_code: 8001,
16
+ amount: '1000.00',
17
+ currency: 643,
18
+ sign: '27A56431CD3A14BA3455956766F772EA5732FC5E1C74541B33F58D7F7766D98A'
19
+ }
20
+ end
21
+ subject { described_class.new credentials, params }
22
+
23
+ describe '#sign calculates signature for params' do
24
+ it { expect(subject.send(:sign)).to eq params[:sign] }
25
+ end
26
+
27
+ describe '#valid_sign? tests signature for validity' do
28
+ describe 'for valid signature' do
29
+ it { expect(subject.valid_sign?).to be_truthy }
30
+ end
31
+
32
+ describe 'for invalid signature' do
33
+ before { params[:sign] = 'invalidsignature' }
34
+ it { expect(subject.valid_sign?).to be_falsy }
35
+ end
36
+ end
37
+
38
+ describe '#success? and #error? test operation for successfulness' do
39
+ describe 'with no error' do
40
+ before { params[:error_code] = '0' }
41
+
42
+ describe 'with valid sign' do
43
+ before { params[:sign] = '1E61076344971F540138D1107FB6E3E31A7E07EF811CE7E91F31178DF8EFDD5C' }
44
+ it { expect(subject.success?).to be_truthy }
45
+ it { expect(subject.error?).to be_falsy }
46
+ end
47
+ describe 'with invalid sign' do
48
+ before { params[:sign] = 'invalidsignature' }
49
+ it { expect(subject.success?).to be_falsy }
50
+ it { expect(subject.error?).to be_falsy }
51
+ end
52
+ end
53
+
54
+ describe 'with error present' do
55
+ describe 'with valid sign' do
56
+ it { expect(subject.success?).to be_falsy }
57
+ it { expect(subject.error?).to be_truthy }
58
+ end
59
+ describe 'with invalid sign' do
60
+ before { params[:sign] = 'invalidsignature' }
61
+ it { expect(subject.success?).to be_falsy }
62
+ it { expect(subject.error?).to be_truthy }
63
+ end
64
+ end
65
+ end
66
+
67
+ describe 'with creepy hash as params' do
68
+ let(:params) { Hash.new(:some_val) }
69
+
70
+ before do
71
+ params[:txn_id] = 20728960050
72
+ params[:email] = 'mklimenko@onlinetours.ru'
73
+ end
74
+
75
+ it 'extracts params' do
76
+ expect(subject.txn_id).to eq params[:txn_id]
77
+ expect(subject.email).to eq params[:email]
78
+ end
79
+ end
80
+
81
+ describe 'with string params values given' do
82
+ let(:params) { Hash.new(:some_val) }
83
+
84
+ before do
85
+ params[:txn_id] = '20728960050'
86
+ params[:txn_status] = '1'
87
+ params[:txn_type] = '2'
88
+ params[:currency] = '643'
89
+ params[:error_code] = '11'
90
+ params[:email] = 'mklimenko@onlinetours.ru'
91
+ end
92
+
93
+ it 'converts certain valuest to integer' do
94
+ expect(subject.txn_id).to eq params[:txn_id].to_i
95
+ expect(subject.txn_status).to eq params[:txn_status].to_i
96
+ expect(subject.txn_type).to eq params[:txn_type].to_i
97
+ expect(subject.currency).to eq params[:currency].to_i
98
+ expect(subject.error_code).to eq params[:error_code].to_i
99
+ expect(subject.email).to eq params[:email]
100
+ end
101
+ end
102
+
103
+ describe '#to_h converts object to hash' do
104
+ it { expect(subject.to_h).to be_a Hash }
105
+ it 'includes all confirmation params' do
106
+ described_class::ALLOWED_PARAMS.each do |p|
107
+ expect(subject.to_h.keys).to include p
108
+ end
109
+ end
110
+ it { expect(subject.to_h.keys).to include :txn_status_message }
111
+ it { expect(subject.to_h.keys).to include :txn_type_message }
112
+ end
113
+ end
@@ -0,0 +1,5 @@
1
+ RSpec.describe QiwiPay do
2
+ it "has a version number" do
3
+ expect(QiwiPay::VERSION).not_to be nil
4
+ end
5
+ end
@@ -0,0 +1,31 @@
1
+ RSpec.describe QiwiPay::Signature do
2
+ subject { described_class.new(params, 'secret') }
3
+ let(:params) { { b: :b, zzz: :zzz, cdf: :cdf, abc: :abc, 'asd' => 'asd' } }
4
+ let(:signature) { 'd6575188a24edb6960d7f63564f3f5c0752553b6d4f305d12f4d39c00ee5f0a4' }
5
+
6
+ describe '#build_params_string' do
7
+ subject { described_class.new(params, 'secret').send(:build_params_string) }
8
+
9
+ it 'builds string from param values ordered by keys joined with bar' do
10
+ expect(subject).to eq 'abc|asd|b|cdf|zzz'
11
+ end
12
+
13
+ it 'should reject blank values' do
14
+ params[:abc] = nil
15
+ params[:zzz] = ''
16
+ expect(subject).to eq 'asd|b|cdf'
17
+ end
18
+
19
+ it 'should ignore `sign` parameter' do
20
+ params[:sign] = 'sign1'
21
+ params['sign'] = 'sign2'
22
+ expect(subject).to eq 'abc|asd|b|cdf|zzz'
23
+ end
24
+ end
25
+
26
+ describe '#sign' do
27
+ it 'calculates signature' do
28
+ expect(subject.sign).to eq signature
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,12 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/wpf_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Wpf::AuthOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as WPF PaymentOperation' do
10
+ include_examples 'wpf_payment_operation'
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ require 'shared/payment_operation'
2
+ require 'shared/wpf_payment_operation'
3
+
4
+ RSpec.describe QiwiPay::Wpf::SaleOperation do
5
+ describe 'act as PaymentOperation' do
6
+ include_examples 'payment_operation'
7
+ end
8
+
9
+ describe 'act as WPF PaymentOperation' do
10
+ include_examples 'wpf_payment_operation'
11
+ end
12
+ end
@@ -0,0 +1,40 @@
1
+ RSpec.shared_examples "api_payment_operation" do
2
+ let(:params) do
3
+ {
4
+ merchant_site: 1234
5
+ }
6
+ end
7
+
8
+ subject { described_class.new credentials, params }
9
+
10
+ before do
11
+ # Stub unimplemented method
12
+ allow(subject).to receive(:opcode).and_return(0)
13
+ end
14
+
15
+ describe '#perform' do
16
+ describe 'making request to QiwiPay API' do
17
+ it 'perform signed POST request to QiwiPay API URL' do
18
+ subject.perform
19
+ expect(WebMock).to(
20
+ have_requested(:post, 'https://acquiring.qiwi.com/merchant/direct').with do |req|
21
+ req.body.include?('"opcode":"0"') &&
22
+ req.body.include?('"merchant_site":"1234"') &&
23
+ req.body.include?('"sign":')
24
+ end
25
+ )
26
+ end
27
+
28
+ it 'returns Response object with parsed data' do
29
+ r = subject.perform
30
+ expect(r).to be_a QiwiPay::Api::Response
31
+ expect(r.http_code).to eq 200
32
+ expect(r.error_code).to eq 0
33
+ expect(r.txn_id).to eq 123
34
+ expect(r.txn_status).to eq 3
35
+ expect(r.txn_type).to eq 3
36
+ expect(r.txn_date).to eq '2017-03-09T17:16:06+00:00'
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,63 @@
1
+ RSpec.shared_examples "payment_operation" do
2
+ let(:params) do
3
+ {
4
+ merchant_site: 1234,
5
+ currency: 643,
6
+ amount: 100.134,
7
+ abra_kadabra: 'abracadabra',
8
+ cheque: 'asdljhaskjdhkajsdhkaj',
9
+ callback_url: 'https://example.com/notify',
10
+ order_expire: Time.new(2018, 1, 1, 1, 1, 1) + 3600
11
+ }
12
+ end
13
+
14
+ subject { described_class.new credentials, params }
15
+
16
+ describe 'constructor' do
17
+ it 'assigns parameters to attributes' do
18
+ expect(subject.merchant_site).to eq 1234
19
+ end
20
+
21
+ it 'does not assign unknow attributes' do
22
+ expect(subject.instance_variable_get(:@abra_kadabra)).to be_nil
23
+ expect { subject.abra_kadabra }.to raise_error NoMethodError
24
+ end
25
+
26
+ it 'memoizes credentials internally' do
27
+ expect(subject.instance_variable_get(:@credentials)).to be_a QiwiPay::Credentials
28
+ expect { subject.secret }.to raise_error NoMethodError
29
+ end
30
+
31
+ if described_class.in_params.include? :order_expire
32
+ it 'converts time to string' do
33
+ expect(subject.order_expire).to start_with '2018-01-01T02:01:01'
34
+ end
35
+ end
36
+ end
37
+
38
+ # if amount parameter present
39
+ if described_class.in_params.include? :amount
40
+ it 'formats amount as currency' do
41
+ expect(subject.amount).to eq '100.13'
42
+ end
43
+ end
44
+
45
+ it 'requires https callback url' do
46
+ expect do
47
+ subject.callback_url = 'http://example.com/notify'
48
+ end.to raise_error ArgumentError
49
+ end
50
+
51
+ describe '#request_params' do
52
+ it 'returns hash with request parameters' do
53
+ params = subject.send(:request_params)
54
+ expect(params).to be_a Hash
55
+ params_not_in_list = params.keys - described_class.in_params
56
+ expect(params_not_in_list).to match_array %i[opcode sign]
57
+ end
58
+
59
+ it 'calculates signature parameter' do
60
+ expect(subject.send(:request_params)[:sign]).to match /^[\dabcdef]+$/
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,35 @@
1
+ RSpec.shared_examples "wpf_payment_operation" do
2
+ let(:params) do
3
+ {
4
+ merchant_site: 123,
5
+ merchant_uid: 321
6
+ }
7
+ end
8
+
9
+ subject { described_class.new credentials, params }
10
+
11
+ describe '#params' do
12
+ it 'returns hash of params for html form' do
13
+ res = subject.params
14
+ expect(res).to be_a Hash
15
+ expect(res[:method]).to eq :get
16
+ expect(res[:url]).to eq 'https://pay.qiwi.com/paypage/initial'
17
+ expect(res[:opcode]).to eq described_class.opcode.to_s
18
+ params.each do |k, v|
19
+ expect(res[k].to_s).to eq v.to_s
20
+ end
21
+ expect(res).to have_key :sign
22
+ end
23
+ end
24
+
25
+ describe '#url' do
26
+ it 'returns QiwiPay form url' do
27
+ url = subject.url
28
+ expect(url).to start_with 'https://pay.qiwi.com/paypage/initial?'
29
+ expect(url).to include "opcode=#{described_class.opcode}"
30
+ expect(url).to include 'merchant_site=123'
31
+ expect(url).to include 'merchant_uid=321'
32
+ expect(url).to include '&sign='
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require 'qiwi-pay'
2
+ require_relative 'support/external_requests'
3
+
4
+ RSpec.configure do |config|
5
+ # Enable flags like --only-failures and --next-failure
6
+ config.example_status_persistence_file_path = '.rspec_status'
7
+
8
+ # Disable RSpec exposing methods globally on `Module` and `main`
9
+ config.disable_monkey_patching!
10
+
11
+ config.expect_with :rspec do |c|
12
+ c.syntax = :expect
13
+ end
14
+ end
15
+
16
+ def credentials
17
+ QiwiPay::Credentials.new secret: :secret,
18
+ cert: OpenSSL::X509::Certificate.new,
19
+ key: OpenSSL::PKey::RSA.new
20
+ end
@@ -0,0 +1,17 @@
1
+ require 'webmock/rspec'
2
+
3
+ WebMock.disable_net_connect!(allow_localhost: true)
4
+
5
+ RSpec.configure do |config|
6
+ config.before(:each) do
7
+ mock_qiwi_pay_api_request
8
+ end
9
+ end
10
+
11
+ def mock_qiwi_pay_api_request
12
+ WebMock.stub_request(:post, %r{\Ahttps://acquiring\.qiwi\.com.+})
13
+ .to_return(status: 200,
14
+ body: '{"txn_id":123, "txn_status":3, "txn_type":3,'\
15
+ '"txn_date": "2017-03-09T17:16:06+00:00",'\
16
+ '"error_code":0}')
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiwi-pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klimenko
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-31 00:00:00.000000000 Z
11
+ date: 2018-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -103,15 +103,12 @@ dependencies:
103
103
  description: Provides support for payment operations using QiwiPay WPF and API services
104
104
  email:
105
105
  - mklimenko@onlinetours.ru
106
- executables: []
106
+ executables:
107
+ - console
108
+ - setup
107
109
  extensions: []
108
110
  extra_rdoc_files: []
109
111
  files:
110
- - ".gitignore"
111
- - ".rspec"
112
- - ".rubocop.yml"
113
- - ".ruby-version"
114
- - ".travis.yml"
115
112
  - Gemfile
116
113
  - Gemfile.lock
117
114
  - LICENSE
@@ -136,7 +133,22 @@ files:
136
133
  - lib/qiwi-pay/wpf/auth_operation.rb
137
134
  - lib/qiwi-pay/wpf/payment_operation.rb
138
135
  - lib/qiwi-pay/wpf/sale_operation.rb
139
- - qiwi-pay.gemspec
136
+ - spec/qiwi-pay/api/capture_operation_spec.rb
137
+ - spec/qiwi-pay/api/refund_operation_spec.rb
138
+ - spec/qiwi-pay/api/response_spec.rb
139
+ - spec/qiwi-pay/api/reversal_operation_spec.rb
140
+ - spec/qiwi-pay/api/status_operation_spec.rb
141
+ - spec/qiwi-pay/cheque_spec.rb
142
+ - spec/qiwi-pay/confirmation_spec.rb
143
+ - spec/qiwi-pay/qiwi_pay_spec.rb
144
+ - spec/qiwi-pay/signature_spec.rb
145
+ - spec/qiwi-pay/wpf/auth_operation_spec.rb
146
+ - spec/qiwi-pay/wpf/sale_operation_spec.rb
147
+ - spec/shared/api_payment_operation.rb
148
+ - spec/shared/payment_operation.rb
149
+ - spec/shared/wpf_payment_operation.rb
150
+ - spec/spec_helper.rb
151
+ - spec/support/external_requests.rb
140
152
  homepage: https://github.com/OnlinetoursGit/qiwi-pay
141
153
  licenses:
142
154
  - MIT
@@ -162,4 +174,20 @@ rubygems_version: 2.7.6
162
174
  signing_key:
163
175
  specification_version: 4
164
176
  summary: QiwiPay WPF/API binding for Ruby
165
- test_files: []
177
+ test_files:
178
+ - spec/qiwi-pay/api/capture_operation_spec.rb
179
+ - spec/qiwi-pay/api/refund_operation_spec.rb
180
+ - spec/qiwi-pay/api/response_spec.rb
181
+ - spec/qiwi-pay/api/reversal_operation_spec.rb
182
+ - spec/qiwi-pay/api/status_operation_spec.rb
183
+ - spec/qiwi-pay/cheque_spec.rb
184
+ - spec/qiwi-pay/confirmation_spec.rb
185
+ - spec/qiwi-pay/qiwi_pay_spec.rb
186
+ - spec/qiwi-pay/signature_spec.rb
187
+ - spec/qiwi-pay/wpf/auth_operation_spec.rb
188
+ - spec/qiwi-pay/wpf/sale_operation_spec.rb
189
+ - spec/shared/api_payment_operation.rb
190
+ - spec/shared/payment_operation.rb
191
+ - spec/shared/wpf_payment_operation.rb
192
+ - spec/spec_helper.rb
193
+ - spec/support/external_requests.rb
data/.gitignore DELETED
@@ -1,11 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
@@ -1,8 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.1
3
-
4
- Style/AsciiComments:
5
- Enabled: false
6
-
7
- Rails:
8
- Enabled: false
@@ -1 +0,0 @@
1
- 2.3.5
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.5
5
- before_install: gem install bundler -v 1.16.1
@@ -1,40 +0,0 @@
1
-
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'qiwi-pay/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'qiwi-pay'
8
- spec.version = QiwiPay::VERSION
9
- spec.authors = ['Michael Klimenko']
10
- spec.email = ['mklimenko@onlinetours.ru']
11
-
12
- spec.summary = 'QiwiPay WPF/API binding for Ruby'
13
- spec.description = 'Provides support for payment operations using QiwiPay WPF and API services'
14
- spec.homepage = 'https://github.com/OnlinetoursGit/qiwi-pay'
15
- spec.license = 'MIT'
16
-
17
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
- # to allow pushing to a single host or delete this section to allow pushing to any host.
19
- if spec.respond_to?(:metadata)
20
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
21
- else
22
- raise 'RubyGems 2.0 or newer is required to protect against ' \
23
- 'public gem pushes.'
24
- end
25
-
26
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
- f.match(%r{^(test|spec|features)/})
28
- end
29
- spec.bindir = 'exe'
30
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ['lib']
32
-
33
- spec.add_dependency 'rest-client', ['>= 1.8.0', '< 2.1']
34
-
35
- spec.add_development_dependency 'bundler', '~> 1.16'
36
- spec.add_development_dependency 'luhn', '~> 1.0'
37
- spec.add_development_dependency 'rake', '~> 10.0'
38
- spec.add_development_dependency 'rspec', '~> 3.0'
39
- spec.add_development_dependency 'webmock', '~> 2'
40
- end