paytech_gem 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ef87bc72625aa5649b7c9725c0c75622c445656ddd05eabdc95400b849122fd0
4
+ data.tar.gz: df26220c284432217e79c274ac376944a404313c145780e312998bd02e527276
5
+ SHA512:
6
+ metadata.gz: b465fca272bfa9c1a225f486154115efaf077329e0f73840f388ff432664ef17591fde0dbcba26116b827ac272d78872e40df43b7ef8b5df2ce590fb7c909eca
7
+ data.tar.gz: ee4b68eae8d384231c95599d38c639ea955fff8125b8d570414a1f44eb2cddf9b86d26e849c4382fd26f9271817041d15338b8e792e86a799a39c4bff87d0e69
data/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # PaytechGem
2
+
3
+
4
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/paytech_gem`. To experiment with that code, run `bin/console` for an interactive prompt.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ $ gem 'paytech_gem', '~> 0.1.0' # Adjust the version as needed
11
+
12
+
13
+ And then execute:
14
+
15
+ $ bundle install
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install paytech_gem -v '0.1.0' # Adjust the version as needed
20
+
21
+ ## Usage
22
+
23
+ Create a paytech.rb file in the root of your project to configure the gem
24
+
25
+ # paytech.rb
26
+ require 'paytech_gem'
27
+
28
+ PaytechGem.configure do |config|
29
+ config.paytech_api_key = 'your_api_key'
30
+ config.paytech_api_secret = 'your_secret_key'
31
+ config.currency = 'XOF'
32
+ config.command_name = 'Invoice from Paytech'
33
+ config.env = 'test'
34
+ config.ipn_url = 'URL for IPN (Instant Payment Notification)'
35
+ config.success_url = 'URL for successful transactions'
36
+ config.cancel_url = 'URL for canceled transactions'
37
+
38
+
39
+ end
40
+
41
+ Call it on by:
42
+
43
+ invoice = PaytechGem.initialize_payment(10000, "iphone" , ref_command)
44
+ puts invoice
45
+ ## Development
46
+
47
+ After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
48
+
49
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
50
+
51
+ ## Contributing
52
+
53
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/paytech_gem.
54
+ # paytech_gem
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ task default: %i[]
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaytechGem
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "paytech_gem/version"
4
+ require 'httparty'
5
+
6
+ module PaytechGem
7
+ class Configuration
8
+ attr_accessor :api_key, :api_secret, :currency, :command_name,
9
+ :env, :ipn_url, :success_url, :cancel_url
10
+
11
+ def initialize
12
+ # Set default values or leave them nil
13
+ @api_key = ENV['PAYTECH_API_KEY']
14
+ @api_secret = ENV['PAYTECH_SECRET_KEY']
15
+ @currency = 'XOF'
16
+ @command_name = 'Depot compte Nessi via PayTech'
17
+ @env = ENV['PAYTECH_ENV']
18
+ @ipn_url = 'https://www.yapsy.sn/api/v1/paytech/ipn'
19
+ @success_url = 'https://www.yapsy.sn/paytech/success'
20
+ @cancel_url = 'https://www.yapsy.sn/paytech/cancel'
21
+ end
22
+ end
23
+
24
+ class << self
25
+ attr_accessor :config
26
+
27
+ def configure
28
+ self.config ||= Configuration.new
29
+ yield(config)
30
+ end
31
+
32
+ def initialize_payment(amount, item_name, ref_command)
33
+ url = 'https://paytech.sn/api/payment/request-payment'
34
+ headers = {
35
+ 'Accept': 'application/json',
36
+ 'Content-Type': 'application/json',
37
+ 'API_KEY': config.paytech_api_key,
38
+ 'API_SECRET': config.paytech_api_secret
39
+ }
40
+
41
+ data = {
42
+ item_name: item,
43
+ item_price: amount,
44
+ currency: config.currency,
45
+ ref_command: ref_command,
46
+ command_name: config.command_name,
47
+ env: config.env,
48
+ ipn_url: config.ipn_url,
49
+ success_url: config.success_url,
50
+ cancel_url: config.cancel_url
51
+ }
52
+
53
+ response = HTTParty.post(url, body: data.to_json, headers: headers)
54
+
55
+ if response.code == 200
56
+ json_response = JSON.parse(response.body)
57
+ return json_response
58
+ else
59
+ return "Error: #{response.code} - #{response.body}"
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ begin
66
+ require 'paytech' # Assuming users have a paytech.rb file in their project
67
+ rescue LoadError
68
+
69
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/paytech_gem/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "paytech_gem"
7
+ spec.version = PaytechGem::VERSION
8
+ spec.authors = ["Yapsee"]
9
+ spec.email = ["yapsasee@gmail.com"]
10
+
11
+ spec.summary = "Paytech library."
12
+ spec.description = "This gem helps you implement payments through a senegalses aggregator Paytech."
13
+ spec.homepage = "https://github.com/yapsee/paytech_gem"
14
+ spec.required_ruby_version = ">= 2.6.0"
15
+
16
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
17
+
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "https://github.com/yapsee/paytech_gem"
20
+ spec.metadata["changelog_uri"] = "https://github.com/yapsee/paytech_gem."
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(__dir__) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (File.expand_path(f) == __FILE__) ||
27
+ f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
28
+ end
29
+ end
30
+ spec.bindir = "exe"
31
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
+ spec.require_paths = ["lib"]
33
+
34
+ # Uncomment to register a new dependency of your gem
35
+ # spec.add_dependency "example-gem", "~> 1.0"
36
+
37
+ # For more information and examples about making a new gem, check out our
38
+ # guide at: https://bundler.io/guides/creating_gem.html
39
+ end
@@ -0,0 +1,4 @@
1
+ module PaytechGem
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: paytech_gem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Yapsee
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-12-04 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This gem helps you implement payments through a senegalses aggregator
14
+ Paytech.
15
+ email:
16
+ - yapsasee@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - README.md
22
+ - Rakefile
23
+ - lib/paytech_gem.rb
24
+ - lib/paytech_gem/version.rb
25
+ - paytech_gem.gemspec
26
+ - sig/paytech_gem.rbs
27
+ homepage: https://github.com/yapsee/paytech_gem
28
+ licenses: []
29
+ metadata:
30
+ allowed_push_host: https://rubygems.org
31
+ homepage_uri: https://github.com/yapsee/paytech_gem
32
+ source_code_uri: https://github.com/yapsee/paytech_gem
33
+ changelog_uri: https://github.com/yapsee/paytech_gem.
34
+ post_install_message:
35
+ rdoc_options: []
36
+ require_paths:
37
+ - lib
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.6.0
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirements: []
49
+ rubygems_version: 3.4.22
50
+ signing_key:
51
+ specification_version: 4
52
+ summary: Paytech library.
53
+ test_files: []