fawry 1.2.1 → 1.3.0
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 +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +33 -37
- data/README-ar.md +20 -25
- data/README.md +20 -24
- data/lib/fawry.rb +8 -1
- data/lib/fawry/config.rb +17 -0
- data/lib/fawry/connection.rb +8 -3
- data/lib/fawry/contracts/charge_request_contract.rb +6 -4
- data/lib/fawry/contracts/create_card_token_request_contract.rb +3 -2
- data/lib/fawry/contracts/delete_token_request_contract.rb +6 -4
- data/lib/fawry/contracts/list_tokens_request_contract.rb +6 -4
- data/lib/fawry/contracts/payment_status_request_contract.rb +6 -4
- data/lib/fawry/contracts/refund_request_contract.rb +6 -4
- data/lib/fawry/fawry_callback.rb +1 -1
- data/lib/fawry/requests/charge_request.rb +2 -2
- data/lib/fawry/requests/create_card_token_request.rb +2 -2
- data/lib/fawry/requests/delete_token_request.rb +2 -2
- data/lib/fawry/requests/list_tokens_request.rb +2 -2
- data/lib/fawry/requests/payment_status_request.rb +2 -2
- data/lib/fawry/requests/refund_request.rb +2 -2
- data/lib/fawry/utils.rb +2 -0
- data/lib/fawry/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5015952a24c3ab03377aae7d4d17abccbb7800c00c5ed6a02b4becabe5aa42a6
|
|
4
|
+
data.tar.gz: 337289fe3666ac8fd7f7ff9886d5a6d5e33ebc542000c624771f338278160634
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 53a9057c10dda83db87042cce4dae0d7d76155c3bcffaeb5369403517d33613b10fb3d7a057db7cd39f368a2f4b3988ca06277db9de1e6ac9ab5c7d636ae026c
|
|
7
|
+
data.tar.gz: 8fb2747e2050270ea3514b6c7967e60d41268f2469bf6060188c532d4a2688387edcbaea741d567321b107ebb876adac7f7c79ec3375eeca91c9c007e6c6127a
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
fawry (1.
|
|
4
|
+
fawry (1.3.0)
|
|
5
5
|
dry-validation (~> 1.3, >= 1.3.1)
|
|
6
6
|
faraday (~> 0.17.0)
|
|
7
7
|
|
|
@@ -11,43 +11,39 @@ GEM
|
|
|
11
11
|
addressable (2.7.0)
|
|
12
12
|
public_suffix (>= 2.0.2, < 5.0)
|
|
13
13
|
ast (2.4.2)
|
|
14
|
-
byebug (11.
|
|
15
|
-
concurrent-ruby (1.1.
|
|
14
|
+
byebug (11.1.3)
|
|
15
|
+
concurrent-ruby (1.1.8)
|
|
16
16
|
crack (0.4.5)
|
|
17
17
|
rexml
|
|
18
|
-
diff-lcs (1.
|
|
19
|
-
dry-configurable (0.
|
|
18
|
+
diff-lcs (1.4.4)
|
|
19
|
+
dry-configurable (0.12.1)
|
|
20
20
|
concurrent-ruby (~> 1.0)
|
|
21
|
-
dry-core (~> 0.
|
|
22
|
-
dry-equalizer (~> 0.2)
|
|
21
|
+
dry-core (~> 0.5, >= 0.5.0)
|
|
23
22
|
dry-container (0.7.2)
|
|
24
23
|
concurrent-ruby (~> 1.0)
|
|
25
24
|
dry-configurable (~> 0.1, >= 0.1.3)
|
|
26
|
-
dry-core (0.
|
|
25
|
+
dry-core (0.5.0)
|
|
27
26
|
concurrent-ruby (~> 1.0)
|
|
28
27
|
dry-equalizer (0.3.0)
|
|
29
28
|
dry-inflector (0.2.0)
|
|
30
29
|
dry-initializer (3.0.4)
|
|
31
|
-
dry-logic (1.0
|
|
30
|
+
dry-logic (1.2.0)
|
|
32
31
|
concurrent-ruby (~> 1.0)
|
|
33
|
-
dry-core (~> 0.
|
|
34
|
-
|
|
35
|
-
dry-schema (1.5.5)
|
|
32
|
+
dry-core (~> 0.5, >= 0.5)
|
|
33
|
+
dry-schema (1.6.2)
|
|
36
34
|
concurrent-ruby (~> 1.0)
|
|
37
35
|
dry-configurable (~> 0.8, >= 0.8.3)
|
|
38
|
-
dry-core (~> 0.
|
|
39
|
-
dry-equalizer (~> 0.2)
|
|
36
|
+
dry-core (~> 0.5, >= 0.5)
|
|
40
37
|
dry-initializer (~> 3.0)
|
|
41
38
|
dry-logic (~> 1.0)
|
|
42
|
-
dry-types (~> 1.
|
|
43
|
-
dry-types (1.
|
|
39
|
+
dry-types (~> 1.5)
|
|
40
|
+
dry-types (1.5.1)
|
|
44
41
|
concurrent-ruby (~> 1.0)
|
|
45
42
|
dry-container (~> 0.3)
|
|
46
|
-
dry-core (~> 0.
|
|
47
|
-
dry-equalizer (~> 0.3)
|
|
43
|
+
dry-core (~> 0.5, >= 0.5)
|
|
48
44
|
dry-inflector (~> 0.1, >= 0.1.2)
|
|
49
45
|
dry-logic (~> 1.0, >= 1.0.2)
|
|
50
|
-
dry-validation (1.
|
|
46
|
+
dry-validation (1.6.0)
|
|
51
47
|
concurrent-ruby (~> 1.0)
|
|
52
48
|
dry-container (~> 0.7, >= 0.7.1)
|
|
53
49
|
dry-core (~> 0.4)
|
|
@@ -59,29 +55,29 @@ GEM
|
|
|
59
55
|
hashdiff (1.0.1)
|
|
60
56
|
multipart-post (2.1.1)
|
|
61
57
|
parallel (1.20.1)
|
|
62
|
-
parser (3.0.
|
|
58
|
+
parser (3.0.1.1)
|
|
63
59
|
ast (~> 2.4.1)
|
|
64
60
|
public_suffix (4.0.6)
|
|
65
61
|
rainbow (3.0.0)
|
|
66
|
-
rake (13.0.
|
|
62
|
+
rake (13.0.3)
|
|
67
63
|
regexp_parser (2.1.1)
|
|
68
|
-
rexml (3.2.
|
|
69
|
-
rspec (3.
|
|
70
|
-
rspec-core (~> 3.
|
|
71
|
-
rspec-expectations (~> 3.
|
|
72
|
-
rspec-mocks (~> 3.
|
|
73
|
-
rspec-core (3.
|
|
74
|
-
rspec-support (~> 3.
|
|
75
|
-
rspec-expectations (3.
|
|
64
|
+
rexml (3.2.5)
|
|
65
|
+
rspec (3.10.0)
|
|
66
|
+
rspec-core (~> 3.10.0)
|
|
67
|
+
rspec-expectations (~> 3.10.0)
|
|
68
|
+
rspec-mocks (~> 3.10.0)
|
|
69
|
+
rspec-core (3.10.1)
|
|
70
|
+
rspec-support (~> 3.10.0)
|
|
71
|
+
rspec-expectations (3.10.1)
|
|
76
72
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
77
|
-
rspec-support (~> 3.
|
|
78
|
-
rspec-mocks (3.
|
|
73
|
+
rspec-support (~> 3.10.0)
|
|
74
|
+
rspec-mocks (3.10.2)
|
|
79
75
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
80
|
-
rspec-support (~> 3.
|
|
81
|
-
rspec-support (3.
|
|
76
|
+
rspec-support (~> 3.10.0)
|
|
77
|
+
rspec-support (3.10.2)
|
|
82
78
|
rspec_junit_formatter (0.4.1)
|
|
83
79
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
84
|
-
rubocop (1.
|
|
80
|
+
rubocop (1.13.0)
|
|
85
81
|
parallel (~> 1.10)
|
|
86
82
|
parser (>= 3.0.0.0)
|
|
87
83
|
rainbow (>= 2.2.2, < 4.0)
|
|
@@ -90,11 +86,11 @@ GEM
|
|
|
90
86
|
rubocop-ast (>= 1.2.0, < 2.0)
|
|
91
87
|
ruby-progressbar (~> 1.7)
|
|
92
88
|
unicode-display_width (>= 1.4.0, < 3.0)
|
|
93
|
-
rubocop-ast (1.
|
|
94
|
-
parser (>=
|
|
89
|
+
rubocop-ast (1.5.0)
|
|
90
|
+
parser (>= 3.0.1.1)
|
|
95
91
|
ruby-progressbar (1.11.0)
|
|
96
92
|
unicode-display_width (2.0.0)
|
|
97
|
-
webmock (3.12.
|
|
93
|
+
webmock (3.12.2)
|
|
98
94
|
addressable (>= 2.3.6)
|
|
99
95
|
crack (>= 0.3.2)
|
|
100
96
|
hashdiff (>= 0.4.0, < 2.0.0)
|
data/README-ar.md
CHANGED
|
@@ -6,15 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
مكتبة لتسهيل التعامل مع خدمات الدفع الخاصة بشبكة الدفع الإلكتروني فوري:
|
|
8
8
|
|
|
9
|
-
- [لإجراء عملية دفع](https://github.com/fawry-api/fawry#charge-customers)
|
|
10
|
-
- [لإجراء عملية استرداد](https://github.com/fawry-api/fawry#refund-customers)
|
|
11
|
-
- [حالة الدفع](https://github.com/fawry-api/fawry#get-payment-status)
|
|
12
|
-
- [عرض رموز الكروت](https://github.com/fawry-api/fawry#list-card-tokens)
|
|
13
|
-
- [إضافة رمز كارت](https://github.com/fawry-api/fawry#create-card-token)
|
|
14
|
-
- [حذف رمز كارت](https://github.com/fawry-api/fawry#delete-card-token)
|
|
15
|
-
- [تحليل رد خدمة فوري V2](https://github.com/fawry-api/fawry#parse-fawry-service-callback-v2)
|
|
16
|
-
- [طلب البيانات الخاصة بإعدادات الإستخدام](https://github.com/fawry-api/fawry#configuration-keys-as-environment-variables)
|
|
17
|
-
|
|
18
9
|
_المكتبة تدعم النظام التجريبي لفوري ايضا_
|
|
19
10
|
|
|
20
11
|
## لإضافة وتشغيل المكتبة
|
|
@@ -33,6 +24,18 @@ gem 'fawry'
|
|
|
33
24
|
|
|
34
25
|
$ gem install fawry
|
|
35
26
|
|
|
27
|
+
## تهيئة فوري للاستخدام
|
|
28
|
+
|
|
29
|
+
لبرنامجك لتهيئة المكتبة `fawry.rb` أضف مهيئ
|
|
30
|
+
```ruby
|
|
31
|
+
Fawry.configure do |config|
|
|
32
|
+
config.sandbox = Rails.env.staging? ? true : false
|
|
33
|
+
config.fawry_secure_key = 'fawry_secure_key'
|
|
34
|
+
config.fawry_merchant_code = 'fawry_merchant_code'
|
|
35
|
+
end
|
|
36
|
+
```
|
|
37
|
+
`FAWRY_SANDBOX`, `FAWRY_SECURE_KEY`, `FAWRY_MERCHANT_CODE` _(environment variables)_ او يمكنك بدلا من ذلك، استخدام المتغيرات البيئية
|
|
38
|
+
|
|
36
39
|
## طريقة الإستعمال
|
|
37
40
|
|
|
38
41
|
### لإجراء عملية دفع
|
|
@@ -50,9 +53,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
50
53
|
"charge_items": [{ "item_id": 'fk3fn9flk8et9a5t9w3c5h3oc684ivho',
|
|
51
54
|
"description": 'desc', "price": 20, "quantity": 1 }] }
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
# sandbox: true
|
|
55
|
-
res = Fawry.charge(params, sandbox: true)
|
|
56
|
+
res = Fawry.charge(params)
|
|
56
57
|
# => #<Fawry::FawryResponse:0x0000564257d0ea90 @type="ChargeResponse", @reference_number="931600239",
|
|
57
58
|
# @merchant_ref_number="io5jxf3jp27kfh8m719arcqgw7izo7db",
|
|
58
59
|
# @expiration_time=1573153206979, @status_code=200,
|
|
@@ -70,7 +71,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
70
71
|
"refund_amount": 20,
|
|
71
72
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
72
73
|
|
|
73
|
-
res = Fawry.refund(params
|
|
74
|
+
res = Fawry.refund(params)
|
|
74
75
|
# => #<Fawry::FawryResponse:0x0000564257d0ea90 @type="ResponseDataModel", @status_code=200,
|
|
75
76
|
# @status_description="Operation done successfully">
|
|
76
77
|
|
|
@@ -84,7 +85,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
84
85
|
"merchant_ref_number": 'ssshxb98phmyvm434es62kage3nsm2cj',
|
|
85
86
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
86
87
|
|
|
87
|
-
res = Fawry.payment_status(params
|
|
88
|
+
res = Fawry.payment_status(params)
|
|
88
89
|
# => #<Fawry::FawryResponse:0x0000559974056898 @type="PaymentStatusResponse", @reference_number="931922417",
|
|
89
90
|
# @merchant_ref_number="ssshxb98phmyvm434es62kage3nsm2cj",
|
|
90
91
|
# @expiration_time=1573297736167, @status_code=200,
|
|
@@ -102,7 +103,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
102
103
|
"customer_profile_id": 'customer_profile_id',
|
|
103
104
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
104
105
|
|
|
105
|
-
res = Fawry.list_tokens(params
|
|
106
|
+
res = Fawry.list_tokens(params)
|
|
106
107
|
|
|
107
108
|
#<Fawry::FawryResponse:0x0000556cb3a31798 @fawry_api_response={"type"=>"CustomerTokensResponse", "cards"=>[{"token"=>"b5sshhdsl98df96200f254c19b2718bfc825a0678888216c28962b3e66a393084ee9aed6", "creationDate"=>1599487402318, "lastFourDigits"=>"4242", "brand"=>"Visa Card"}, {"token"=>"fb98dslsksmkdds7857ed7042ce30a2a5b777e1f1ac6ac58da1c8c0199f61df7a8bc098e96", "creationDate"=>1599489158457, "lastFourDigits"=>"0001", "brand"=>"Visa Card"}, {"token"=>"cc03fwqaacbd94e468a1b756ac1cbb285a41a2428df9f1a727457b41f9447d0058c7c", "creationDate"=>1599584834346, "lastFourDigits"=>"2346", "brand"=>"MasterCard"}, {"token"=>"f04a8bc9c973f900515f4b58e52c9ff03070baf3f534bdfdad0e97679534f60ddkjk13", "creationDate"=>1600260415739, "lastFourDigits"=>"8769", "brand"=>"Visa Card"}], "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CustomerTokensResponse", @cards=[{"token"=>"b5sshhdsl98df96200f254c19b2718bfc825a0678888216c28962b3e66a393084ee9aed6", "creationDate"=>1599487402318, "lastFourDigits"=>"4242", "brand"=>"Visa Card"}, {"token"=>"fb98dslsksmkdds7857ed7042ce30a2a5b777e1f1ac6ac58da1c8c0199f61df7a8bc098e96", "creationDate"=>1599489158457, "lastFourDigits"=>"0001", "brand"=>"Visa Card"}, {"token"=>"cc03fwqaacbd94e468a1b756ac1cbb285a41a2428df9f1a727457b41f9447d0058c7c", "creationDate"=>1599584834346, "lastFourDigits"=>"2346", "brand"=>"MasterCard"}, {"token"=>"f04a8bc9c973f900515f4b58e52c9ff03070baf3f534bdfdad0e97679534f60ddkjk13", "creationDate"=>1600260415739, "lastFourDigits"=>"8769", "brand"=>"Visa Card"}], @status_code=200, @status_description="Operation done successfully">
|
|
108
109
|
|
|
@@ -121,7 +122,8 @@ params = { "merchant_code" : "merchant_code",
|
|
|
121
122
|
"expiry_year" : "expiry_year",
|
|
122
123
|
"expiry_month" : "expiry_month",
|
|
123
124
|
"cvv" : "cvv" }
|
|
124
|
-
|
|
125
|
+
|
|
126
|
+
res = Fawry.create_card_token(params)
|
|
125
127
|
#<Fawry::FawryResponse:0x0000556cb3eb0080 @fawry_api_response={"type"=>"CardTokenResponse", "card"=>{"token"=>"b598f96200f254c19b2718bfc825a063278888216c28962b3e66a393084ee9aed6", "creationDate"=>1607011562353, "lastFourDigits"=>"4242"}, "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CardTokenResponse", @status_code=200, @status_description="Operation done successfully", @card={"token"=>"b598f96200f254c19b2718bfc825a063278888216c28962b3e66a393084ee9aed6", "creationDate"=>1607011562353, "lastFourDigits"=>"4242"}>
|
|
126
128
|
|
|
127
129
|
res.success?
|
|
@@ -135,7 +137,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
135
137
|
"customer_profile_id": 'customer_profile_id',
|
|
136
138
|
"card_token": 'card_token' }
|
|
137
139
|
|
|
138
|
-
res = Fawry.delete_token(params
|
|
140
|
+
res = Fawry.delete_token(params)
|
|
139
141
|
#<Fawry::FawryResponse:0x0000556cb57c2460 @fawry_api_response={"type"=>"CardTokenResponse", "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CardTokenResponse", @status_code=200, @status_description="Operation done successfully">
|
|
140
142
|
res.success?
|
|
141
143
|
|
|
@@ -154,8 +156,7 @@ callback_params = { "requestId": 'c72827d084ea4b88949d91dd2db4996e', "fawryRefNu
|
|
|
154
156
|
"orderExpiryDate": 1_533_554_719_314,
|
|
155
157
|
"orderItems": [{ "itemCode": 'e6aacbd5a498487ab1a10ae71061535d', "price": 150.0, "quantity": 1 }] }
|
|
156
158
|
|
|
157
|
-
|
|
158
|
-
fawry_callback = Fawry.parse_callback(callback_params, {})
|
|
159
|
+
fawry_callback = Fawry.parse_callback(callback_params)
|
|
159
160
|
# <Fawry::FawryCallback:0x000056339ac43730 @request_id="c72827d084ea4b88949d91dd2db4996e", @fawry_ref_number="970177",
|
|
160
161
|
# @merchant_ref_number="9708f1cea8b5426cb57922df51b7f790", @customer_mobile="01004545545",
|
|
161
162
|
# @customer_mail="fawry@fawry.com", @order_status="NEW", @order_amount=150.0, @fawry_fees=2.0, ...>
|
|
@@ -164,12 +165,6 @@ fawry_callback.fawry_ref_number # => 970177
|
|
|
164
165
|
fawry_callback.order_status # => NEW
|
|
165
166
|
```
|
|
166
167
|
|
|
167
|
-
### طلب البيانات الخاصة بإعدادات الإستخدام
|
|
168
|
-
|
|
169
|
-
يمكن إرسال بيانات تهيئة فوري مثل رمز التاجر ومفتاح الأمان خلال البيانات المعطاه (`merchant_code`, `fawry_secure_key` ) الى **charge**, **refund**, **payment_status** طرق, _أو_ يمكن تعيينها كمتغيرات لنظام التشغيل: (`FAWRY_MERCHANT_CODE`, `FAWRY_SECURE_KEY`).
|
|
170
|
-
|
|
171
|
-
لتحليل fawry معاودة الاتصال ، يجب عليك ضبط متغير البيئة `FAWRY_SECURE_KEY`.
|
|
172
|
-
|
|
173
168
|
## الخطوات القادمة المطلوب تنفيذها:
|
|
174
169
|
|
|
175
170
|
- إضافة خيار لرفع الاستثناء عند فشل الطلب
|
data/README.md
CHANGED
|
@@ -8,17 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
A plug-and-play library that makes interfacing with Fawry's payment gateway API a breeze:
|
|
10
10
|
|
|
11
|
-
- [Charge customers](https://github.com/fawry-api/fawry#charge-customers)
|
|
12
|
-
- [Refund customers](https://github.com/fawry-api/fawry#refund-customers)
|
|
13
|
-
- [Get payment status](https://github.com/fawry-api/fawry#get-payment-status)
|
|
14
|
-
- [List card tokens](https://github.com/fawry-api/fawry#list-card-tokens)
|
|
15
|
-
- [Create card token](https://github.com/fawry-api/fawry#create-card-token)
|
|
16
|
-
- [Delete card token](https://github.com/fawry-api/fawry#delete-card-token)
|
|
17
|
-
- [Parse Fawry's service callback V2](https://github.com/fawry-api/fawry#parse-fawry-service-callback-v2)
|
|
18
|
-
- [Configuration keys as environment variables](https://github.com/fawry-api/fawry#configuration-keys-as-environment-variables)
|
|
19
|
-
|
|
20
11
|
_Fawry's production and sandbox environments are supported._
|
|
21
12
|
|
|
13
|
+
_This library is tested on Ruby v2.6, 2.7, 3.0_
|
|
14
|
+
|
|
22
15
|
## Installation
|
|
23
16
|
|
|
24
17
|
Add this line to your application's Gemfile:
|
|
@@ -34,6 +27,18 @@ And then execute:
|
|
|
34
27
|
Or install it yourself as:
|
|
35
28
|
|
|
36
29
|
$ gem install fawry
|
|
30
|
+
|
|
31
|
+
## Configuration
|
|
32
|
+
|
|
33
|
+
Add an initializer `fawry.rb` in your application to configure the library:
|
|
34
|
+
```ruby
|
|
35
|
+
Fawry.configure do |config|
|
|
36
|
+
config.sandbox = Rails.env.staging? ? true : false
|
|
37
|
+
config.fawry_secure_key = 'fawry_secure_key'
|
|
38
|
+
config.fawry_merchant_code = 'fawry_merchant_code'
|
|
39
|
+
end
|
|
40
|
+
```
|
|
41
|
+
Alternatively, you could use the environment variables: `FAWRY_SANDBOX`, `FAWRY_SECURE_KEY`, and `FAWRY_MERCHANT_CODE`.
|
|
37
42
|
|
|
38
43
|
## Usage
|
|
39
44
|
|
|
@@ -52,8 +57,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
52
57
|
"charge_items": [{ "item_id": 'fk3fn9flk8et9a5t9w3c5h3oc684ivho',
|
|
53
58
|
"description": 'desc', "price": 20, "quantity": 1 }] }
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
res = Fawry.charge(params, sandbox: true)
|
|
60
|
+
res = Fawry.charge(params)
|
|
57
61
|
# => #<Fawry::FawryResponse:0x0000564257d0ea90 @type="ChargeResponse", @reference_number="931600239",
|
|
58
62
|
# @merchant_ref_number="io5jxf3jp27kfh8m719arcqgw7izo7db",
|
|
59
63
|
# @expiration_time=1573153206979, @status_code=200,
|
|
@@ -71,7 +75,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
71
75
|
"refund_amount": 20,
|
|
72
76
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
73
77
|
|
|
74
|
-
res = Fawry.refund(params
|
|
78
|
+
res = Fawry.refund(params)
|
|
75
79
|
# => #<Fawry::FawryResponse:0x0000564257d0ea90 @type="ResponseDataModel", @status_code=200,
|
|
76
80
|
# @status_description="Operation done successfully">
|
|
77
81
|
|
|
@@ -85,7 +89,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
85
89
|
"merchant_ref_number": 'ssshxb98phmyvm434es62kage3nsm2cj',
|
|
86
90
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
87
91
|
|
|
88
|
-
res = Fawry.payment_status(params
|
|
92
|
+
res = Fawry.payment_status(params)
|
|
89
93
|
# => #<Fawry::FawryResponse:0x0000559974056898 @type="PaymentStatusResponse", @reference_number="931922417",
|
|
90
94
|
# @merchant_ref_number="ssshxb98phmyvm434es62kage3nsm2cj",
|
|
91
95
|
# @expiration_time=1573297736167, @status_code=200,
|
|
@@ -103,7 +107,7 @@ params = { "merchant_code": 'merchant_code',
|
|
|
103
107
|
"customer_profile_id": 'customer_profile_id',
|
|
104
108
|
"fawry_secure_key": 'fawry_secure_key' }
|
|
105
109
|
|
|
106
|
-
res = Fawry.list_tokens(params
|
|
110
|
+
res = Fawry.list_tokens(params)
|
|
107
111
|
#<Fawry::FawryResponse:0x0000556cb3a31798 @fawry_api_response={"type"=>"CustomerTokensResponse", "cards"=>[{"token"=>"b5sshhdsl98df96200f254c19b2718bfc825a0678888216c28962b3e66a393084ee9aed6", "creationDate"=>1599487402318, "lastFourDigits"=>"4242", "brand"=>"Visa Card"}, {"token"=>"fb98dslsksmkdds7857ed7042ce30a2a5b777e1f1ac6ac58da1c8c0199f61df7a8bc098e96", "creationDate"=>1599489158457, "lastFourDigits"=>"0001", "brand"=>"Visa Card"}, {"token"=>"cc03fwqaacbd94e468a1b756ac1cbb285a41a2428df9f1a727457b41f9447d0058c7c", "creationDate"=>1599584834346, "lastFourDigits"=>"2346", "brand"=>"MasterCard"}, {"token"=>"f04a8bc9c973f900515f4b58e52c9ff03070baf3f534bdfdad0e97679534f60ddkjk13", "creationDate"=>1600260415739, "lastFourDigits"=>"8769", "brand"=>"Visa Card"}], "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CustomerTokensResponse", @cards=[{"token"=>"b5sshhdsl98df96200f254c19b2718bfc825a0678888216c28962b3e66a393084ee9aed6", "creationDate"=>1599487402318, "lastFourDigits"=>"4242", "brand"=>"Visa Card"}, {"token"=>"fb98dslsksmkdds7857ed7042ce30a2a5b777e1f1ac6ac58da1c8c0199f61df7a8bc098e96", "creationDate"=>1599489158457, "lastFourDigits"=>"0001", "brand"=>"Visa Card"}, {"token"=>"cc03fwqaacbd94e468a1b756ac1cbb285a41a2428df9f1a727457b41f9447d0058c7c", "creationDate"=>1599584834346, "lastFourDigits"=>"2346", "brand"=>"MasterCard"}, {"token"=>"f04a8bc9c973f900515f4b58e52c9ff03070baf3f534bdfdad0e97679534f60ddkjk13", "creationDate"=>1600260415739, "lastFourDigits"=>"8769", "brand"=>"Visa Card"}], @status_code=200, @status_description="Operation done successfully">
|
|
108
112
|
|
|
109
113
|
res.success? # => true
|
|
@@ -121,7 +125,7 @@ params = { "merchant_code" : "merchant_code",
|
|
|
121
125
|
"expiry_year" : "expiry_year",
|
|
122
126
|
"expiry_month" : "expiry_month",
|
|
123
127
|
"cvv" : "cvv" }
|
|
124
|
-
res = Fawry.create_card_token(params
|
|
128
|
+
res = Fawry.create_card_token(params)
|
|
125
129
|
#<Fawry::FawryResponse:0x0000556cb3eb0080 @fawry_api_response={"type"=>"CardTokenResponse", "card"=>{"token"=>"b598f96200f254c19b2718bfc825a063278888216c28962b3e66a393084ee9aed6", "creationDate"=>1607011562353, "lastFourDigits"=>"4242"}, "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CardTokenResponse", @status_code=200, @status_description="Operation done successfully", @card={"token"=>"b598f96200f254c19b2718bfc825a063278888216c28962b3e66a393084ee9aed6", "creationDate"=>1607011562353, "lastFourDigits"=>"4242"}>
|
|
126
130
|
|
|
127
131
|
res.success?
|
|
@@ -136,7 +140,7 @@ params = { "merchant_code": "merchant_code",
|
|
|
136
140
|
"card_token": "card_token",
|
|
137
141
|
"fawry_secure_key": "fawry_secure_key" }
|
|
138
142
|
|
|
139
|
-
res = Fawry.delete_token(params
|
|
143
|
+
res = Fawry.delete_token(params)
|
|
140
144
|
#<Fawry::FawryResponse:0x0000556cb57c2460 @fawry_api_response={"type"=>"CardTokenResponse", "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CardTokenResponse", @status_code=200, @status_description="Operation done successfully">
|
|
141
145
|
|
|
142
146
|
res.success?
|
|
@@ -156,7 +160,6 @@ callback_params = { "requestId": 'c72827d084ea4b88949d91dd2db4996e', "fawryRefNu
|
|
|
156
160
|
"orderExpiryDate": 1_533_554_719_314,
|
|
157
161
|
"orderItems": [{ "itemCode": 'e6aacbd5a498487ab1a10ae71061535d', "price": 150.0, "quantity": 1 }] }
|
|
158
162
|
|
|
159
|
-
# FAWRY_SECURE_KEY env var must be set
|
|
160
163
|
fawry_callback = Fawry.parse_callback(callback_params)
|
|
161
164
|
# <Fawry::FawryCallback:0x000056339ac43730 @request_id="c72827d084ea4b88949d91dd2db4996e", @fawry_ref_number="970177",
|
|
162
165
|
# @merchant_ref_number="9708f1cea8b5426cb57922df51b7f790", @customer_mobile="01004545545",
|
|
@@ -166,15 +169,8 @@ fawry_callback.fawry_ref_number # => 970177
|
|
|
166
169
|
fawry_callback.order_status # => NEW
|
|
167
170
|
```
|
|
168
171
|
|
|
169
|
-
### Configuration keys as environment variables
|
|
170
|
-
|
|
171
|
-
Fawry configuration keys such as merchant code and secure key can be sent with the params (`merchant_code`, `fawry_secure_key` ) to the **charge**, **refund**, **payment_status** methods, _or_ they can be set as environment variables: (`FAWRY_MERCHANT_CODE`, `FAWRY_SECURE_KEY`).
|
|
172
|
-
|
|
173
|
-
To **parse** fawry callback, you _must_ set the env var `FAWRY_SECURE_KEY`.
|
|
174
|
-
|
|
175
172
|
## TODO:
|
|
176
173
|
|
|
177
|
-
- Add public API documentation to README
|
|
178
174
|
- Add option to raise exception on request failure
|
|
179
175
|
|
|
180
176
|
## Development
|
data/lib/fawry.rb
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'fawry/version'
|
|
4
|
+
require 'fawry/utils'
|
|
4
5
|
require 'fawry/connection'
|
|
6
|
+
require 'fawry/config'
|
|
5
7
|
require 'fawry/errors'
|
|
6
|
-
require 'fawry/utils'
|
|
7
8
|
require 'fawry/fawry_request'
|
|
8
9
|
require 'fawry/fawry_response'
|
|
9
10
|
require 'fawry/fawry_callback'
|
|
@@ -21,6 +22,12 @@ require 'fawry/contracts/list_tokens_request_contract'
|
|
|
21
22
|
require 'fawry/contracts/delete_token_request_contract'
|
|
22
23
|
|
|
23
24
|
module Fawry
|
|
25
|
+
configure do |config|
|
|
26
|
+
config.sandbox = false
|
|
27
|
+
config.fawry_secure_key = nil
|
|
28
|
+
config.fawry_merchant_code = nil
|
|
29
|
+
end
|
|
30
|
+
|
|
24
31
|
class << self
|
|
25
32
|
# Sends a charge request to Fawry API
|
|
26
33
|
# performs param validation and builds
|
data/lib/fawry/config.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Fawry
|
|
4
|
+
class << self
|
|
5
|
+
attr_accessor :configuration
|
|
6
|
+
|
|
7
|
+
def configure
|
|
8
|
+
self.configuration ||= Configuration.new
|
|
9
|
+
|
|
10
|
+
yield(configuration)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class Configuration
|
|
15
|
+
attr_accessor :sandbox, :fawry_secure_key, :fawry_merchant_code
|
|
16
|
+
end
|
|
17
|
+
end
|
data/lib/fawry/connection.rb
CHANGED
|
@@ -10,8 +10,11 @@ module Fawry
|
|
|
10
10
|
FAWRY_SANDBOX_BASE_URL = 'https://atfawry.fawrystaging.com//ECommerceWeb/Fawry/'
|
|
11
11
|
|
|
12
12
|
class << self
|
|
13
|
+
include Utils
|
|
14
|
+
|
|
13
15
|
def post(path, params, body, options)
|
|
14
|
-
|
|
16
|
+
sandbox = Fawry.configuration.sandbox || TRUTH_VALUES.include?(ENV.fetch('FAWRY_SANDBOX', options[:sandbox]))
|
|
17
|
+
conn = sandbox ? sandbox_connection : connection
|
|
15
18
|
|
|
16
19
|
conn.post(path) do |request|
|
|
17
20
|
request.params = params
|
|
@@ -20,7 +23,8 @@ module Fawry
|
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
def get(path, params, body, options)
|
|
23
|
-
|
|
26
|
+
sandbox = Fawry.configuration.sandbox || TRUTH_VALUES.include?(ENV.fetch('FAWRY_SANDBOX', options[:sandbox]))
|
|
27
|
+
conn = sandbox ? sandbox_connection : connection
|
|
24
28
|
|
|
25
29
|
conn.get(path) do |request|
|
|
26
30
|
request.params = params
|
|
@@ -31,7 +35,8 @@ module Fawry
|
|
|
31
35
|
end
|
|
32
36
|
|
|
33
37
|
def delete(path, params, body, options)
|
|
34
|
-
|
|
38
|
+
sandbox = Fawry.configuration.sandbox || TRUTH_VALUES.include?(ENV.fetch('FAWRY_SANDBOX', options[:sandbox]))
|
|
39
|
+
conn = sandbox ? sandbox_connection : connection
|
|
35
40
|
|
|
36
41
|
conn.delete(path) do |request|
|
|
37
42
|
request.params = params
|
|
@@ -39,14 +39,16 @@ module Fawry
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
rule(:fawry_secure_key) do
|
|
42
|
-
if ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
43
|
-
key(:fawry_secure_key).failure('fawry secure key is required
|
|
42
|
+
if Fawry.configuration.fawry_secure_key.nil? && ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
43
|
+
key(:fawry_secure_key).failure('fawry secure key is required in either Fawry.configuration or'\
|
|
44
|
+
'as an environment variable (FAWRY_SECURE_KEY), or as an argument to this method')
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
rule(:merchant_code) do
|
|
48
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
49
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
49
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
50
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
51
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
50
52
|
end
|
|
51
53
|
end
|
|
52
54
|
end
|
|
@@ -23,8 +23,9 @@ module Fawry
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
rule(:merchant_code) do
|
|
26
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
27
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
26
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
27
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
28
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
28
29
|
end
|
|
29
30
|
end
|
|
30
31
|
end
|
|
@@ -13,14 +13,16 @@ module Fawry
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
rule(:fawry_secure_key) do
|
|
16
|
-
if ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
17
|
-
key(:fawry_secure_key).failure('fawry secure key is required
|
|
16
|
+
if Fawry.configuration.fawry_secure_key.nil? && ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
17
|
+
key(:fawry_secure_key).failure('fawry secure key is required in either Fawry.configuration or'\
|
|
18
|
+
'as an environment variable (FAWRY_SECURE_KEY), or as an argument to this method')
|
|
18
19
|
end
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
rule(:merchant_code) do
|
|
22
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
23
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
23
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
24
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
25
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
24
26
|
end
|
|
25
27
|
end
|
|
26
28
|
end
|
|
@@ -12,14 +12,16 @@ module Fawry
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
rule(:fawry_secure_key) do
|
|
15
|
-
if ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
16
|
-
key(:fawry_secure_key).failure('fawry secure key is required
|
|
15
|
+
if Fawry.configuration.fawry_secure_key.nil? && ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
16
|
+
key(:fawry_secure_key).failure('fawry secure key is required in either Fawry.configuration or'\
|
|
17
|
+
'as an environment variable (FAWRY_SECURE_KEY), or as an argument to this method')
|
|
17
18
|
end
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
rule(:merchant_code) do
|
|
21
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
22
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
22
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
23
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
24
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
23
25
|
end
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -12,14 +12,16 @@ module Fawry
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
rule(:fawry_secure_key) do
|
|
15
|
-
if ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
16
|
-
key(:fawry_secure_key).failure('fawry secure key is required
|
|
15
|
+
if Fawry.configuration.fawry_secure_key.nil? && ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
16
|
+
key(:fawry_secure_key).failure('fawry secure key is required in either Fawry.configuration or'\
|
|
17
|
+
'as an environment variable (FAWRY_SECURE_KEY), or as an argument to this method')
|
|
17
18
|
end
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
rule(:merchant_code) do
|
|
21
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
22
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
22
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
23
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
24
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
23
25
|
end
|
|
24
26
|
end
|
|
25
27
|
end
|
|
@@ -14,14 +14,16 @@ module Fawry
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
rule(:fawry_secure_key) do
|
|
17
|
-
if ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
18
|
-
key(:fawry_secure_key).failure('fawry secure key is required
|
|
17
|
+
if Fawry.configuration.fawry_secure_key.nil? && ENV['FAWRY_SECURE_KEY'].nil? && value.nil?
|
|
18
|
+
key(:fawry_secure_key).failure('fawry secure key is required in either Fawry.configuration or'\
|
|
19
|
+
'as an environment variable (FAWRY_SECURE_KEY), or as an argument to this method')
|
|
19
20
|
end
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
rule(:merchant_code) do
|
|
23
|
-
if ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
24
|
-
key(:merchant_code).failure('fawry merchant code is required
|
|
24
|
+
if Fawry.configuration.fawry_merchant_code.nil? && ENV['FAWRY_MERCHANT_CODE'].nil? && value.nil?
|
|
25
|
+
key(:merchant_code).failure('fawry merchant code is required in either Fawry.configuration or'\
|
|
26
|
+
'as an environment variable (FAWRY_MERCHANT_CODE), or as an argument to this method')
|
|
25
27
|
end
|
|
26
28
|
end
|
|
27
29
|
end
|
data/lib/fawry/fawry_callback.rb
CHANGED
|
@@ -8,7 +8,7 @@ module Fawry
|
|
|
8
8
|
|
|
9
9
|
def initialize(callback_params, opts)
|
|
10
10
|
@callback_params = callback_params
|
|
11
|
-
@fawry_secure_key = ENV.fetch('FAWRY_SECURE_KEY')
|
|
11
|
+
@fawry_secure_key = Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY')
|
|
12
12
|
@options = opts
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -52,11 +52,11 @@ module Fawry
|
|
|
52
52
|
# rubocop:enable Metrics/AbcSize
|
|
53
53
|
|
|
54
54
|
def fawry_merchant_code
|
|
55
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
55
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def fawry_secure_key
|
|
59
|
-
ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
59
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def validate_charge_params!
|
|
@@ -41,11 +41,11 @@ module Fawry
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def fawry_merchant_code
|
|
44
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') {
|
|
44
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def fawry_secure_key
|
|
48
|
-
ENV.fetch('FAWRY_SECURE_KEY') {
|
|
48
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
def validate_card_token_params!
|
|
@@ -37,11 +37,11 @@ module Fawry
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def fawry_merchant_code
|
|
40
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
40
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def fawry_secure_key
|
|
44
|
-
ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
44
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def card_token
|
|
@@ -36,11 +36,11 @@ module Fawry
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def fawry_merchant_code
|
|
39
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
39
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def fawry_secure_key
|
|
43
|
-
ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
43
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def validate_list_tokens_params!
|
|
@@ -36,11 +36,11 @@ module Fawry
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def fawry_merchant_code
|
|
39
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
39
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def fawry_secure_key
|
|
43
|
-
ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
43
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def validate_payment_status_params!
|
|
@@ -38,11 +38,11 @@ module Fawry
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def fawry_merchant_code
|
|
41
|
-
ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
41
|
+
Fawry.configuration.fawry_merchant_code || ENV.fetch('FAWRY_MERCHANT_CODE') { request_params[:merchant_code] }
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def fawry_secure_key
|
|
45
|
-
ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
45
|
+
Fawry.configuration.fawry_secure_key || ENV.fetch('FAWRY_SECURE_KEY') { request_params[:fawry_secure_key] }
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def validate_refund_params!
|
data/lib/fawry/utils.rb
CHANGED
data/lib/fawry/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fawry
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Amr El Bakry
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-05-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dry-validation
|
|
@@ -154,6 +154,7 @@ files:
|
|
|
154
154
|
- ".gitignore"
|
|
155
155
|
- ".rspec"
|
|
156
156
|
- ".rubocop.yml"
|
|
157
|
+
- CHANGELOG.md
|
|
157
158
|
- CODE_OF_CONDUCT.md
|
|
158
159
|
- Gemfile
|
|
159
160
|
- Gemfile.lock
|
|
@@ -165,6 +166,7 @@ files:
|
|
|
165
166
|
- bin/setup
|
|
166
167
|
- fawry.gemspec
|
|
167
168
|
- lib/fawry.rb
|
|
169
|
+
- lib/fawry/config.rb
|
|
168
170
|
- lib/fawry/connection.rb
|
|
169
171
|
- lib/fawry/contracts/charge_request_contract.rb
|
|
170
172
|
- lib/fawry/contracts/create_card_token_request_contract.rb
|
|
@@ -205,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
205
207
|
- !ruby/object:Gem::Version
|
|
206
208
|
version: '0'
|
|
207
209
|
requirements: []
|
|
208
|
-
rubygems_version: 3.
|
|
210
|
+
rubygems_version: 3.1.4
|
|
209
211
|
signing_key:
|
|
210
212
|
specification_version: 4
|
|
211
213
|
summary: A library to interface with Fawry's payment gateway API (charge, refund,
|