Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fawry-api/fawry
A plug-and-play library to interface with Fawry's payment gateway API (charge, refund, payment status, card payment, service callback v2) - (مكتبة بسيطة للتواصل مع شبكة خدمات الدفع الإلكتروني فوري (دفع٬ استرجاع٬ حالة الدفع٬ دفع بالكارت، رد السيرفر
https://github.com/fawry-api/fawry
api egypt fawry hacktoberfest payment payment-gateway ruby
Last synced: about 1 month ago
JSON representation
A plug-and-play library to interface with Fawry's payment gateway API (charge, refund, payment status, card payment, service callback v2) - (مكتبة بسيطة للتواصل مع شبكة خدمات الدفع الإلكتروني فوري (دفع٬ استرجاع٬ حالة الدفع٬ دفع بالكارت، رد السيرفر
- Host: GitHub
- URL: https://github.com/fawry-api/fawry
- Owner: fawry-api
- License: mit
- Created: 2019-11-01T18:34:15.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-08-22T21:22:10.000Z (4 months ago)
- Last Synced: 2024-10-27T22:55:50.911Z (about 2 months ago)
- Topics: api, egypt, fawry, hacktoberfest, payment, payment-gateway, ruby
- Language: Ruby
- Homepage:
- Size: 147 KB
- Stars: 55
- Watchers: 9
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README-ar.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-egypt-opensource - fawry-api/fawry - A plug-and-play library to interface with Fawry's payment gateway API (charge, refund, payment status, service callback v2) - (مكتبة بسيطة للتواصل مع شبكة خدمات الدفع الإلكتروني فوري (دفع٬ استرجاع٬ حالة الدفع٬ رد السيرفر (Projects / SDKs and Libraries)
README
[![CircleCI](https://circleci.com/gh/fawry-api/fawry.svg?style=svg)](https://circleci.com/gh/fawry-api/fawry)
# Fawry
**تنويه:** نحن لسنا تابعين رسميًا لشركة فوري.
مكتبة لتسهيل التعامل مع خدمات الدفع الخاصة بشبكة الدفع الإلكتروني فوري:
_المكتبة تدعم النظام التجريبي لفوري ايضا_
## لإضافة وتشغيل المكتبة
أضف هذا السطر إلى ملف Gemfile الخاص بتطبيقك:
```ruby
gem 'fawry'
```ثم نفذ:
$ bundle
أو قم بتثبيته بنفسك على النحو التالي:
$ gem install fawry
## تهيئة فوري للاستخدام
لبرنامجك لتهيئة المكتبة `fawry.rb` أضف مهيئ
```ruby
Fawry.configure do |config|
config.sandbox = Rails.env.staging?
config.fawry_secure_key = 'fawry_secure_key'
config.fawry_merchant_code = 'fawry_merchant_code'
end
````FAWRY_SANDBOX`, `FAWRY_SECURE_KEY`, `FAWRY_MERCHANT_CODE` _(environment variables)_ او يمكنك بدلا من ذلك، استخدام المتغيرات البيئية
## طريقة الإستعمال
### لإجراء عملية دفع
```ruby
params = { "merchant_code": 'merchant_code',
"merchant_ref_num": 'io5jxf3jp27kfh8m719arcqgw7izo7db',
"customer_profile_id": 'ocvsydvbu2gcp528wvl64i9z5srdalg5',
"customer_mobile": '012345678901',
"payment_method": 'PAYATFAWRY',
"currency_code": 'EGP',
"amount": 20,
"language": "ar-eg",
"fawry_secure_key": 'fawry_secure_key',
"description": 'the charge request description',
"charge_items": [{ "item_id": 'fk3fn9flk8et9a5t9w3c5h3oc684ivho',
"description": 'desc', "price": 20, "quantity": 1 }] }res = Fawry.charge(params)
# => #res.success? # => true
res.reference_number # => 931600239
```### لإجراء عملية استرداد
```ruby
params = { "merchant_code": 'merchant_code',
"reference_number": '931337410',
"refund_amount": 20,
"fawry_secure_key": 'fawry_secure_key' }res = Fawry.refund(params)
# => #res.success? # => true
```### حالة الدفع
```ruby
params = { "merchant_code": 'merchant_code',
"merchant_ref_number": 'ssshxb98phmyvm434es62kage3nsm2cj',
"fawry_secure_key": 'fawry_secure_key' }res = Fawry.payment_status(params)
# => #res.success? # => true
res.payment_status # => UNPAID
```### عرض رموز الكروت
```ruby
params = { "merchant_code": 'merchant_code',
"customer_profile_id": 'customer_profile_id',
"fawry_secure_key": 'fawry_secure_key' }res = Fawry.list_tokens(params)
#"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">
res.success? # => true
res.cards # => cards
```### إضافة رمز كارت
```ruby
params = { "merchant_code" : "merchant_code",
"customer_profile_id" : "customer_profile_id",
"customer_mobile" : "customer_mobile",
"customer_email" : "customer_email",
"card_number" : "card_number",
"expiry_year" : "expiry_year",
"expiry_month" : "expiry_month",
"cvv" : "cvv" }res = Fawry.create_card_token(params)
#"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"}>res.success?
res.card
```### حذف رمز كارت
```ruby
params = { "merchant_code": 'merchant_code',
"customer_profile_id": 'customer_profile_id',
"card_token": 'card_token' }res = Fawry.delete_token(params)
#"CardTokenResponse", "statusCode"=>200, "statusDescription"=>"Operation done successfully"}, @type="CardTokenResponse", @status_code=200, @status_description="Operation done successfully">
res.success?```
### رد اتصال خدمة تحليل فوري v2
```ruby
# تم إرسال المعلمات من خادم فوري
callback_params = { "requestId": 'c72827d084ea4b88949d91dd2db4996e', "fawryRefNumber": '970177',
"merchantRefNumber": '9708f1cea8b5426cb57922df51b7f790',
"customerMobile": '01004545545', "customerMail": '[email protected]',
"paymentAmount": 152.00, "orderAmount": 150.00, "fawryFees": 2.00,
"shippingFees": '', "orderStatus": 'NEW', "paymentMethod": 'PAYATFAWRY',
"messageSignature": 'b0175565323e464b01dc9407160368af5568196997fb6e379374a4f4fbbcf587',
"orderExpiryDate": 1_533_554_719_314,
"orderItems": [{ "itemCode": 'e6aacbd5a498487ab1a10ae71061535d', "price": 150.0, "quantity": 1 }] }fawry_callback = Fawry.parse_callback(callback_params)
#fawry_callback.fawry_ref_number # => 970177
fawry_callback.order_status # => NEW
```## الخطوات القادمة المطلوب تنفيذها:
- إضافة خيار لرفع الاستثناء عند فشل الطلب
## تطوير المكتبة
بعد التحقق من الريبو ، قم بتشغيل `bin/setup` لتثبيت التبعيات.
ثم نفذ الأمر `rake spec` لإجراء الاختبارات. يمكنك أيضا الجري `bin/console` للمطالبة التفاعلية التي تسمح لك بالتجربة.لتثبيت هذه المكتبة على جهازك ، قم بتشغيل `bundle exec rake install`. لإصدار إصدار جديد ، قم بتحديث رقم الإصدار بتنسيق `version.rb`, ثم نفذ الأمر `bundle exec rake release`, الذي سينشئ علامة git للإصدار ، ويدفع التزامات git والعلامات ، ويدفع ملف `.gem` يا صديق [rubygems.org](https://rubygems.org).
## المساهمة
يتم الترحيب بتقارير الأخطاء وطلبات السحب على GitHub في https://github.com/amrrbakry/fawry. يهدف هذا المشروع إلى أن يكون مساحة آمنة ومرحبة للتعاون ، ومن المتوقع أن يلتزم المساهمون بـ [Contributor Covenant](http://contributor-covenant.org) القواعد السلوكية.