Class: OrangeMoneyWebpay::Client
- Inherits:
-
Object
- Object
- OrangeMoneyWebpay::Client
- Includes:
- HttpInterceptor
- Defined in:
- lib/orange_money_webpay/client.rb
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#notif_token ⇒ Object
Returns the value of attribute notif_token.
-
#pay_token ⇒ Object
Returns the value of attribute pay_token.
-
#payment_url ⇒ Object
Returns the value of attribute payment_url.
Instance Method Summary collapse
Methods included from HttpInterceptor
#access_token_validity?, #api_configured?, #get_token, #post
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
6 7 8 |
# File 'lib/orange_money_webpay/client.rb', line 6 def access_token @access_token end |
#notif_token ⇒ Object
Returns the value of attribute notif_token.
6 7 8 |
# File 'lib/orange_money_webpay/client.rb', line 6 def notif_token @notif_token end |
#pay_token ⇒ Object
Returns the value of attribute pay_token.
6 7 8 |
# File 'lib/orange_money_webpay/client.rb', line 6 def pay_token @pay_token end |
#payment_url ⇒ Object
Returns the value of attribute payment_url.
6 7 8 |
# File 'lib/orange_money_webpay/client.rb', line 6 def payment_url @payment_url end |
Instance Method Details
#get_access_token ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/orange_money_webpay/client.rb', line 69 def get_access_token puts "START GETTING ACCESS TOKEN" # Inialize a new connection. request = Faraday.new(OrangeMoneyWebpay.configuration.remote_url, ssl: { ca_path: "/usr/lib/ssl/certs"} ) # Making a http post request response = request.post do |req| req.url OrangeMoneyWebpay.configuration.access_token_url req.headers['Content-Type'] = 'application/x-www-form-urlencoded' req.headers['Authorization'] = "Basic #{OrangeMoneyWebpay.configuration.}" req.body = "grant_type=client_credentials" end if response.status == 200 response_body = JSON.parse(response.body) #OrangeMoneyWebpay.configuration.access_token = response_body["access_token"] self.access_token = response_body["access_token"] puts "LE TOKEN: #{self.access_token}" elsif response.status == 401 puts "RESPONSE BODY: #{response_body}" else puts "API configuration error" end end |
#payment_request(order_id, amount) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/orange_money_webpay/client.rb', line 8 def payment_request(order_id, amount) # Payload payload = Hash.new payload["merchant_key"] = OrangeMoneyWebpay.configuration.merchant_key payload["currency"] = OrangeMoneyWebpay.configuration.currency payload["order_id"] = order_id payload["amount"] = amount payload["return_url"] = OrangeMoneyWebpay.configuration.return_url payload["cancel_url"] = OrangeMoneyWebpay.configuration.cancel_url payload["notif_url"] = OrangeMoneyWebpay.configuration.notif_url payload["lang"] = OrangeMoneyWebpay.configuration.lang payload["reference"] = OrangeMoneyWebpay.configuration.reference # Inialize a new connection. request = Faraday.new(OrangeMoneyWebpay.configuration.remote_url, ssl: { ca_path: "/usr/lib/ssl/certs"} ) # Making a http post request response = request.post do |req| req.url OrangeMoneyWebpay.configuration.payment_request_url # Request header req.headers['Authorization'] = "Bearer #{self.access_token}" req.headers['Content-Type'] = 'application/json' req.headers['Accept'] = 'application/json' # Request body req.body = payload.to_json end if response.status == 201 response_body = JSON.parse(response.body) #OrangeMoneyWebpay.configuration.payment_url = response_body["payment_url"] #OrangeMoneyWebpay.configuration.pay_token = response_body["pay_token"] #OrangeMoneyWebpay.configuration.notif_token = response_body["notif_token"] self.payment_url = response_body["payment_url"] self.pay_token = response_body["pay_token"] self.notif_token = response_body["notif_token"] return response_body elsif response.status == 401 puts "RESPONSE BODY: #{response_body}" else puts "ERROR: #{response.inspect}" puts "API configuration error" end end |