Module: Veritrans::Api
- Included in:
- Veritrans
- Defined in:
- lib/veritrans/api.rb
Instance Method Summary collapse
-
#approve(payment_id, options = {}) ⇒ Object
POST /v2/id/approve Docs docs.veritrans.co.id/en/api/methods.html#Approve.
-
#cancel(payment_id, options = {}) ⇒ Object
POST /v2/id/cancel Docs docs.veritrans.co.id/en/api/methods.html#Cancel.
-
#capture(payment_id, gross_amount, options = {}) ⇒ Object
POST /v2/capture Docs docs.veritrans.co.id/en/api/methods.html#Capture.
-
#charge(payment_type, data = nil) ⇒ Object
POST /v2/charge { payment_type: “vtlink” } Docs docs.veritrans.co.id/vtdirect/integration_cc.html#step2 Docs docs.veritrans.co.id/sandbox/charge.html.
- #create_snap_token(options = {}) ⇒ Object (also: #create_widget_token)
-
#create_vtlink(data) ⇒ Object
POST /v2/charge { payment_type: “vtlink” }.
-
#delete_vtlink(id, options) ⇒ Object
DELETE /v2/vtlink/id.
-
#expire(payment_id) ⇒ Object
POST /v2/id/expire.
-
#inquiry_points(token_id) ⇒ Object
(also: #point_inquiry)
GET /v2/point_inquiry/token_id.
-
#status(payment_id) ⇒ Object
GET /v2/id/status Docs docs.veritrans.co.id/en/api/methods.html#Status.
Instance Method Details
#approve(payment_id, options = {}) ⇒ Object
POST /v2/id/approve Docs docs.veritrans.co.id/en/api/methods.html#Approve
69 70 71 72 73 74 75 |
# File 'lib/veritrans/api.rb', line 69 def approve(payment_id, = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/approve", ) end |
#cancel(payment_id, options = {}) ⇒ Object
POST /v2/id/cancel Docs docs.veritrans.co.id/en/api/methods.html#Cancel
59 60 61 62 63 64 65 |
# File 'lib/veritrans/api.rb', line 59 def cancel(payment_id, = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/cancel", ) end |
#capture(payment_id, gross_amount, options = {}) ⇒ Object
POST /v2/capture Docs docs.veritrans.co.id/en/api/methods.html#Capture
89 90 91 92 93 94 95 |
# File 'lib/veritrans/api.rb', line 89 def capture(payment_id, gross_amount, = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end post(config.api_host + "/v2/capture", .merge(transaction_id: payment_id, gross_amount: gross_amount)) end |
#charge(payment_type, data = nil) ⇒ Object
POST /v2/charge { payment_type: “vtlink” } Docs docs.veritrans.co.id/vtdirect/integration_cc.html#step2 Docs docs.veritrans.co.id/sandbox/charge.html
Example: Veritrans.charge(
payment_type: "credit_card",
credit_card: { token_id: "<token from client>" },
transaction_details: {
order_id: "order_123",
gross_amount: 100_000
}
)
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 |
# File 'lib/veritrans/api.rb', line 21 def charge(payment_type, data = nil) if payment_type.kind_of?(Hash) && data.nil? data = payment_type payment_type = nil end data = data.deep_symbolize_keys if data.respond_to?(:deep_symbolize_keys) data[:payment_type] = payment_type if payment_type if data.has_key?(:payment_options) data[ payment_type.to_sym ] = data.delete(:payment_options) end # Rename keys: # payment -> transaction_details # transaction -> transaction_details # items -> item_details # customer -> customer_details data[:transaction_details] = data.delete(:payment) if data[:payment] data[:transaction_details] = data.delete(:transaction) if data[:transaction] data[:item_details] = data.delete(:items) if data[:items] data[:customer_details] = data.delete(:customer) if data[:customer] request_with_logging(:post, config.api_host + "/v2/charge", data) end |
#create_snap_token(options = {}) ⇒ Object Also known as: create_widget_token
50 51 52 53 |
# File 'lib/veritrans/api.rb', line 50 def create_snap_token( = {}) result = request_with_logging(:post, config.api_host.sub('//api.', '//app.') + "/snap/v1/charge", ) Veritrans::SnapResult.new(result.response, result.url, result., result.time) end |
#create_vtlink(data) ⇒ Object
POST /v2/charge { payment_type: “vtlink” }
107 108 109 110 111 |
# File 'lib/veritrans/api.rb', line 107 def create_vtlink(data) data = data.dup data[:payment_type] = "vtlink" request_with_logging(:post, config.api_host + "/v2/charge", data) end |
#delete_vtlink(id, options) ⇒ Object
DELETE /v2/vtlink/id
114 115 116 |
# File 'lib/veritrans/api.rb', line 114 def delete_vtlink(id, ) request_with_logging(:delete, config.api_host + "/v2/vtlink/#{URI.escape(id)}", ) end |
#expire(payment_id) ⇒ Object
POST /v2/id/expire
98 99 100 101 102 103 104 |
# File 'lib/veritrans/api.rb', line 98 def expire(payment_id) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/expire", nil) end |
#inquiry_points(token_id) ⇒ Object Also known as: point_inquiry
GET /v2/point_inquiry/token_id
119 120 121 122 123 124 125 |
# File 'lib/veritrans/api.rb', line 119 def inquiry_points(token_id) if token_id == nil || token_id.to_s == "" raise ArgumentError, "parameter token_id can not be bank" end request_with_logging(:get, config.api_host + "/v2/point_inquiry/#{token_id}", {}) end |
#status(payment_id) ⇒ Object
GET /v2/id/status Docs docs.veritrans.co.id/en/api/methods.html#Status
79 80 81 82 83 84 85 |
# File 'lib/veritrans/api.rb', line 79 def status(payment_id) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end get(config.api_host + "/v2/#{URI.escape(payment_id)}/status") end |